2016人工智能技術(shù)發(fā)展進(jìn)程梳理
FPGA 崛起
本文引用地址:http://m.butianyuan.cn/article/201702/343473.htmFPGA(Field-Programmable Gate Array)是現(xiàn)場(chǎng)可編程門(mén)陣列的英文縮寫(xiě)。簡(jiǎn)單來(lái)說(shuō),F(xiàn)PGA就像是一塊空白的數(shù)字電路,開(kāi)發(fā)者可以通過(guò)編寫(xiě)硬件代碼的方式來(lái)設(shè)計(jì)一個(gè)數(shù)字電路,代碼編寫(xiě)完成后,類(lèi)似軟件代碼中的編譯過(guò)程,F(xiàn)PGA的綜合器會(huì)對(duì)代碼進(jìn)行綜合、布局布線(xiàn),之后會(huì)生成一個(gè)二進(jìn)制文件,將這個(gè)二進(jìn)制文件燒寫(xiě)到FPGA后,原本空白的FPGA就變成了開(kāi)發(fā)者設(shè)計(jì)的電路,這就是“現(xiàn)場(chǎng)”和“可編程”的含義。同時(shí),F(xiàn)PGA可以反復(fù)擦寫(xiě),通過(guò)燒寫(xiě)不同的二進(jìn)制文件來(lái)實(shí)現(xiàn)不同的功能。因此,F(xiàn)PGA是介于專(zhuān)用集成電路(ASIC)和通用處理器(CPU)之間的一種硬件。
Xilinx和Altera是世界上最大的兩家FPGA廠商,共同占據(jù)了將近90%的市場(chǎng)份額。在2015年,Intel以167億美元完成了對(duì)Altera的并購(gòu),并購(gòu)后的Altera成為Intel可編程技術(shù)事業(yè)部。此次并購(gòu)足以見(jiàn)得Intel非常看重FPGA在其生態(tài)體系中的作用,可以從中看到Intel攜手FPGA進(jìn)軍數(shù)據(jù)中心的決心。圖14為Altera的FPGA芯片。
歷史上的FPGA作為“膠合”邏輯廣泛應(yīng)用于信號(hào)處理、ASIC驗(yàn)證等領(lǐng)域。所謂膠合邏輯即兩個(gè)硬件模塊進(jìn)行互聯(lián)時(shí)常常發(fā)現(xiàn)硬件接口、通信協(xié)議不匹配,這時(shí)在中間增加一級(jí)FPGA作為協(xié)議轉(zhuǎn)換器,就能實(shí)現(xiàn)兩個(gè)模塊之間通信和資源共享,而不需要修改原有模塊的軟硬件設(shè)計(jì)。iPhone 7里面集成的Lattice FPGA(ICE5LP4K)就是這樣的角色。
圖14 Altera FPGA近照
隨著工藝提升,集成度不斷加大,F(xiàn)PGA內(nèi)部的DSP資源也逐漸變多、變強(qiáng),甚至超過(guò)了普通的CPU、GPU,這時(shí)利用FPGA做計(jì)算加速也順理成章。FPGA具有高度可定制性、細(xì)粒度并行性,低功耗等特點(diǎn),吸引了互聯(lián)網(wǎng)企業(yè)的關(guān)注,越來(lái)越多的人在研究如何在數(shù)據(jù)中心中發(fā)揮FPGA的優(yōu)勢(shì)。受硬件資源限制,F(xiàn)PGA主要使用低精度(8-bit和16-bit)定點(diǎn)計(jì)算,所以一般都是面向神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)而非訓(xùn)練。
值得注意的是,NVIDIA的低功耗GPU Tesla P4也專(zhuān)門(mén)面向預(yù)測(cè),與FPGA形成了針?shù)h相對(duì)的形勢(shì),在多種性能指標(biāo)中P4也一騎絕塵碾壓大多數(shù)FPGA器件。使用FPGA而非GPU的一個(gè)理由是,F(xiàn)PGA硬件連線(xiàn)可以定制,GPU架構(gòu)是死的,升級(jí)硬件時(shí)需要重復(fù)投入資金,不像FPGA那樣可以更新硬件連線(xiàn)來(lái)實(shí)現(xiàn)硬件升級(jí)。
FPGA編程絕非普通軟件開(kāi)發(fā)人員可以勝任。它涉及指定芯片門(mén)級(jí)布局。最近OpenCL和其他編譯器技術(shù)引入,使得FPGA設(shè)計(jì)難度大大降低。
微軟Azure
微軟在Azure上采用FPGA加速機(jī)器學(xué)習(xí)和其他需要大量吞吐的應(yīng)用和服務(wù)已有五年多時(shí)間。最早在2011年發(fā)起了Catapult項(xiàng)目。第一次FPGA落地項(xiàng)目為Bing搜索排序算法,將吞吐提升了兩倍同時(shí)功耗降低至10%。利用云的巨大體量攤低成本,利用FPGA任意定制特性滿(mǎn)足各種各樣的應(yīng)用場(chǎng)景,硬件可以實(shí)時(shí)升級(jí)。
最初的Catapult服務(wù)器是雙路16核Xeon處理器+64GB RAM和一塊Altera Stratix V FPGA板卡,2 TB SATA磁盤(pán)和兩塊480GB美光SSD。
8月份,微軟發(fā)布了Catapult v2,特點(diǎn)是FPGA連接到CPU、主存和網(wǎng)絡(luò)。這樣,F(xiàn)PGA可以直接與另一塊FPGA通信,而不需要經(jīng)過(guò)CPU中轉(zhuǎn)。該設(shè)計(jì)更適合水平擴(kuò)展。除了加速AI應(yīng)用,F(xiàn)PGA也用于加速Azure的25G網(wǎng)絡(luò)設(shè)施,根據(jù)微軟報(bào)告,F(xiàn)PGA可以實(shí)現(xiàn)1/10延遲。由于可動(dòng)態(tài)配置,F(xiàn)PGA可以同時(shí)加速網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)應(yīng)用。
9月27日,微軟CEO Satya Nadella與工程師Doug Burger在亞特蘭大Ignite會(huì)議上聯(lián)合宣布每個(gè)Azure云服務(wù)器都安裝了Altera FPGA(Catapult 2)。在演示環(huán)節(jié),一個(gè)裝備4塊FPGA的服務(wù)器僅需2.6秒就能把1440頁(yè)著名的俄語(yǔ)小說(shuō)《戰(zhàn)爭(zhēng)與和平》翻譯為英語(yǔ),而一個(gè)24核CPU服務(wù)器完成相同任務(wù)需要19.9秒,功耗高60W。展示用的FPGA服務(wù)器使用10核CPU和4塊基于Altera Stratix V D5 FPGA加速卡,其功耗為30W,峰值處理性能為7.9TOPS。使用同樣的4塊FPGA服務(wù)器將英文版Wikipedia全部30億文本翻譯為另一種語(yǔ)言需要4個(gè)小時(shí),而Azure整個(gè)云都配備了FPGA,當(dāng)Burger將幾乎全部Azure計(jì)算能力(差不多1 EOPS)投入計(jì)算時(shí),耗時(shí)不到0.1秒。
圖15 Azure FPGA加速文本翻譯展示
Xilinx收購(gòu)Auviz Systems
Xilinx于9月宣布收購(gòu)在卷積神經(jīng)網(wǎng)絡(luò)(CNN)領(lǐng)域有獨(dú)到研究的Auviz Systems公司,這家成立僅三年的公司,專(zhuān)注于數(shù)據(jù)中心和嵌入式系統(tǒng)的加速應(yīng)用,擅長(zhǎng)機(jī)器學(xué)習(xí)、視覺(jué)算法和FPGA實(shí)現(xiàn)。
Auviz Systems提供基于FPGA的中間件IP,以減少應(yīng)用程序的功耗。對(duì)于需要以低功耗實(shí)現(xiàn)高性能的應(yīng)用,他們提供了FPGA庫(kù)如AuvizCV, AuvizLA,AuvizDNN以及定制加速器和服務(wù)。而針對(duì)FPGA,Auviz庫(kù)支持用C/C++或者OpenCL平臺(tái)進(jìn)行編程。
實(shí)際上,最近在人工智能領(lǐng)域熱門(mén)的本土新創(chuàng)公司深鑒科技也采用賽靈思的FPGA完成卷積處理,深鑒科技的創(chuàng)始人汪玉在Xilinx大學(xué)計(jì)劃年會(huì)上發(fā)言時(shí)特別強(qiáng)調(diào)了FPGA在卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)上的優(yōu)勢(shì)。深鑒成立于2016年3月,DeePhi提供軟硬件協(xié)同設(shè)計(jì)方案,實(shí)現(xiàn)從模型到硬件的完整工作流。
圖16 AuvizDNN加速CNN
小結(jié):如果說(shuō)只有大公司才有足夠的財(cái)力、人力、物力去設(shè)計(jì)專(zhuān)用人工智能芯片,那么對(duì)于大多數(shù)中小企業(yè)而言,F(xiàn)PGA是更好的選擇,設(shè)計(jì)相對(duì)靈活,成本投入更低,投放市場(chǎng)時(shí)間(Time-to-Market)更短。在人工智能硬件的舞臺(tái)上,無(wú)論Hot Chips、 SC16還是ISSCC,我們看到越來(lái)越多的FPGA解決方案,呈現(xiàn)百花齊放百家爭(zhēng)鳴的盛景。
嵌入式人工智能崛起
前面論述的絕大多數(shù)軟硬件都是在服務(wù)器端的,無(wú)論Google TPU還是Azure上的FPGA,更不用說(shuō)NVIDIA DGX-1這樣的龐然大物。這些“高大上”的概念讓普通人敬而遠(yuǎn)之。而與我們生活息息相關(guān)的大多數(shù)場(chǎng)景都與移動(dòng)設(shè)備、嵌入式設(shè)備相連。值得注意的是,今年嵌入式設(shè)備上的人工智能也成為一道亮麗的風(fēng)景。眾多初創(chuàng)企業(yè)投入了這股熱潮,努力將人工智能與具體用戶(hù)需求結(jié)合,創(chuàng)造更具性?xún)r(jià)比的智能產(chǎn)品。今年ILSVRC比賽冠軍商湯科技和??低?,主要產(chǎn)品都是嵌入式設(shè)備,從而也為人工智能真正扎根到廣大人民群眾中間做好了準(zhǔn)備,相信不出幾年我們身邊將會(huì)出現(xiàn)越來(lái)越多智能設(shè)備像智能手環(huán)、智能家居、智能健康設(shè)備、智能自行車(chē)、智能汽車(chē)、智能秘書(shū)幫我們完成細(xì)致而瑣碎的工作。
TensorFlow
AlphaGo的靈魂就是TensorFlow。一年前,Google就將TensorFlow完全開(kāi)源。半年前,Google發(fā)布了專(zhuān)門(mén)加速TensorFlow的硬件TPU。在短短的一年內(nèi),它的提交就超過(guò)了10000次,Google大腦部門(mén)做了許多性能改進(jìn):增加了對(duì)分布式培訓(xùn)的支持,支持從iOS到樹(shù)莓派(Raspberry Pi)平臺(tái),與廣泛使用的Hadoop/Spark大數(shù)據(jù)基礎(chǔ)設(shè)施集成;發(fā)布了領(lǐng)先的圖像分類(lèi)模型Inception;目前是最流行的機(jī)器學(xué)習(xí)項(xiàng)目,廣泛用于語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理等多項(xiàng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域。
TensorFlow是第一個(gè)可以在iOS、Android設(shè)備和樹(shù)莓派等移動(dòng)設(shè)備/嵌入式設(shè)備上面運(yùn)行的機(jī)器學(xué)習(xí)框架。這樣可以在有攝像頭的手機(jī)上運(yùn)行TensorFlow的Inception分類(lèi)器或自定義的分類(lèi)器,只要把攝像頭對(duì)準(zhǔn)你希望做分類(lèi)的東西,TensorFlow就會(huì)告訴你它認(rèn)為這是什么。
Cartographer
Google在10月8日宣布開(kāi)源Cartographer,這是一個(gè)ROS系統(tǒng)支持的2D和3D同步定位與制圖技術(shù)(SLAM,simultaneous localization and mapping)庫(kù)。SLAM是眾多自動(dòng)駕駛平臺(tái)的重要組件,比如自動(dòng)駕駛汽車(chē)、倉(cāng)庫(kù)中的自動(dòng)叉車(chē)、掃地機(jī)器人、UAVs等。在產(chǎn)業(yè)界和學(xué)術(shù)界常見(jiàn)的傳感器配置上,Cartographer能實(shí)時(shí)建立全局一致的地圖。Google在官方聲明中提到,SLAM算法結(jié)合了來(lái)自多個(gè)傳感器的數(shù)據(jù),比如LiDAR激光雷達(dá)傳感器、IMU慣性測(cè)量單元,還有來(lái)自多個(gè)攝像頭的數(shù)據(jù)。綜合這些龐雜的數(shù)據(jù),得以計(jì)算傳感器及傳感器周?chē)沫h(huán)境。Cartographer現(xiàn)已經(jīng)支持Toyota HSR、TurtleBots、PR2、Revo LDS這幾個(gè)機(jī)器人平臺(tái)。
Caffe2Go
Facebook于11月8日宣布將深度學(xué)習(xí)系統(tǒng)Caffe2Go開(kāi)源,可以完全運(yùn)行在智能手機(jī)上,目的是讓開(kāi)發(fā)者更容易接觸到人工智能。相比TensorFlow,晚了整整一年。
為了可以在iOS和Android設(shè)備上高效地運(yùn)行各種深度神經(jīng)網(wǎng)絡(luò),F(xiàn)acebook將用于圖像和視頻處理的AI模型壓縮了100倍。最終實(shí)現(xiàn)在某些手機(jī)上用不到二十分之一秒的時(shí)間完成AI預(yù)測(cè)過(guò)程。
嵌入式設(shè)備并不總是獨(dú)立作戰(zhàn),一些計(jì)算復(fù)雜度較高的任務(wù)會(huì)采用“云+端”的處理架構(gòu),一個(gè)例子是10月18日錘子手機(jī)新品發(fā)布會(huì)上演示的科大訊飛輸入法,通過(guò)語(yǔ)音輸入轉(zhuǎn)換為文字,準(zhǔn)確率達(dá)97%,其背后是基于深度學(xué)習(xí)的語(yǔ)音識(shí)別系統(tǒng),單純依靠移動(dòng)端是難以實(shí)現(xiàn)的,即使實(shí)現(xiàn)了也會(huì)有諸如手機(jī)發(fā)燙、電池不夠用等問(wèn)題,將任務(wù)合理分工,“云+端”協(xié)作完成復(fù)雜任務(wù),可以大幅提升用戶(hù)體驗(yàn)。
小結(jié):可以預(yù)見(jiàn),將來(lái)會(huì)有更多具備人工智能功能的嵌入式設(shè)備和移動(dòng)App,進(jìn)一步拉近我們與人工智能距離,成為密不可分的知心朋友?;蛟S有一天你幾乎無(wú)法分辨你的微信好友究竟是人,還是AI。
評(píng)論