历史上的今天
返回首页

历史上的今天

今天是:2025年03月01日(星期六)

2021年03月01日 | 底层软件人才欠缺或致新处理器或架构发展缓慢

2021-03-01 来源:EEWORLD

没有好软件的好硬件就是浪费芯片,但是随着如此多的新处理器和加速器架构创建,以及如此众多的新技能,公司发现很难雇用足够的具有低级软件专业知识的工程师来满足需求。


与开发新的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),这是一个用于深度学习的多层编译器堆栈和系统,无论后端硬件是什么,大多数情况都是相同的。


image.png?imageView2/2/w/550

如图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公司的需求而不断增加的同时,针对更普遍的问题进行开发以使其课程可使用似乎还有很长的路要走。

推荐阅读

史海拾趣

Devar Inc公司的发展小趣事

随着环保意识的提高,Devar Inc公司也积极投身环保科技领域。公司研发了一系列环保型电子产品和解决方案,如可降解材料制成的电子产品外壳、节能型电源管理系统等。同时,Devar还积极参与电子废弃物的回收和处理工作,推动循环经济的发展。这些努力不仅有助于减少环境污染和资源浪费,也提升了公司的社会责任感和品牌形象。

ELEKTRO-PLAST NASIELSK公司的发展小趣事

ELEKTRO-PLAST NASIELSK公司成立于上世纪九十年代,当时正值电子行业蓬勃发展的时期。创始人敏锐地察觉到塑料材料在电子元器件制造中的潜力,决定专注于研发和生产塑料外壳的电子元器件。然而,初创时期面临资金紧张、技术瓶颈和市场接受度低的挑战。创始人通过不懈努力,成功研发出具有竞争力的产品,并通过参加行业展会和建立合作伙伴关系,逐渐打开了市场。

Anderson Power Products公司的发展小趣事

随着环保意识的提高和可持续发展理念的普及,电子行业对环保要求也越来越高。ELEKTRO-PLAST NASIELSK公司积极响应这一趋势,将绿色环保理念贯穿于产品研发和生产过程中。公司采用环保材料和工艺生产产品,并推动供应链中的合作伙伴共同践行环保理念。此外,公司还积极推广可回收利用和循环再生的理念,为保护环境做出了积极贡献。

赛微(Cellwise)公司的发展小趣事

作为一家有着高度社会责任感的企业,赛微始终关注社会发展和环境保护。公司积极参与公益事业和慈善活动,为社会做出积极贡献。同时,公司还注重环境保护和资源节约,通过引进先进的生产设备和工艺技术,降低生产过程中的能耗和排放,实现绿色生产和可持续发展。

请注意,以上故事框架仅为概述,具体细节和数据可能需要根据实际情况进行调整和完善。

潮州三环(Three-circle)公司的发展小趣事

随着公司业务的不断拓展和市场的日益全球化,三环集团开始积极推进全球化战略。公司在广东潮州、深圳,四川成都、南充、德阳,江苏苏州,湖北武汉,中国香港,德国,泰国等地设立公司,形成了覆盖全球的产业布局。通过与国际知名企业的合作与交流,三环集团不断提升自身的技术水平和市场竞争力,逐步成为电子行业的领军企业之一。同时,公司还积极参与国际展览和论坛等活动,展示自身实力和品牌形象,为全球客户提供更优质的产品和服务。

以上五个故事分别从不同角度展现了潮州三环(Three-circle)公司在电子行业中的发展历程和成就。这些故事不仅展示了公司的创新能力和市场洞察力,也体现了公司在面对市场挑战时的勇气和决心。

德力康(DLK)公司的发展小趣事

DLK公司一直将技术创新作为企业发展的核心驱动力。公司拥有一支高素质的研发团队,不断投入大量资金进行技术研发和产品创新。通过引进先进的生产设备和技术,结合自主研发,DLK公司成功开发出了一系列具有自主知识产权的连接器产品。这些产品不仅具有更高的性能和更稳定的品质,而且能够满足不同客户的个性化需求。技术创新使DLK公司在激烈的市场竞争中保持了领先地位。

问答坊 | AI 解惑

利用运算放大器实现的混频器

混频器常常用一个二极管桥式电路(diodebridge)或一个Gilbert单元(Gilbertcell)来实现。这两类混频器都使用了一个本地振荡器(LO)来跳转射频输入的极性。   当LO为正时,RF输入被混频转换为中频(IF)输出时极性不改变。当LO为负时,RF输入转换为IF时极 ...…

查看全部问答>

关于TAPI的lineInitializeEx的困惑

Windows Embedded CE 6.0帮助文档中介绍,Establishing a Modem Connection的流程如下: lineInitializeEx      ↓ lineOpen      ↓ lineMakeCall      ↓ lineGetMessage & ...…

查看全部问答>

subproject的问题

用windows ce 的template建了个pda的os project 想在这个project下面加一个 subproject 来播放一个 test16bit.wav的文件 这个文件 我是从project property的custom build actions里面加入目录relase的 这个subproject我是这么写的 #include # ...…

查看全部问答>

虚拟网卡动态修改mac

    本人目前维护一个虚拟网卡的微端口驱动程序,代码已经由别人完成,且已经商品化,公司要求我增加一项功能,功能是驱动能够动态的修改虚拟网卡的mac地址。      虚拟网卡mac地址的初始化是通过读一个TXT文件,然 ...…

查看全部问答>

串口输出 程序调试

#include #include void main() { int i=7,j=2; float f=(float)i/j; SCON = 0x50; TMOD |= 0x20; TH1 = 0xf3; TR1 = 1; TI = 1; printf(\"%f\",f); while(1) {} } 这个程序为什么在运行的时候 在串口输入串口 没看到东西啊 ...…

查看全部问答>

一个让人纠结的结果

最近玩单片机的时候谢了一个小代码,但是实在不知道出错在哪里。代码如下         ORG 0000H         ;程序从000H地址开始运行         LJMP        ...…

查看全部问答>

求教!新手求指点

若我有一台17KW  600V的无刷电机,控制器的驱动部分因该选用哪种IGBT和驱动芯片呀,求个型号以供参考,谢谢了…

查看全部问答>

LPCXpresso-CN在IAR下怎么开发,选什么仿真器啊

驱动应该装好了,用lpcxpresso IDE开发无能 板子后面写了IAR,应该可以用IAR来开发 导入了一个IAR里自带的LPC1114的例程 编绎有一警告,无错误 仿真器选择那个呢,我一个个试好像都不行啊, 是不是有其他的选项要设置…

查看全部问答>

Z-Stack中SimpleApp开关结点加入网络流程

(1)开关结点初始化    这时选择的节点类型是终端节点,所以使用f8wEndev.cfg文件,所以在Zglobals.h文件中,我们可以得到下面的定义#define ZG_DEVICETYPE_ENDDEVICE        0x02#define DEVICE_LO ...…

查看全部问答>