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



科技怪人|CPU、GPU、NPU、FPGA等芯片架构特点分析
本文插图

01.前言
目前 , 智能驾驶领域在处理深度学习AI算法方面 , 主要采用GPU、FPGA 等适合并行计算的通用芯片来实现加速 。 同时有部分芯片企业开始设计专门用于AI算法的ASIC专用芯片 , 比如谷歌TPU、地平线BPU等 。 在智能驾驶产业应用没有大规模兴起和批量投放之前 , 使用GPU、FPGA等已有的通用芯片可以避免专门研发定制芯片(ASIC)的高投入和高风险 , 但是 , 由于这类通用芯片设计初衷并非专门针对深度学习 , 因而存在性能不足、功耗过高等方面的问题 。 这些问题随着自动驾驶行业应用规模的扩大将会日益突出 。
本文从芯片种类、性能、应用和供应商等多角度介绍AI芯片 , 用于给行业内入门新人扫盲 。
02.什么是人工智能(AI)芯片?
从广义上讲 , 能运行AI算法的芯片都叫AI芯片 。
目前通用的CPU、GPU、FPGA等都能执行AI算法 , 只是执行效率差异较大 。 但狭义上讲一般将AI芯片定义为“专门针对AI算法做了特殊加速设计的芯片” 。

科技怪人|CPU、GPU、NPU、FPGA等芯片架构特点分析
本文插图

目前AI芯片的主要用于语音识别、自然语言处理、图像处理等大量使用AI算法的领域 , 通过芯片加速提高算法效率 。 AI芯片的主要任务是矩阵或向量的乘法、加法 , 然后配合一些除法、指数等算法 。 AI算法在图像识别等领域 , 常用的是CNN卷积网络 , 一个成熟的AI算法 , 就是大量的卷积、残差网络、全连接等类型的计算 , 本质是乘法和加法 。
对汽车行业而言 , AI芯片的主要用于就是处理智能驾驶中环境感知、传感器融合和路径规划等算法带来的大量并行计算需求 。
AI芯片可以理解为一个快速计算乘法和加法的计算器 , 而CPU要处理和运行非常复杂的指令集 , 难度比AI芯片大很多 。 GPU虽然为图形处理而设计 , 但是CPU与GPU并不是专用AI芯片 , 其内部有大量其他逻辑来实现其他功能 , 这些逻辑对于目前的AI算法来说完全无用 。 目前经过专门针对AI算法做过开发的GPU应用较多 , 也有部分企业用FPGA做开发 , 但是行业内对于AI算法必然出现专用AI芯片 。
03.为什么要用AI芯片?
人工智能从功能上来看包括推理和训练两个环节 , 智能驾驶行业亦然 。 在训练环节 , 通过大数据训练出一个复杂的神经网络模型 , 目前大部分企业在训练环节主要使用英伟达的GPU集群完成 。 推理环节是指利用训练好的模型 , 使用大量数据推理出各种结论 。 因此 , 训练环节对芯片的算力性能要求比较高 , 推理环节对简单指定的重复计算和低延迟的要求很高 。
从应用场景来看 , 人工智能芯片应用于云端和设备端 , 在智能驾驶领域同样具备云服务器和车载的各种计算平台或域控制器 , 在智能驾驶深度学习的训练阶段需要极大的数据量和大量运算 , 单一处理器无法独立完成 , 因此训练环节只能在云服务器实现 。 相对的在设备端即车上 , 各种ECU、DCU等终端数量庞大 , 而且需求差异较大 。 因此 , 推理环节无法在云端完成 , 这就要求车上的各种电子单元、硬件计算平台或域控制器有独立的推理计算能力 , 因此必须要有专用的AI芯片来应对这些推理计算需求 。
传统的CPU、GPU都可以拿来执行AI算法 , 但是速度慢 , 性能低 , 尤其是CPU , 在智能驾驶领域无法实际投入商用 。

科技怪人|CPU、GPU、NPU、FPGA等芯片架构特点分析
本文插图

比如 , 自动驾驶需要识别道路、行人、红绿灯等路况和交通状况 , 这在自动驾驶算法里面都是属于并行计算 , 如果是CPU去执行计算 , 那么估计车撞到人了也没算出来个结果 , CPU并行计算速度慢属于先天不足 。 如果用GPU速度要快得多 , 毕竟GPU专为图像处理并行计算设计 , 但是GPU功耗过大 , 汽车的电池无法长时间支撑正常使用 , 而且GPU价格相对较高 , 用于自动驾驶量产的话普通消费者也用不起 。 另外 , GPU因为不是专门针对AI算法开发的ASIC , 执行AI计算的速度优势还没到极限 , 还有提升空间 。


推荐阅读