過去這25年來,我們先後兩次見證了全新計算領域的快速擴張,如今的新一波驅動力自然就是風頭一時無兩的生成式AI。而25年之前,隨著網際網路的繁榮發展,企業開始在應用程序外頭包上一層又一層的網絡和Web協議,讓更多人成為鍵盤鼠標的奴隸,也為如今仍在運行的超大規模網際網路數據挖掘體系奠定了基礎。
用戶的鼠標點擊轉化成了企業的廣告收益。而隨著生成式AI革命,我們在網絡上創建的所有文本、以及從私人數據集和公共領域資料中提取的一切文本,都經過了儘可能全面的清洗和篩選。去掉偏見之後,這些素材建立起一個包含數萬億參數的神經網絡,其憑藉龐大語料庫中過場的文本片段成為一套極為高效的問答系統。這類生成模型已經被用於輸出圖像、影片和聲音,世界各地的企業、政府、學界及研究機構都想搞清楚如何將其融入自身應用當中,或者藉此開發出新的應用。與此同時,各方還在努力使用GPU來訓練和運行這類模型,並拼命爭取能支撐起這類大規模並行計算引擎的高昂預算。
這場以機器學習為基礎的AI革命始於10年之前的2012年,當時技術第一次在圖像處理方面追平了人類專家。在這場機器學習革命當中,IBM一直致力於開發TrueNorth系列神經形態處理器以及面向AI應用的補充性模擬晶片,並將更為傳統的矩陣數學引擎以離散組件的形式嵌入在其Power和Z系列產品當中。但除了Power 10和z16處理器中兩種差異巨大的矩陣單元之外,IBM的努力並沒能在商業市場上取得廣泛成功。畢竟藍色巨人曾經對此充滿熱情、也慷慨投入,如今居然在供應嚴重不足的AI訓練和推理引擎領域毫無作用,實在讓人有點想不通。
就在上個月底,IBM位於加利福尼亞州阿爾馬登的研究實驗室(主要負責AI、量子計算、安全及存儲類項目)公布了基於TrueNorth架構的NorthPole啟動器,此架構已經在《科學》及IBM研究院的博文中正式公布。不過作為IBM研究院院士、類腦計算首席科學家Dharmendra Modha畢生工作的巔峰,NorthPole目前對外公開的技術細節並不多,這著實令人感到遺憾。
IBM的NorthPoe AI推理處理器,這塊PCI-Express卡上其他晶片的作用尚不明確。
IBM公司早在2015年就已經為TrueNorth晶片申請了設計專利,並在2017年通過IEEE發表的論文中進行了更全面的披露。與其他神經形態晶片一樣,TrueNorth晶片實際是受到人腦神經元結構的啟發,屬於軟硬體相結合的神經網絡,能夠進行大量向量與矩陣數學計算。在SyNAPSE計劃之下,IBM從美國國防研究計劃局(DARPA)獲得了1.5億美元資金,用於製造這些神經形態晶片。而且根據軍方的要求,TrueNorth和NorthPole晶片主要用於圖像及影片識別類任務。
TrueNorth核心實現了通過突觸交叉網絡互連的256個神經元與256個軸突,而且總計4096個此類核心(每個核心都擁有本地內存)被共同安置在製程未知(可能是22納米,也可能是32納米)的單一晶片之上,總計用58億個電晶體模擬2.68億個神經元。作為DARPA項目的一部分,IBM還將16個TrueNorth晶片連接起來,並於2018年開始使用這套晶片網絡處理立體視覺。
根據IBM的介紹,NorthPole屬於TrueNorth架構的擴展成果。其不同之處,在於NorthPole的時鐘速率與傳統計算引擎更為相似。它的時鐘速率可以擴展,運行主頻在25 MHz到425 MHz之間,具體取決於工作負載,並採用12納米製程工藝。(這聽起來似乎符合Global Foundries的代工能力,但考慮到IBM與Global Foundries曾在兩代Power和z晶片合作上都鬧出過矛盾,所以這種可能性已經是微乎其微。)
根據發表在《科學》上的論文,NorthPole晶片沒有集中式內存,而是為晶片的256個核心分配了總計224 MB的SRAM(每個核心768 KB)。看起來NorthPole的核心更為強大,所以每晶片只部署了16 x 16個核心(總共256核),而非TrueNorth的64 x 64核心陣列(總計4096核)。
據我們所知,NorthPole核心能夠實現直接向量與矩陣數學指令(分為8位、4位和2位格式),且沒有對核心中的突觸和軸突、或者橫杆間的樹突進行模擬。由此看來,它似乎不能說完全受到TrueNorth架構的啟發。在我們看來,其靈感更多來自Graphcore、SambaNova以及Cerebras Systems……
NorthPole晶片上共有220億個電晶體,展開總面積為800平方毫米,在8位解析度下每個核心每周期可處理2048次操作,而4位條件下每核心每個周期可以處理4096次操作,2位條件下每核心每周期則為8192次操作。
NorthPole晶片上設有兩個不同網絡,IBM表示其靈感來自人腦中的長距離白質與短距離灰質網絡(分別對應兩套不同的皮層感知與運動系統網絡)。短距離片上網絡(NoC)允許在相鄰核心之間進行空間計算,長距離網絡則允許神經網絡激活分布在整個網絡內的其他核心。
NorthPole核心的16 x 16陣列前端是一組16個幀緩衝區,總容量為32 MB,而且這些幀緩衝區(大小與NorthPole的一個核心基本相當)依次按照I/O、隊列和調度電路排列。對於待處理的圖像,其內容會被分成16塊並分別送入16個幀緩衝區。
這就是NorthPole的巧妙之處:它並不屬於馮·諾依曼架構。來看論文表述,「NorthPole在數據之外建立分支,藉此支持管線、無停頓且確定性的控制操作,從而大大提高時間利用率,且不會像馮·諾依曼架構那樣發生內存丟失。由於不存在內存未命情況,因此不需要執行推測性、不確定性操作。純確定性操作使得一組八線程能夠在構造上保持同步,並以極高效率執行各類計算、內存與通信操作。」
IBM表示,在ResNet-50圖像識別測試及YOLOv4物體檢測測試當中,NorthPole的速度可達到TrueNorth的約4000倍。
由於NorthPole架構中的數據移動量不大,至少與CPU及GPU等馮·諾依曼設備及外部主存儲器相比不大,所以IBM表示NorthPole的每單位晶片面積上的能源效率更高。這也是晶片設計師及超大規模晶片廠商都在關注的重要評分指標。
英偉達「Volta」V100採用類似的台積電12納米製程工藝,電晶體數量為211億個,晶片尺寸為812平方毫米,但NorthPole設備每焦耳能量所處理的圖像數量達到V100的25倍。即使是面對採用台積電4納米製程、包含800億個電晶體的英偉達「Hopper」H100 GPU,NorthPole每焦耳能量所處理的圖像數量仍可達到其5倍。
下面來看各種計算引擎在 ResNet-50圖像識別效果、NorthPole幀數/焦耳處理比例以及每十億個電晶體的每秒幀數據密度結果間的比較:
IBM方面已經明確表示,NorthPole還只是一套概念驗證方案,並嘗試在谷歌用於自然語言處理的BERT純編碼器大語言模型及Deep Speech 2語音識別模型上進行了推理測試。目前NorthPole還未嘗試在純解碼器大語言模型(例如OpenAI的GPT-4或Meta Platforms的Llama 2)上進行推理測試,但Modha表示研究院正在著手籌備。
相信只要加快腳本,藍色巨人仍有望追趕這波AI浪潮。畢竟生成式AI推理的成本太高,如果能夠調整NorthPole以支持生成式AI模型,或者調整模型來支持NorthPole以實現多設備擴展,那麼IBM也將入圍這場AI推理軍備競賽……或者至少能夠在AI推理領域,提供比Power 10和z16處理器上的矩陣數學單元更加強大的新方案。
我們認為IBM的目標並不是成為專利流氓,畢竟其研究工作一直在切實推進、也打造出了TrueNorth及NorthPole等晶片成果。但從目前的情況看,IBM給予的重視程度似乎還不夠,沒有做好成為AI計算引擎供應商的準備,至少還沒想過要在價值數百萬美元的AI市場上跟其他GPU和ASIC廠商正面對抗。
當然,這種情況隨時可能改變,也應該有所改變。加油IBM,拿出點真功夫給這幫小年輕瞧瞧!