卷積神經網絡和長期短期記憶網絡的核心,深度學習的兩個主要支柱,甚至在像谷歌的變形金剛這樣的更現(xiàn)代的網絡中,大多數(shù)計算都是線性代數(shù)計算,稱為張量數(shù)學。最常見的是,將一些輸入數(shù)據(jù)轉換為矢量,然后將該矢量乘以神經網絡權重矩陣的列,并將所有這些乘法的乘積相加。稱為乘法相加,這些計算使用所謂的“乘法 - 累加”電路或“MAC”在計算機中呈現(xiàn)。因此,只需改進MAC并在芯片上創(chuàng)建更多的MAC來增加并行化,就可以立即改善機器學習。
主導AI培訓的Nvidia和其CPU主導機器學習推理的英特爾都試圖調整他們的產品以利用那些原子線性代數(shù)函數(shù)。Nvidia為其Tesla GPU添加了“張量核心”,以優(yōu)化矩陣乘法。英特爾已花費300億美元收購那些從事機器學習的公司,包括Mobileye,Movidius和Nervana Systems,其中最后一個應該在某個時候導致“Nervana神經網絡處理器”,盡管有延遲。
到目前為止,這些舉措并不能滿足機器學習的需求,例如Facebook的LeCun。在2月與ZDNet聊天期間,LeCun認為,“我們需要的是競爭對手,現(xiàn)在,你知道,主導供應商[Nvidia]?!?這不是因為,他說,Nvidia沒有做出好的籌碼。這是“因為他們做出了假設,”他繼續(xù)說道,“而且擁有一套不同的硬件可以用來做當前GPUS擅長的補充事物,這是不錯的選擇?!?/p>
他說,其中一個有缺陷的假設是假設訓練神經網絡將是一個可以操作的“整齊陣列”的問題。相反,未來的網絡可能會使用大量的網絡圖,其中神經網絡的計算圖的元素作為指針流式傳輸?shù)教幚砥?。LeCun表示,芯片必須進行大量的乘法增加,但對于如何將這些乘法增加呈現(xiàn)給處理器的期望不同。
作為TPU芯片貢獻者之一的谷歌軟件工程師Cliff Young,去年10月在硅谷舉行的芯片活動上發(fā)表了主題演講時更直言不諱?!昂荛L一段時間,我們都拒絕了,并說英特爾和Nvidia非常擅長構建高性能系統(tǒng),”Young說?!拔迥昵拔覀兂搅诉@個門檻?!痹谶@個漏洞中,新的芯片來自谷歌等人工智能巨頭,還有一大批風險投資支持的創(chuàng)業(yè)公司。
除了谷歌的TPU,現(xiàn)在已經進行了第三次迭代,微軟還有一個可編程處理器,一個名為Project Brainwave的“FPGA”,客戶可以通過其Azure云服務租用它。亞馬遜表示,它將在今年晚些時候推出自己的定制芯片,名為“Inferentia”。當LeCun在2月份與ZDNet談話時,他提到Facebook有自己的籌碼。
“當然,像谷歌和Facebook這樣擁有大量產品的公司,對你自己的引擎工作是有道理的,”LeCun說?!斑@方面有內部活動?!眲?chuàng)業(yè)公司包括Graphcore,一家位于布里斯托爾的五年創(chuàng)業(yè)公司,一個位于倫敦西南一個半小時的港口城市; Cornami,Effinix和Flex Logix,所有這些都是由ZDNet描述的; 和硅谷的洛斯阿爾托斯的Cerebras系統(tǒng)公司仍然處于秘密模式。
許多這些初創(chuàng)公司都有一個共同點,那就是大大增加用于矩陣乘法的計算機芯片區(qū)域的數(shù)量,即MAC單元,以便在每個時鐘周期內擠出最多的并行化。Graphcore是所有初創(chuàng)公司中最遠的,是第一個真正向客戶發(fā)送生產芯片的公司。關于它的第一個芯片最引人注目的事情之一是大量的內存。為了紀念世界上第一臺數(shù)字計算機,Colossus 被稱為芯片,面積巨大,面積為806平方毫米。首席技術官Simon Knowles稱其為“迄今為止最復雜的處理器芯片”。
Colossus由1,024個被稱為“智能處理單元”的獨立核心組成,每個核心都可以獨立處理矩陣數(shù)學。眾所周知,每個IPU都有自己的專用內存,256千字節(jié)的快速SRAM內存。總共有304兆字節(jié)的內存是芯片中最常用的內存。沒有人知道芯片上存在如此多的內存會如何改變構建的神經網絡的種類??赡苁峭ㄟ^訪問越來越多的內存,訪問速度非常低,更多的神經網絡將專注于以新的和有趣的方式重用存儲在內存中的值。
對于所有這些芯片的努力,問題當然是由于該公司的“CUDA”編程技術,他們沒有為Nvidia建立多年的軟件。Graphcore和其他人的答案將是雙重的。一個是用于機器學習的各種編程框架,例如TensorFlow和Pytorch,提供了一種避免芯片本身細節(jié)并專注于程序結構的方法。所有進入市場的芯片都支持這些框架,他們的創(chuàng)造者認為這些框架與Nvidia的競爭環(huán)境。
第二點是Graphcore和其他人正在構建自己的編程技術。他們可以證明他們的專有軟件既可以轉換框架,也可以智能地將并行計算分配給芯片上的眾多MAC單元和向量單元。這就是Graphcore為其“Poplar”軟件所做的論證。Poplar將神經網絡的計算圖分解為“codelets”,并將每個codelet分配到Colossus的不同核心,以優(yōu)化并行處理。
在過去的二十年中,大數(shù)據(jù)和快速并行計算成為常態(tài),推動了機器學習,帶來了深度學習。下一波計算機硬件和軟件可能涉及大量內存和神經網絡,這些內存和神經網絡受到動態(tài)限制,以利用高度并行的芯片架構。未來看起來很有趣。