读到工业和信息化部电子第五研究所所做的《异构融合计算技术白皮书(2023年)》,我关注的重点是FPGA与异构计算。
1 灵活性:GPU>FPGA>DSA>ASIC
(1)GPU :CUDA编程模型(英伟达),(OpenCL编程模型 Xilinx intel)这点叫平台支持
(2)FPGA :基于FPGA的并行运算
(csdn一个文章《论述:FPGA中并行计算的常规方法 作者永恒的止水》:FPGA并行计算的基本常规方法为:流水线计算和交替计算。交替计算就是乒乓计算,基本思想是将计算单元复制若干份,交替地讲输入参数分配给各个计算单元,并且交替地将各个计算单元的计算结果输出,从而实现以N倍计算单元换取N倍计算速度)
(3)CGRA : 基于CGRA的并行运算 CRGA Corse-grained Reconfigurable Architecture 可重构计算
以空域为基础的并行计算结构 空域硬件结构组织 不同粒度和功能 云计算
(知乎上一个文章《并行计算与应用设计研究:Ultra-Elastic CGRAs for Irregular Loop Specialization论文研读》作者Jacob:总得来说CRGA更像是一个有着ALU阵列的单核处理器 ,兼具时间计算和空间计算的根本原因所在。可重构加速器结构,包括粗粒度可重构阵列,由于它们允许快速软件算法开发,并可在芯片流片后继续迭代 ,因此重新引起人们的兴趣)
(4)DSA :第一款是Google在2016年做出的TPU DSA领域专用处理器 基于DSA的并行计算,DSA可以在定制ASIC的基础上回调,加速计算密集型任务
(查的资料:搜索CUDA编程 GPU在所有需要高计算吞吐量的领域 最常见的接口CUDA,其次是OpenCL和HIP。在Python中使用CUDA的方法是通过Numba,CuPy或者英伟达的CUDA Python。CUDA有网格的概念,网格由块组成,块由线程组成。CUDA=compute unified device architecture 统一设备架构 做图像视觉领域会接触,做性能速度优化。图像在计算机里呈现的形式是矩阵。)
2 值得注意的专业术语
人工智能领域高并发密集的向量、张量计算
专业术语"领域"domain包含"场景"senario
FPGA 特事特定,具体问题具体分析
ASIC 单领域单场景
DSA 单领域多场景
GPU 多领域
DSA/ASIC 异构计算架构碎片化现象最凸显
DSA 灵活性有限,硬件、软件架构碎片化,性能和灵活性的细微平衡,支持动态添加处理器核心
(知乎的一个文章《软硬件共同定义:超异构开放生态》作者黄朝波:ASIC场景碎片化,毫无生态可言,原来碎片化指的是架构过多、市场碎片化、没有生态 。DSA架构分静态和动态,静态部分类似配置脚本,通过编译器映射到具体的DSA引擎,编程实现DSA引擎的具体功能;动态部分不是编程实现,是跟已有软件进行适配,相当于把软件的数据平面、计算平面卸载到硬件,控制平面仍然在软件。DSA是把某个领域多个场景的业务逻辑进行归纳,硬件实现共性部分,软件实现个性部分)