没有好软件的好硬件就是浪费芯片,但是随着如此多的新处理器和加速器架构创建,以及如此众多的新技能,公司发现很难雇用足够的具有低级软件专业知识的工程师来满足需求。
与开发新的AI算法或新的智能手机应用程序相比,编写编译器、映射器和优化软件具有不同的要求。但是,如果没有它们,整个行业还是无法大幅发展。
大学正在努力培养足够的毕业生,同时具备该行业所需的各种技能。问题的一部分是技能范围正在扩大,以至于需要多重复合型人才。例如,应届毕业生可能知道如何创建AI算法,但很少有人了解使它在边缘设备上高效运行的含义,或者如何调试错误的系统。
缺少一开始的软件。“永远不会有足够的程序员,” Imagination Technologies全球大学计划的首席顾问Robert Owen)说,“您可以制作的软件数量永远可以更多。您总可以添加额外的功能,可以创建更多的测试,更多的验证和更好的工具。从广义上讲,对编程的需求正在增长,并且在可预见的未来将继续增长。”
但是对于新硬件,需要额外的固件开发人员。“如何确保以最佳方式利用硬件?”西门子EDA战略和业务开发高级经理Anoop Saha说,“这是一个巨大的问题,而不仅仅是技能上的差距。 从根本上讲,这是一个必须解决的硬件/软件协同设计问题。过去,硬件将由软件使用相当标准的接口来设计和使用。现在不止于此。硬件和软件具有如此之多的接口以及介于两者之间的如此之多的层,因此打破组织孤岛至关重要。”
没有软件的硬件是没用的
许多有希望的初创企业都知道,无论硬件质量如何,如果他们对软件的投资不足,或者无法使产品易于使用,它们都会失败。Owen说:“TI在数字信号处理(DSP)方面获得的早期成功是由于其编译器的质量。回想起来,编译器虽然不是很好,但它是相比起来最好的。这为TI带来了竞争优势,并逐渐改善了编译器。”
“我20年前就在图像压缩领域工作。”Arteris IP应用工程总监Benoit de Lescure说。“我们都遇到了类似的问题,既有现成的DSP,也有我们自己的专用DSP。寻找人员以高效利用SIMD硬件非常困难,因为您需要平行思考。但是很少有人准备深入研究可能会在两三年后就被淘汰的硬件体系结构。”
尽管如此,每个人都知道他们必须找到开发者。Imagination AI研究总监Tim Atherton表示:“硬件基板的好坏并不重要,如果使用起来就像一场噩梦,人们就不会用它。大量的成本和时间都花在了软件上。对于拥有成功的产品而言,至关重要的是位于硬件之上的软件。”
我们看到了更多最近成功的例子。 Cadence的Custom IC&PCB Group的软件工程组主管Elias Fallon说:“看看Nvidia对CUDA做了什么。他们的大部分成功都围绕着创建一个编程接口,使人们不必太担心硬件。以这种方式编写代码,使用这些库,您将获得性能上的显着提高。所有加速器都必须提出类似的建议。”
该行业正面临下一个挑战。 Lynx软件技术公司销售和市场营销副总裁Ian Ferguson表示:“已经创建了创新处理器架构的半导体公司现在正面临这一挑战。他们如何帮助程序员利用这些组件来应对不断变化的各种工作负载和框架?”
与过去不同,领先的硬件架构并不总是如此,Ferguson说道:“两年前,BERT和ERNIE基本上只是学术论文,但是现在,这些模型已用于许多自然语言处理应用程序。这将在未来一段时间内对硬件处理器架构和工具链产生影响。”
AI是改变游戏规则的人
尽管许多大学毕业生掌握了有关AI的知识,但很少有人知道将其映射到硬件所需要的知识。 “创建和训练神经网络的ML开发人员之间在技能方面存在明显差异,嵌入式程序员习惯于为嵌入式平台优化算法或应用代码。”Arm机器学习小组产品营销副总裁Steve Roddy说。 “认为任何一组的大量人员都可以迅速接受再培训以弥合差距,这是一个谬论,因为这些技能可能需要花费数年的时间才能建立和掌握。”
这个缺口需要同时填补人员和工具。 “目前,从事高级工具的高级数据科学家与特定的硬件实现之间存在差距,” Fraunhofer IIS的高级系统集成小组负责人和高效电子部门负责人Andy Heinig说。“因此,需要新的设计方法来支持数据科学家的高级工具,并将其知识转化为高度优化的硬件。另外,设计方法是必要的,可用于比较现实条件下特定硬件上不同的高级实现。”
这些比较不是简单的1:1映射问题。Flex Logix首席执行官Geoff Tate表示:“成功的AI芯片将是同时满足两组标准的芯片。首先,他们必须为客户的神经网络模型提供每秒、每美元和每瓦更高的质量,客户希望在预算范围内获得最大的性能。其次,他们希望能够重用软件。如果客户必须执行详细的、低级的、特定于硬件的编程,则将增加其AI开发成本并延迟其进度,这也将使评估新架构非常困难。”
传统的CPU使用编译器来创建优化的映射,仅使用几个开关即可修改优化的执行方式。即使对于CPU来说,这也被证明是非常严格的限制,因为这种方法没有考虑到功耗优化,代码大小优化等。
Imagination的Atherton说:“对于CPU,其体系结构的高性能细节在很大程度上已经被抽象出来了。设计新的网络是非常庞大和复杂的程序,通常显示为图形,然后将它们映射到数十种不同类型的体系结构上,即便可能,也将非常困难。”
这些体系结构存在根本差异。Cadence的Fallon说:“当人们谈论非冯·诺依曼架构时,内存和执行是分开的。但是,当我开始考虑如何编写代码或如何使代码适应以数据为中心的方式时,就会产生更多的问题。差距很大,许多加速器公司将为此而苦苦挣扎。”
业界正在研究使之成为可能的框架。图1所示的示例是Tensor虚拟机(TVM),这是一个用于深度学习的多层编译器堆栈和系统,无论后端硬件是什么,大多数情况都是相同的。
如图1:适用于AI框架的Open Compiler:来源:Apache Software Foundation
技能
给定要创建的独特硬件体系结构的数量,这意味着必须编写许多不同的后端,这些人需要广泛的技能。“他们需要具备软件方面的知识,他们需要具备硬件方面的知识,他们需要具备计算机硬件方面的知识,他们必须了解可能应用于描述特定神经网络的优化。” Atherton说。 “这不是很多人都能拥有的技能,我们应对的方式是将组合的技能集于数名研究工程师中,他们共同构成了完整的系统。但是,试图将所有这些整合到一个人中很难。”
与过去相比,它需要对问题进行不同的思考。西门子的Saha说:“我们必须打破组织的孤岛。今天,您拥有一个硬件团队,每个人都是硬件专家,软件团队也是如此。但是我们需要一个由一定数量的硬件工程师和软件工程师组成的联合团队,因此联合的团队知识非常有用。”
会有一个人了解这一切吗? Owen说:“这些人的理想背景是拥有数学学位,拥有计算机科学学位,并且也许他们也已经完成了一些计算机工程学,因此他们对硬件体系结构有所了解。完成了这三个学位后,他们将能够运用这些技能,并通过高效的编译器将Tensorflow之类完美地连接到一个体系结构中。”
这样的一个人会付出很高的代价。Saha说:“整个行业都面临挑战,因为学习编程是一项基本技能。它必须是一门基础课程。然后,您可以专注于各个领域。我们还需要的是有关算法和数据科学的知识。统计知识,数学建模知识和数据科学知识比机器学习更为基础。这遍及所有领域,并且同样适用于EDA的需求。EDA主要是硬件行业的优化问题。我们始终设法与具有良好编程技能的人建立桥梁,但是他们也了解硬件设计以及创建良好硬件所需的条件。”
许多大学正在增加其AI / ML课程。 “供应有限,对大学的产出有巨大的需求。”Owen说。“大学意识到他们应该培养更多这类毕业生,他们正在努力做到这一点。在大学学位的基础上发展必要的技能可能需要几年时间,但是我对此并不反对,他们将获得高薪。”
让我们不要忘记,往往是大学在创造变化。“过去十年来,大学一直是推动向非传统计算架构转变的关键。”Untether AI软件工程副总裁Alex Grbic说。“除了成为这些领域创新的温床外,大学还一直在增加机器学习/深度学习的学位课程和毕业生人数。”
然而,即使这样也不能解决半导体产业的需求。“机器学习真的很酷,但是如何使它在边缘设备上运行呢?”Fallon说道,“当我只有定点数学时,如何使它起作用?当我希望能够真正压缩网络时,如何使其变得更好?如何使它成为尽可能小的网络,而不是将精度提高1%?如果仅消耗1/10的面积,精度降低1%的可能性有多少?”
这是AI部署的实际方面问题。Lynx的Ferguson说:“差距迫在眉睫。假设云提供了无限的内存和CPU周期,程序员以高级语言编写代码。我看到人们在为更多的自定义应用创建优化程序方面存在差距,尤其是在资源或处理能力有限的情况下。尽管TinyML的努力大有帮助,但仍然存在差距。”
正在设计新课程的Owen说:“我们正在组织一门名为边缘AI原理和实践的课程。它是针对大学生的。除了涵盖基础知识之外,它还使学生能够进行一些练习。不仅是查看图像并将其分割,还可以进行语音应用之类的事情。我们几乎将语音识别,语音翻译,自然语音创建等视为理所当然,因为它们已嵌入几乎所有内容中。”
工具是其中必不可少的一部分。“答案在于构建工具集,这些工具集可以以无限的数值精度和计算资源来指导和自动化AI工作负载从初始到云的迁移,并自动迁移到受约束的计算设备中的推理部署。”Arm的Roddy说。“对于嵌入式开发人员来说,将预先训练的量化模型映射到目标硬件,需要一系列专门针对特定目标的优化工具。他们正在优化数据流,压缩模型权重,合并运算符以节省带宽等等。”
Atherton说:“必须有人编写工具。功率,性能和面积过去一直是驱动因素。AI增加了第四点——带宽。神经网络确实占用了带宽。您必须输入和输出数据,必须修改架构以提高带宽,最小化面积,并且在提高性能的过程中,功率一直很重要。”
看不见的问题
公司还面临一些其他很少讨论的问题。Saha说:“还有另一个因素正在影响我们。当我们发布具有AI功能的产品时,如果该产品不起作用怎么办?您如何找出问题所在?您不能只运行调试器并弄清楚这部分代码不起作用。您需要找出丢失的内容。是算法吗?是数据吗?是应用程序吗?可能范围更广。因此,现在,支持人员必须是数据科学家,并且能够了解可能在何处发现问题。”
Ferguson说:“招聘是一个挑战。鉴于人工智能在程序员中的广泛应用,许多人正在苹果,谷歌和特斯拉这样的家喻户晓的公司工作。尽管这些组织的招聘流程健康,但其他行业却步履蹒跚。”
Fallon说:“对毕业生的类型有一定要求,他们对芯片,硬件的真正工作原理以及一些软件和机器学习知识都有很高的要求。这些人都是整个行业中需要机器学习工作的人。”
结论
成为固件或低级软件工程师从未如此迷人。 这些人很少能以自己的成就获得称赞。 在大学为满足高知名度AI / ML公司的需求而不断增加的同时,针对更普遍的问题进行开发以使其课程可使用似乎还有很长的路要走。
上一篇:CEVA MotionEngine智能电视软件将为更多电视品牌服务
下一篇:RISC-V架构能够手机带来怎样的设计
推荐阅读最新更新时间:2024-11-09 17:59
- 使用 LTC3637MPDHC 24.5V 至 76V 输入至 24V 输出和 350mA 输入电流限制的典型应用
- AM6TW-4805SZ 5V 6 瓦单路输出 DC/DC 转换器的典型应用
- RDR-866 - 2.5 W 非隔离电源,使用 LinkSwitch-TNZ 无损生成交流过零信号
- ADP1715-EVALZ,评估板可用于演示线性稳压器ADP1715的功能
- 485总线继电器模块
- stm32f411最小开发板引脚测试板
- DC895A-D,使用 LT3485EDD-3、750mA 输入电流、2.8 至 4.2Vin、1.8 至 4.2VBat、最大 5V 闪光灯充电器的演示板
- 华为-诺基亚SFP模块烧录
- MIC2025-1YM单通道配电开关MM8典型应用
- EVAL-RS485HDEBZ,用于 ADM4850 半双工 RS-485 收发器的评估板,采用 8 引脚 SOIC 封装