首页应用软件软件产品资讯

为何与硬件有关的软体是非常重要的

原创2022-07-02 16:27:21 68

软体和硬体就像一个事物,但是他们常常处于两个不同的领域。在以前,很难同时进行软硬件的结合,很多企业和企业都会由于不能实施总体的解决办法而破产。

最大的问题在于,从那时起,这个产业有没有得到什么经验。最起码,公认的是,与硬件有关的软体具有以下一些重要功能:

它让软体开发人员能够利用其硬件的特性。

该系统为应用程序和硬体提供了一个地图。

这就是程序开发人员要使用的程序模式。

只要有一个缺陷,或是与产业的期望不符,就会造成很大的冲击。

将所有的错误都怪罪到软件上是错误的。西门子 EDA的主要负责人 FedorPikus表示:“并非所有的故障都与软件有关。有时候,问题就出在一个具有创新性的硬件概念上。其革命性质是破坏性的,根本无需进行革命。陈腐的老办法还有很大的发展余地。革命体系结构带来的危险促使之前停滞的体系迅速发展,而这恰恰就是我们所需的。

实际上,有些时候,没有理由就会出现硬件。Imperas首席执行官和创立者 Simon Davidmann表示:“由于他们拥有了一块晶片,所以我们才会发明了这种硬体结构。在1998,英特尔公司发布了四核心的芯片,这个主意不错。于是,在所有的硬件世界里,所有人都觉得我们应该建立多核,多线程,这很让人激动。但是,对于软件来说,这种要求是不存在的。虽然有很多晶片可以使用,而且价格低廉,但是因为摩尔法则,他们不能解决这个古怪的体系结构。如果你遇到了软体的问题,可以用你的硬体来处理,它会非常有效的。”

通常情况下,硬件必须有一个整体的生态环境。Cadence Tensilica的声音/声音 IP部门的市场主管 YipengLiu说:“光靠硬件没有软体是不行的。在此期间,你不能仅仅是在开发一个软件之后就宣称它已经做好了。这一切都在发生着变化。你必须有一个庞大的硬件生态圈。不然的话,要想获得更多的支援是非常困难的。”

软件工程师必须具备对已有的硬体的运用能力。Arteris IP公司的研究人员兼体系设计师迈克尔·弗兰克说:“所有这些都是从程序建模开始的。基础的硬件是第二位的。所有的事情都是从摩尔法则的极限出发的,比如时钟速度,内存等等。程式设计模式是了解软体是怎样运用及扩充软体的方法。这也是你对资源的利用方式。”

一些公司已经干得不错,可以向他们学习。西门子的 Pikus表示:“Nvidia并非首家使用平行程序模式的公司。多核心 CPU在很久以前就已经存在了。他们并不是最早采用 SIMD技术的,他们仅仅是在扩展自己的领域。但是 Nvidia在一些地方是正确的。他们要是不把软体做好,就会跟其它公司的下场一般。一般 GPU程序模式会产生不同。但是,这并不能说明这场变革的成败。这就是不同于那些在变革中取得胜利的球员。其它公司的体系基本无法被设计,而这些都决定了他们的未来。”

这同样适用于具体的应用程序。Cadence的 Liu说:“很明显,在这个领域,你必须要有优秀的 DSP和合适的软体。”我们和所有的音讯产业(尤其是那些提供 IP软体的公司)一起打造了一个庞大的生态圈。从最基础的编码到最精密的编码,我们都和厂商一起为 DSP所能得到的最好的服务。我们花费了很多的时间和努力来构建基础的 DSP,比如 FFT和 biquads等音频应用。接着,我们会针对这些问题对 DSP进行最优。有人称之为“软硬件结合”,是由于两者是互相依赖的。

处理好硬件

我们很轻易地就会被那些硬件弄糊涂了。Arm的开放源码技术专家马克•汉伯顿说:“如果一台电脑体系结构成为一种晶片,人们就可以在其之上建立一个新的工作负荷,那么,每一种结构的特性都需要安装好,这样最终的软件开发人员就可以利用了。如果不是在你的硬件上增加一个特性,或者是一个固定的或者一个中间件,那么它就变得毫无价值了。如果没有这一切,那么,还有什么人愿意买这种技术并把它融入到这个项目中呢?”

这种观点可以扩展到更多的领域。Liu说:“我们在市场上打造出最佳的硬件,以适应市场对功耗、性能和尺寸的需求。但是,你只有在没有合适的软体的情况下才能充分利用这个软体的潜能。你可以继续添加更多的硬件来达到你的要求,但是如果你添加了更多的硬件,那么它的功率和体积就会随之增大,这就是问题所在。”

现在整个行业都集中于各种硬件的发动机上。阿特里斯公司的弗兰克说:“如果我们拥有一个整型运算处理器,那么我们就会从一个浮点型单位起步。首先是向量发动机,其次是异质的处理器,最后是 GPU。自那时以来,我们已经见到了大量专门的发动机,它们与控制器的处理器密切配合。直到现在,编程人员都在研究如何将算法与硬件进行匹配。接着就是 CUDA, Cycle以及其他一些特殊的领域的各种文字。”

走向人工智能

人工智能的诞生带来了大量的硬件机遇。Imperas公司的 Davidmann表示:“我们已经发现了一些关于 ML和 AI的运算法则,并且要求更好的硬件结构。但是所有这些都只有一个目标,那就是加快人工智能的速度。所以他们才会这么做。”

