人工智能在加速器(qì)等方(fāng)面(miàn)的(de)应用(yòng)
随(suí)着(zhe)科技的发(fā)展,最近几年,人工智能越(yuè)来越火(huǒ),AI也在逐渐深入到各领(lǐng)域。
人工智能在云(yún)计算领域,阿里(lǐ)巴巴继亚(yà)马逊、谷歌之后,推(tuī)出了自己的定制加速器。Facebook也参与其中,微软在Graphcore中持有大(dà)量股(gǔ)份。英特(tè)尔(Intel)和mobilesye在汽车领域拥有强大的边缘人工(gōng)智能(AI),而无线基(jī)础设施开发商正在为(wéi)5G的小电池和基站增(zēng)加AI功能。所有(yǒu)这(zhè)些应用程序都依(yī)赖(lài)于大量灵活性和对未来的检验(yàn),以(yǐ)便(biàn)在快(kuài)速发(fā)展(zhǎn)的环境中(zhōng)获得长期的相关性(xìng)。
nal Hardware Solutions" style="border:0px;height:auto !important;" />
但是有许多应用程序,对于它们来说,功率、成本或透明的(de)使(shǐ)用模型(xíng)是更重要的度量标准。一个农业监(jiān)视器在一(yī)个偏僻的地方(fāng),一(yī)个(gè)微波(bō)语音(yīn)控制器,交通传感器(qì)分布在一个大城市。对于这些问题,一个通用的解决方案,甚至(zhì)一个通(tōng)用的AI解决(jué)方案,都可能(néng)是多余的。所以,一个特(tè)定的应用程序的AI功(gōng)能将(jiāng)会更加引(yǐn)人注目。
在人工(gōng)智能(néng)时代之前,你会立(lì)刻想到一个硬件加速器——它可以做任(rèn)何它必须做的事情,但(dàn)比(bǐ)在CPU上运行一个软件要快得多。这(zhè)就是人(rén)工智能加速器(qì)的作用。它(tā)可(kě)能仍然(rán)是以软(ruǎn)件驱动的,但与通用CPU方(fāng)式不同。软件是(shì)在大型平台(如TensorFlow或Torch)上用Python开发的,然后通过多个步骤编译(yì)到目标(biāo)加速器上。
这就是神奇之处。只要加速器保(bǎo)持在神经网络架构(gòu)的一般范围内(nèi),它就可以像你希望的那样狂野。它可以(yǐ)支持多个卷积引擎,每个引擎又由SRAM作(zuò)为一个整体来支持,同时还(hái)支持(chí)本(běn)地内存,以优化对操(cāo)作的(de)优先(xiān)顺序的访问。
它可能支(zhī)持专业功能池等常用操作。为了提高速度和性能(néng),它通(tōng)常会在不同的(de)推理阶段支持(chí)不同(tóng)的字宽(kuān),并在处(chù)理稀(xī)疏数组时支持专门(mén)的优化。这(zhè)两个领域都是神经网络架构的(de)创(chuàng)新热点,一(yī)些架构师(shī)甚至尝试使用(yòng)单比特权值——如(rú)果(guǒ)一(yī)个权值只能是1或0,那么你(nǐ)就不需要在卷积和稀疏性增加中进行乘法运(yùn)算了!
所(suǒ)有这些的挑战在于,当你(nǐ)想要致力于最终架构时,你会发现有太多的旋钮,以至于(yú)很(hěn)难知道(dào)从哪里开始,或者(zhě)你是否真正探索了全部的可能性空间。更(gèng)加复杂的是,你需要在大范(fàn)围(wéi)的大型测试(shì)用例(大图像(xiàng)、语音样本(běn)等等)上(shàng)测试和(hé)描述。
用C语言而不是RTL来(lái)运行大部分测试是常识,因为它比RTL运行速度快几个数(shù)量级,而且(qiě)比RTL更(gèng)容易调优。此(cǐ)外,神经(jīng)网络算法可以通过高级合成(HLS)很好地映(yìng)射,因此你的(de)C模型可以不仅(jǐn)仅(jǐn)是一个模型,它还(hái)可(kě)以(yǐ)是生成RTL。你(nǐ)可以探索你正在(zài)考虑的选择(zé)的能力、性能(néng)和(hé)区域含义(yì)——多个卷积处理器(qì)、本地内存、字宽、广播更新。所有这(zhè)些都(dōu)具有快速(sù)的周(zhōu)转时间,允许你更充分地探索可能的优化范围(wéi)。