AI晶元開年
新年伊始,先祝各位朋友新春快樂,萬事如意!特別祝願在AI晶元領域奮鬥的各位同仁2018年好運!
2018開年,AI晶元領域延續了17的熱鬧景象。我在這裡梳理一下,算是給各位的春節小禮物。
ISSCC2018 Edge端逼近極限
ISSCC會議是半導體領域技術前沿的風向標,去年的會議我對相關內容也做了專門的分析(ISSCC2017 Deep-Learning Processors導讀文章匯總)。雖然ML處理器的架構我們已經討論的很多了,這次ISSCC的Session13: Machine Learning and Signal Processing文還是很有看點的。簡單總結一下,給我最深印象的主要有兩個:
1. Inductive-coupling SRAM 3D stacking
不知道大家還記不記得我在去年底介紹「Petascale AI晶元Vathys:靠譜項目?清奇腦洞?還是放衛星?」的時候說的,我覺得他們提出的三個腦洞:非同步設計,巨大的片上SRAM(1T)和wireless 3D stacking里,第三個是我覺得最難實現的。現在看來,也許判斷不太準確。在今年的13.2論文「QUEST: A 7.49TOPS Multi-Purpose Log-Quantized DNN Inference Engine Stacked on 96MB 3D SRAM Using Inductive-Coupling Technology in 40nm CMOS」中,作者就提出了如下圖所示的無線SRAM堆疊技術「inductive-coupling die-to-die wireless communication technology, known as a ThruChip Interface」。
如果暫不考慮這項技術的成熟度(既然能發表在ISSCC上,肯定比Vathys隨便說說要靠譜),它確實能給Memory集成帶來一個新的選項,非常值得關注。更有意思的是,這次的工作集成的是SRAM,而不是DRAM。雖然SRAM的經濟性(存儲密度)沒法和DRAM相比,但也有它的優勢,特別是讀寫速度。這篇論文就實現了3-Cycle Uniform Random R/W Latency。對於架構設計者來說,很多設計都是為了應對DRAM和片上存儲在讀寫速度上的差異。所以,這種新的封裝模式又給了架構設計者一個新的工具,可以有更多Tradeoff空間。再把腦洞開大一點,如果這條路被證明有實際的價值,也許未來會出現專門的SRAM Die和Wireless stacking IP供應商。實際上,文中提到的ThruChip搞了公司,大家不妨關注一下。
2. Bit-serial Processing
目前低精度(低於8bit)interence的效果已經可以支持實際應用了,特別是在Edge/Embedded端,低精度inference是一個重要趨勢,所以它的實現也是現在硬體設計的一個重點。這個方向的一個主要難度是對於不同的應用和演算法,精度要求不同,必須能夠在一個架構上支持不同精度的處理。去年我還思考過這個問題,基本的要求是處理單元PE必須是可以對單比特進行操作,而不是目前普遍使用的16bit/8bit的MAC。
這次會議的兩篇論文,包括上面提到的那篇和13.3「UNPU: A 50.6TOPS/W Unified Deep Neural Network Accelerator with 1b-to-16b Fully-Variable Weight Bit-Precision」都有相應的工作。後者的最大特點就是能夠支持從1bit到16bit的不同精度。
當然,這篇文章的題目里「50.6TOPS/W」的能耗效率有點嚇人。實際上這個指標是精度為1bit的情況,如果是16bit則是3.08T。下圖是不同bit數的時候的一個能耗效率的對比。
從這兩年發布的工作來看,對於相同的比特精度,相同的工藝,大家在傳統的數字設計領域試圖通過架構的創新提升效率的努力基本上已經接近極限了,發揮的空間會越來越小。
因此,相比2017年,今年的會議上Machine Learning處理器的論文數量少了,新增了討論Neuromorphic(Session7)和Computation in Memory(Session31)的內容。從這一點也可以看出技術研究的趨勢。傳統的ML處理器架構已經得到了非常廣泛和深入的研究,創新點越來越少了。而下一步就是要打破現有的架構,以新的材料和器件為基礎考慮新的架構。當然,要上這個台階,還有很大的挑戰。一方面,新的材料和器件離規模商用還有很大距離。另一方面,更重要的是,我們現在對人腦工作機制的理解還非常模糊,使用模型也非常簡陋。基於這樣的模型,設計類腦計算架構是否真能實現人腦的處理效率還是個未知數。感興趣的同學可以看看Medium上Carlos E. Perez的文章「Surprise! Neurons are Now More Complex than We Thought!!」。不過,對這兩個問題的研究也許都可以借著AI的火熱得到支持,獲得更快的發展。
Google Cloud TPU和ARM ML Processor
去年的年終總結「2017 ? AI晶元元年」里,我在18年展望中提了這樣一個問題:「Google的TPU是否會賣給自己之外的用戶,直接和Nvidia展開競爭?」
最近Google正式宣布Cloud TPU已經開放小規模商用,並且公布了價格。這算對我提出的問題給了一個初步的答案:Google會把TPU作為其Cloud的一個重要Feature推廣下去。目前,Google在Cloud領域並沒有優勢,去年好像已經被阿里雲超越。TPU可能會是Google未來在Cloud上最重要的買點。從這個意義上來說,Google已經和Nvidia有了一定的競爭關係,並可能越來越明顯。下圖是Google Cloud TPU和AWS Nvidia training方案的一個對比,目前看起來並沒有價格上的優勢。
source:Forbes
另外一個有意思的話題是商業模式和晶元架構設計的問題。Google這次是在Cloud平台推出TPU服務(以4顆TPU2晶元為單位)。而從TPU2的設計就可以看出,它可以說是充分考慮了Cloud的環境(更詳細的分析可以看看Nextplatform的文章:「Under The Hood Of Google』s TPU2 Machine Learning Clusters」)。從這個例子可以看出,未來的晶元架構的Tradeoff可能要把商業模式的特徵考慮進來。從TPU的進展來看,相信Google還會加強在這方面的研發,同時Cloud的其它幾個巨頭會如何應對也很值得關注。
去年的年終總結提出的另一個問題是「ARM下一步會怎麼走,會不會橫掃嵌入端?」。就在春節前夕,ARM公布了「Project Trillium, Arm』s Machine Learning (ML) platform」,算是回答了我的問題的前半部分。ARM的Project Trillium包括三個部分,Arm ML processor,Arm OD processor和Arm NN SDK。後面兩項之前都提過,ML processor應該是第一次公開,不過給出的框圖還是非常簡單。
source: ARM
同時,ARM也給出了具體的指標:
- Specially designed to provide outstanding performance for mobile; optimizations provide a further increase in real-world use cases up to 4.6 TOPs.
- Best-in-class efficiency at 3 TOPs/ W.
單看這個指標(沒有提具體的工藝),應該算中規中矩。至於問題的後半部分:「ARM會不會橫掃嵌入端?」我想目前誰都說不清楚。畢竟嵌入端的場景非常複雜,現在大家還都是在摸索當中。
規模的挑戰
最近在Nextplatform看到兩篇文章,從不同的角度討論了在神經網路的數據和運算規模不斷增加的背景下,對於大規模並行處理架構的挑戰。
首先是「Even at the Edge, Scale is the Real Challenge」,作者來自Nvidia。他討論在自動駕駛領域(算是Edge領域)數據和計算的趨勢。下圖是對一般的自動駕駛應用中神經網路訓練需要的數據和計算進行的估計。
source:nextplatform
基於這個估計,作者進一步分析了,如何通過multi-GPU(Nvlink),multi-node connection(InfiniBand),以及flash storage or flash-accelerated storage來實現一個規模化,且可擴展的架構,以應對計算和存儲上的挑戰。
另一篇文章是「Programmable Networks Train Neural Nets Faster」,來自一個做網路交換晶元的公司。文章提出了一個很有意思的概念,Computational Networking,簡單來說就是把神經網路的一些處理放到網路設備(比如switch中),「The beauty of our approach is that since we are already doing operations on every packet that comes across the network, we can continue to accumulate those packets at line rate and at low latency, and then it becomes a multicast operation to disseminate that result to all of the other nodes in the network. Since we are already programmatically handling all of the packets in the network, this is not really an additional burden.」
source:nextplatform
當我們把神經網路處理的視野逐漸從單顆晶元擴展到多顆晶元互連,到Server,到Rack,到Cluster甚至的Datacenter的時候,每個運算單元,存儲設備和網路設備形成了一個整體。運算可能集中在MAC陣列,也可能分布在存儲設備甚至網路設備當中。
2018開年,我們看到AI晶元領域既有趨勢的延續,也有新的問題不斷提出。在Edge側我們還會不斷在能耗效率上追求極致,或者針對各種應用做文章;而在Cloud側,規模上的可擴展性應該是一個重點話題。同時,硬體架構的複雜性和多樣性,又會給軟體開發帶來新的挑戰,進而要求更好的工具支持。總之,好戲還在後面。
再次祝願大家身體健康,工作愉快!
- END-
歡迎關注我的微信公眾號:StarryHeavensAbove
題圖來自網路,版權歸原作者所有
推薦閱讀:
※複習:PCA有關
※機器學習篇-評估機器學習的模型
※機器能像人一樣思考嘛? 金句領讀137
※複習:NN和BP
※讓我們一起來學習CNTK吧