这个需要可以是临时性的。有许多规模较小、通用性较差的企业正在尝试制造 AI晶片,它们面临着两个危险。一种是软件,一种是当前的人工智能将会消亡, Pikus说。人工智能的研究者说逆向沟通应该被淘汰。如果我们对神经网路进行逆向传递,我们将无法获得真正的胜利。逆向传输要求特殊的硬件,专门用于当今的神经网络。与其它专门的市场类似,这个搭配给它们带来了一个独一无二的机遇。”

AI的很多硬件要求和其它以算术为基础的程序并没有太大区别。Liu说:“人工智能现在在声音领域扮演了重要角色。首先是声音触发和声音辨识,然后是利用神经网路来降低噪音。神经网路的关键在于 MAC引擎,它与语音的需求并无太大差别。变化的是激活函数,非线性函数,或者是其他的数据。我们有一个和 DSP密切结合的加速装置。我们的软体有一个硬体的抽象级,因此使用者还是要编写 DSP程式。抽象层次主要决定了其在一个加速或者 DSP中的作用。而这个架构的使用者通常只针对 DSP,而非具体的硬件。”

此模型在很多领域都有广泛的应用。Arm公司的汉布尔顿说:“我有一个特殊的工作负荷,那么在这种特殊的装置上,怎样才能最好地完成它呢?”哪些是最高效的工作流,还是在某个特定时刻没有被使用的过程?资料中心是高度并行和高度线程性的。为了一种特殊的加工要素,有多个任务需要完成,因此,如果没有专门的加工项目,也许会更快速。取而代之,可以采用一个普通的 CPU,这是由于专门的处理器单元非常繁忙。这些用来进行如此精密的数字操作的最好方法所产生的图像具有很强的动力学性质。”

从软件到软件

人们通常会把编译程序看作是一件很平常的事情,但是他们却非常的繁琐。Hambleton说:“编译程序经常尝试用最佳的方法来实现代码。但是,整个软体的生态体系是有一个临界点的。一方面,我们的深度嵌入体系有着大量的人工编码,而编译程序则被特别地用于我们所开发的硬件。所有这些都是自定义的。目前或者不久的未来,您更有希望使用那些经过高强度品质循环的标准操作系统;确保产品的品质和安全性

目前,嵌入和 IoT的应用已经十分个性化。Liu说:“每当我们添加新的硬件特性时,编译程序都会做一定的修改。有时,我们的程序员会找到某些不被最好的编码,因此我们和编译者们一起努力,保证他们可以做得更好。我们的小组里有许多的回馈。我们有一个可以对汇编层次的编码进行解析的软件,并保证它能够生成非常好的程序。”

对于许多人来说,软件优化是非常关键的。Davidmann说:“我们已经有了一系列的用户,他们利用我们的处理程序来对自己的软件进行测试。我们的仿真程序采用了标记技术,这样他们就能把时间和指示连接在一起,我们也了解到,现在的人都在利用这种技术对软件进行修改。他们要求改进报告,比较不同操作的资料,并进行回放和比较。编译程序和工具箱的开发者一定会利用高级仿真软件来帮他们适应工作。

Davidmann又说:“另外一些人正在尝试重新设计他们的体系,他们先尝试着开发一个程序。他们希望看到,用演算法来实现的工具链条。接着他们发现自己必须要有一个不一样的指示。你可以调整编译程序,但是这只是有限的。你还可以对设备进行一些改动,增加一些附加的操作。”

这会导致大量的开发延误,这是由于编码者在可以对最新的硬件体系结构进行重新编译以前就需要进行升级。Codasip CTO ZdenkP. Keikryl表示:“一些工具包可以帮助我们确定哪些热区是可以或者应当进行的。”设计员可以迅速完成设计的迭代式,他所要做的仅仅是修改处理器的说明和结果,其中包含了编译和仿真程序,以及在下一次的性能评价中。

当硬件特性设置好后,软件的发展就会持续下去。Hambleton说:“当我们对这个特性有更多的认识后,我们可以根据具体的特性来修改它。您可以预先启动这个特性,并且您可以根据工作负荷来调节它。硬件的建立也许只是一种短期行为,但是它所产生的“长尾巴”效果将会延续许多年。我们还在继续完善10年以前的8.0。”

刘对此表示赞同。“我们的系统结构并没有太大的改变。我们在新的特性和新的硬件上加入了加快新的要求。每个阶段的基础结构都是一样的,但是对于不断发展的软件的需要却从来没有减慢,相反还在加快。

这使得软体小组的成长速度超过了硬体小组。现在 Arm公司的软体和硬体差不多是五五开。现在的情况和8年之前相比已经大不相同了,那时的情况更象是4名硬件员工对一名程序员。无论是在移动设备、基础设施或车辆方面,硬件技术都比较相似。硬件的最大差别在于内核的数目,互连性能,到内存的通路。而软件,每次你踏足新的行业,都要面对一系列全新的软体技术,或者是另一系列的工具箱。”

软体与硬体之间有着密切的联系,而软体则会增强其弹性。在长期的硬件安装完成后,必须继续进行软件的开发,以保证新的工作负荷能够在原有的设备上高效地工作。

这就意味著,不但要把硬体与好的软体一同提供,还要保证软体能够取得最佳效益。


标签:
随机快审展示 刷新 快审榜
加入快审,优先展示

加入VIP

发表评论

  • * 评论内容:
  •  

精彩评论

  • 无任何评论信息!