如何选择AI芯片?
文库划重点:机器学习可以在不同处理器上运行,选择取决于关注的指标。现存的CPU就可执行轻量的机器学习。数据中心的训练芯片对速度要求极高,技术与制程门槛高。与多元化应用结合的推理芯片百花齐放,在边缘进行更多的推理,可降低延迟与提高数据安全,与数据中心服务器或大型GPU相比,边缘推理所需的功耗需要低几个数量级。
AI应用有多种可能,主要的挑战是为正确的目的选择合适的解决方案,并认识到,仅因为AI可以应用于特定的流程或问题,并不意味着应该这样做。尽管AI被认为是解决几乎所有问题的理想解决方案,但成功应用有三个主要要求。
首先,需要有足够数量的优质数据。仅仅因为有数据并不意味着那些数据可以解决关注的问题。实际上,即使使用最好的工具,太多不相关的数据会增加数据处理的难度与成本。假设有可用数据,问题就变成了需要花费多少努力来清理数据,并应用它。
这比看起来要难得多,因为设计AI应用时,基本上是在处理移动中的目标。在软件开发,这是正常的,因为在多数情况下可以对软件进行更新和打补丁。对于硬件工程师,这需要了解软硬分工的界线,因为在硬件出现故障的地方,软件需要进行更正。在软件和硬件相互依赖程度更高的设计中,它会影响所有方面,从性能和功耗、到整体可靠性。
第二个要求是问题本身必须能够从AI中受益。如果基于AI模型开发算法或测试平台的时间过长,则不一定会使设计受益。更糟糕的是,如果AI模型存在缺陷,则很难回溯并找出问题所在,因为AI在很大程度上是不透明的。AI的思维是持续自适应和优化,会创造一个不可预测结果的变量。
与更传统的方法相比,使用AI必须有明显的好处。但是了解AI可以带来什么好处,以及要实现这些好处将需要多少工作,并不单纯。它具有许多经济变量,可能随项目、公司以及工程团队的专业知识而变化。
第三个要求是结果必须是可重复的、有结论的,这意味着它们需要以没有AI的结果为比较基准。这可能是一个漫长的过程。随着芯片变得越来越复杂,从布局到验证和调试。AI对于查找和理解大量数据中的模式非常有用,尤其是在不同团队协作的情形。但是要了解AI的真正价值需要花费时间,在半定制的芯片中--销售量在数十万或数百万--市场机会不一定允许这个选择。
构建一种芯片,将其集成到10亿部智能手机中,甚至跨平台的芯片,是一回事。将AI集成到一个少量生产的特定应用芯片中是另一回事。证明AI及其迭代的价值不成问题,关键在各种AI在特定设计中的应用。面临的挑战是:知道何时何地应用它,到目前为止,这更像是一门艺术。
有数百个(甚至数千个)AI芯片初创公司,以及成熟半导体公司中的数十个项目,正在创建AI芯片或将AI技术嵌入产品线中。这些芯片中大多数都在设计中,尚未批量生产,有些会失败。在过去的12到18个月中,训练算法持续发展变化,如何选择最佳的芯片架构以适用多个终端市场和用例,是一大挑战。这使任何单一芯片架构很难在很长一段时间内占据主导地位。
机器学习可以在不同处理器上运行,选择取决于关注的指标。现存的CPU就可执行轻量的机器学习。数据中心的训练芯片对速度要求极高,技术与制程门槛高。与多元化应用结合的推理芯片百花齐放,在边缘进行更多的推理,可降低延迟与提高数据安全,与数据中心服务器或大型GPU相比,边缘推理所需的功耗需要低几个数量级。即使谈论边缘,可能涵盖从底层物联网(IoT)到边缘数据中心,需求差异很大,工业IoT与消费市场的IoT也不同,后者例如AR/VR与可穿戴装置,通常能耗越低越好。
不同AI应用的工作负载差异决定芯片架构的选择。例如,许多以音频为重点的机器学习网络都用繁重的标量(Scalar),而矩阵(Matrix)相对较轻,而对象检测(Object Detection)算法多有繁重的矩阵,但在标量需求相当轻。算法不同,同为线性代数矩阵仍有不同密度,使用密集矩阵的深度学习,例如医疗影像处理辨识,其最适处理器架构作为稀疏矩阵计算则非优化。另外,应用的规模也是一个考虑因素。
架构没有一体适用。设计考量包括功耗,性能,面积和数据带宽的特别要求,必需评估有形与无形的完整成本,选择AI芯片要考虑的,除了芯片本身的成本,还包括以下与总拥有成本(Total Cost of Ownership)相关之因素。
- 效能表现:芯片的规格,这是基本;
- 微处理器的指令集架构:对于软件与软件的集成程度与特别运算至关重要;实际影响,例如,较低位分辨率的处理对于AI很有用,它可以提高效率,而不会显着降低准确性;另外,边缘计算的特别需求,例如:支援网络连接与异构计算的负载平衡;
- 是否有基准(Benchmark)的AI效能数据:例如MLPerf,如果没有则需自己实验比较;
- AI用例适配:如前述,根据应用需求而异,主要分为训练、推理、与实时持续学习(RealTime Learning)的情形;
- 软件堆栈的成熟度:它必须提供对多种开发语言的支持。传统上,芯片嵌入式应用程序支持C/C++,但AI应用程序需要支持的主要是Python,将来Julia的地位会提高;需有系列开发工具,供程序员编写代码,建模,模拟,测试,对目标芯片上应用程序作调试;另外,该芯片与生态系统与工具集集成的程度——对AI流行框架/库的支持,例如:TensorFlow,MXNet等——这意味着应用开发人员无需学习新知识;能支持异构计算方法——应用程序可以在多个微处理器运行,以利用不同优势,有开发环境无缝支持这些不同类型的处理器;
- 功耗(Power)要求:除了边缘AI的应用需要极低能耗,数据中心的训练芯片能耗也是重要成本因子;
- 记忆体效率:数据储存单元与计算单元之间的传输效率已成AI计算的瓶颈,许多新的架构提出,以求降低这个传输时间,例如:Processor-in-Memory(PIM);
- 芯片连接:片上连接决定数据流动速度,称为片上网络(NoC)的新型Bus受关注。片外通信在系统级别发挥作用,是AI芯片组的关键规格标准。DDR5或HBM是流行的存储器接口。与CPU沟通经常使用PCIExpress。OpenCAPI则是CPU和加速器芯片之间的沟通。
- 算法变更周期速度:硬连线的算法部分越多,做改变要花费的时间就越长。改版需要不仅来自纠错,也可能来自市场与环境变化,所以算法需更新。所以这是一个重要因子。
- 芯片安全:安全已成为芯片使用中考虑因素中越来越重要的一部分。芯片需要至少与安全链的其他部分一样强大。这可能涉及将安全凭证嵌入硬件。
收录于哈希力量,手机站省略本文固定网址