科技怪人|CPU、GPU、NPU、FPGA等芯片架构特点分析( 四 )


CPU的逻辑运算单元(ALU)较少 , 控制器(control)占比较大;GPU的逻辑运算单元(ALU)小而多 , 控制器功能简单 , 缓存(cache)也较少 。 架构的不同使得CPU擅长进行逻辑控制、串行计算 , 而GPU擅长高强度的并行计算 。 GPU单个运算单元处理能力弱于CPU的ALU , 但是数量众多的运算单元可以同时工作 , 当面对高强度并行计算时 , 其性能要优于CPU 。 现如今GPU除了图像处理外 , 也越来越多的运用到别的计算中 。
CPU根据功能划分 , 将需要大量并行计算的任务分配给GPU 。 GPU从CPU获得指令后 , 把大规模、无结构化的数据分解成许多独立部分 , 分配给各个流处理集群(SMM) 。 每个流处理集群再次把数据分解 , 分配给调度器 , 调度器将任务放入自身所控制的计算核心core中完成最终的数据处理任务 。
GPU性能较强但功耗较高 。 以NVIDIA开发的GPU为例 , Xavier最高算力为30Tops , 功耗为30W , NVIDIA最新发布的GPUA100相比Volta架构的640个Tensor Core , A100核心的TensorCore减少到了432个 , 但是性能大幅增强 , 支持全新的TF32运算 , 浮点性能156TFLOPS , 同时INT8浮点性能624TOPS , FP16性能312TFLOPS , 同时功耗也达到了400W 。
5.2 半定制化芯片—FPGA
FPGA(Field-ProgrammableGate Array) , 即现场可编程门阵列 。 它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物 。 它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的 , 既解决了定制电路的不足 , 又克服了原有可编程器件门电路数有限的缺点 。
FPGA内部有很多可配置逻辑模块(CLB) , 这些模块是现实逻辑功能的基本单元 , FPGA可通过灵活地配置CLB来令其实现工程师想要实现的逻辑功能 。
FPGA的并行处理能力也很强大 , 其可编程性也适用于不断优化的深度学习算法的运算 。 目前很多公司基于FPGA开发人工智能处理器 。 于2016年成立的深鉴科技 , 就在研发深度学习通用解决方案 。 2016年初 , 深鉴科技就设计了基于FPGA、针对深度学习的DPU硬件架构 。 该产品实现了高性能功耗比 , 并且成本也比GPU产品低很多 。 今年8月加州的Hot Chips大会上 , 百度也发布了其基于FPGA芯片的A.I加速芯片—XPU 。 该芯片有256核 , 旨在寻求性能和效率的平衡 , 处理多样化计算任务 。
基于FPGA开发的人工智能处理器具有高性能、低能耗、可硬件编程的特点 。
1)高性能
除了GPU , FPGA也擅长并行计算 , 基于FPGA开发的处理器可以实现更高的并行计算 。 而且FPGA带有丰富的片上存储资源 , 可以大大减少访问片外存储的延迟 , 提高计算性能 , 访问DRAM储存大约是访问寄存器存储延迟的几百倍以上 。
2)低能耗
相比于CPU和GPU , FPGA的能耗优势主要有两个原因:1)相比于CPU、GPU , FPGA架构有一定的优化 , CPU、GPU需要频繁的访问DRAM , 而这个能量消耗较大 , FPGA可以减少这方面的能耗 。 2)FPGA的主频低 , CPU和GPU的主频一般在1-3GHz之间 , 而FPGA的主频一般在500MHz一下 。 因此 , FPGA的能耗要低于CPU、GPU 。
3)可硬件编程
【科技怪人|CPU、GPU、NPU、FPGA等芯片架构特点分析】FPGA可硬件编程 , 并且可以进行静态重复编程和动态系统重配置 。 用户可像编程修改软件一样修改系统的硬件功能 , 大大增强了系统设计的灵活性和通用性 。 使得FPGA可以灵活地部署在需要修改硬件设置场景中 。
FPGA+CPU异构架构被越来越多地研究和认可 。 相比于CPU+GPU , 因为FPGA的高性能低功耗等优势使FPGA+CPU可以提供更好的单位功耗性能 , 且更易于修改和编程 。 因此FPGA适合做可并行计算的任务 , 如矩阵运算 。 如果是一些判断类的问题 , FPGA算得并没有CPU快 。 所以已经有研究人员探讨FPGA+CPU的架构模式 。


推荐阅读