主流晶片架構即將變天! | 半導體行業觀察
來源:內容由 微信公眾號 半導體行業觀察 (ID:icbank) CSDN 翻譯自「Semiconductor Engineering」,謝謝。
隨著裝置擴充套件帶來的效益越來越少,人們開始設計內建AI的系統,以在本地處理更多資料。晶片製造商正在研究一種新的結構,這種結構能夠顯著增加每能耗和每個時鐘週期上可以處理的資料量,併為未來幾十年內晶片架構的重大改變打下基礎。
所有主要的晶片廠商和系統廠商都在改變方向
所有主要的晶片廠商和系統廠商都在改變方向,他們引發了一場架構方面的競賽,包括了從向記憶體中讀取資料的方法到資料的處理和管理方式,以及最終各種元素如何打包到單個晶片中等方方面面。儘管節點的縮小依然會持續,但沒有人會為了應對隨著各種感測器和越來越多的機器間通訊的爆炸式資料增長而把一切賭在擴充套件性上。
在這些改變之中,有一些值得我們注意:
- 新的處理器架構專注於在每個時鐘週期內處理大塊資料,根據應用程式的不同需要,有時可以選擇較低的精確度,或讓一些操作有更高的優先順序。
- 新的記憶體架構正在開發,它將改變資料的儲存、讀取、寫入和訪問方式。
- 更多定向的處理元素被分散到系統中的各個部分,以配置到距離記憶體最近的地方。以後會根據資料型別和應用程式來選擇加速器。
- AI方面也有許多研究,以期將不同資料型別混合在一起組成模式,從而有效地增加資料密度,並將資料間的差異降低到最低。
- 封裝(packaging)現在是架構中的核心組成部分,而且越來越強調修改設計的方便性。
Rambus的傑出發明家Steven Woo說:“有幾個趨勢促使人們希望從已有方案中獲得最大的收益。在資料中心,人們希望壓榨硬體和軟體的一切效能。這使得人們重新認識資料中心的經濟模式。創新的代價非常高。但技術切換才是瓶頸,所以我們才會看到專用晶片,才會看到許多提高計算效率的方式。如果能減少記憶體和輸入輸出之間的資料交換,就能帶來重大影響。”
邊緣裝置的改變尤為明顯
這種改變在邊緣裝置上尤為明顯,而系統廠商們突然發現,幾百億的裝置會將它們生成的一切資料都發到雲端處理,這資料量顯然太大了。但在邊緣裝置上處理巨大的資料量又提出了新的難題,必須在不顯著提高能量消耗的前提下提高處理效能。
Nvidia的Tesla產品線的首席平臺架構師Robert Ober說,“現在的關注點是降低精確度。這不僅僅是要求更多的計算週期,而且要求在記憶體中放入更多資料,而且只能使用16位元的指令格式。因此並不能通過將資料放到快取中的方式來提高效率。從統計上來說,兩種方式的結果是一樣的。”
Ober預測,通過一系列架構上的優化,在可預見的未來,完全可能做到每兩年處理速度提高一倍。“我們會看到最尖端的變化,”他說。
“為做到這一點,我們需要解決突破三個瓶頸。第一是計算。第二是記憶體。某些型號中是記憶體訪問,其他型號則是計算問題。第三就是宿主頻寬和I/O頻寬。我們需要做很多工作來優化儲存和網路。”
其中一些已經實現了。在Hot Chips 2018會議上的一次演說中,三星Austin研發中心的核心架構師Jeff Rupley指出了三星的M3處理器的幾個主要架構變化。其中之一可以在每個時鐘週期中執行更多指令,與它的前身M2的四條相比,M3能執行六條。再加上分支預測功能(大致是幾個神經網路像執行搜尋中的預讀取一樣的功能),以及一個兩倍深的指令佇列,已經有望解決這些問題。
從另一個角度來看,這些改變將創新的重心從製造和處理技術上轉移到前端架構和設計,以及後端的製造後的封裝過程上。儘管處理技術上依然會有創新,但每個新的節點增加15%~20%的效能是非常複雜的,而且很難跟得上目前飛速增長的資料的速度。
Xilinx的總裁和CEO Victor Peng在Hot Chips的一次演講中說,“變化正在以指數的速度出現。每年都會產生10ZB(1021位元組)的資料,其中絕大部分是無結構的資料。”
記憶體的新方法
處理這麼多資料需要重新思考系統中從處理資料的方式到儲存方式的每個元件。
eSilicon EMEA的高階創新總監Carlos Maciàn說,“在建立新的記憶體架構方面有過虛度歐嘗試。問題是,你需要讀取所有行,並從每行中選出一個位元。一種可選的方式是建立一種可以從左到右、從上到下讀取的記憶體。還可以更進一步,將計算分佈在距離各個記憶體最近的地方。”
這些改變包括改變記憶體的讀取方式、記憶體的位置、處理元素的型別,以及使用AI來優化整個系統中資料的儲存方式、位置、處理和移動的方法。
“如果對於稀疏資料的情況,我們能從記憶體陣列中一次只讀取一個位元組,或者從同一個位元組的通道中一次讀取連續的8個位元組,而不用將能量耗費在其他我們不感興趣的位元組或位元組通道上,會怎麼樣?”Cadence的產品市場總監Marc Greenberg說。
“未來可能對這種改變更感興趣。拿HBM2的架構作例子,HBM2的晶圓堆疊組織為16個虛擬通道,每個通道為16位元寬,這樣不論訪問哪個通道,只需要拿到4個連續的64位元字即可。所以完全有可能構建1024位元寬的資料陣列並水平寫入,同時在垂直方向上一次讀取四個64位元的字。”
記憶體是馮諾依曼架構中的核心部件之一,但也成了最大的試驗領域。AMD的客戶產品首席架構師Dan Bouvier說,“最大的報應之一就是虛擬記憶體系統,它用許多不正常的方式移動資料。你需要不斷進行地址轉換。而我們早已習慣了這一點。但如果能在DRAM中消除bank衝突,就能進行更有效的資料傳輸。所以,離散的GPU能將DRAM利用到90%的有效範圍,這已經非常不多了。但如果資料傳輸能更流暢,那麼APU和CPU也能達到80%~85%的有效範圍。”
IBM在研究另一種型別的記憶體架構,本質上是一種現代版的磁碟分割(disk striping)。這種架構不再限制於單一記憶體,而是利用一種連線技術適時地利用一切可以利用的記憶體。
這種連線技術被IBM的系統硬體架構師Jeff Stuecheli稱為連通性的“瑞士軍刀”。這種方法的有點是能使用不同種類的資料。
Stuecheli說,“CPU更像是坐鎮中央的高效能訊號介面。如果修改了微架構,那麼無需提高時鐘頻率,核心就能在每個時鐘週期內做更多事情。”
連通性和吞吐量對於這些架構處理不斷生成的資料極其重要。Rambus的Woo說,“現在的瓶頸位於資料移動中。整個行業在計算方面做得很出色。但如果不得不等待資料,或等待某種資料模式,那記憶體的速度就得加快。所以,對於DRAM和NVM來說,效能取決於資料流動的模式。對於流式訪問,記憶體的效率就非常高。而跳來跳去的隨機訪問就沒那麼快了。而且不論如何,隨著資料量越來越大,我們能做的只有提高速度。”
更多計算,更少移動
更復雜的問題是,邊緣裝置會生成多種不同型別的資料,這些資料以不同的速度和頻率生成。為了讓資料能在各種處理元素之間更流暢地移動,資料就必須以更有效的方式管理。
Arteris IP的主席兼CEO Charlie Janac說,“有四種主要的配置——多對多,記憶體子系統,低功耗輸入輸出,以及網格和環狀拓撲。這四個部分可以放在同一個晶片內,這就是在製造物聯網晶片時的做法。或者,可以增加一個高吞吐量的HBM子系統。但複雜度會大大提高,因為一部分負載依賴於具體的晶片,而每種晶片都會有多種特別的負載和針腳。比如一些物聯網晶片能處理海量的資料,特別是比如汽車中的雷達和LiDAR晶片。沒有某種特別的高階連通功能,這些晶片就不可能實現。”
其中的難題是要儘可能減少資料移動,同時在不得不進行資料移動時,將資料的流量最大化,還要在本地處理和中央處理之間達成平衡,又不能消耗太多能量。
NetSpeed Systems的產品市場經理Rajesh Ramanujam說,“一方面是頻寬問題。你會盡一切可能不移動資料,所以會將資料移動到儘量靠近處理器的位置。但如果必須移動資料,你會盡可能亞索資料。但這一切都不是天上掉下來的。這一切都要從系統的高度去審視。每一步都要從多個角度考慮,並要決定是按照傳統的讀寫方式使用記憶體,還是使用更新的記憶體科技。一些情況下,你必須改變儲存資料的方式本身。如果想要更快的效能,那這通常意味著更高的區域開銷,這會影響到能耗。接下來就得考慮安全性,還得考慮資料過載的問題。”
這也是為什麼許多人關心在邊緣裝置上進行處理以及多種處理元素之間的吞吐量問題。AI引擎可以在固態儲存上自行進行分析。
Marvell的主工程師Ned varnica說,“你可以在SSD控制器上直接將模型載入到硬體中,並進行硬體處理。今天,雲服務中的主機就在這麼做。如果每個驅動器都要向雲端傳送資料,就會造成大量的網路流量。所以最好讓邊緣裝置自行處理資料,這樣主機只需要傳送包含元資料的命令即可。這樣,儲存裝置越多,處理能力就越強大。降低網路流量帶來的好處是巨大的。”
這種方式中非常值得一提的是,它強調了不同應用程式的資料移動的靈活性。因此,主機可以產生任務併發送給儲存裝置記性處理,之後只返回元資料或計算結果。還有一種場合是,儲存裝置可以儲存資料、預處理資料並生成元資料、標籤和索引,這些資料由主機獲取,用於未來的分析。
這只是其中一種選項。還有其他選擇。三星的Rupley特別強調了亂序執行和混合慣用指令方式,後者可以一次解碼兩條指令,並混合為一個操作。
AI監管和優化
貫穿這一切的就是人工智慧,它是晶片架構領域中的最新特性。功能不再由作業系統和中介軟體管理,而是在系統層次上分佈在晶片內各個地方,以及分佈在不同的晶片之間。某些情況下還可以在晶片內部內建神經網路。
eSilicon的市場副總裁Mike Gianfagna說,“實際上我們要做的就是把更多東西封裝在一起,改變傳統的方式。通過AI和機器學習,我們可以把這一切分散在系統各個地方,獲得更有效、更可預測的處理。一些情況下可以使用系統中獨立的不同晶片,另一些情況下可以使用同一個封裝。”
Arm釋出了它的第一個機器學習晶片,計劃於今年晚些時候在多個市場上發售。Arm的接觸工程師Ian Bratt說,“這是一種新的處理器。它有個基礎模組,是一個計算引擎、MAC引擎和DMA引擎,再加上一個控制和廣播網路。整體上一共有16個這樣的計算引擎,利用7奈米技術,能以1GHz的頻率處理4萬億條指令。”
由於Arm與生態系統合作伙伴合作,因此與仍在開發中的其他AI/ML晶片相比,它的晶片更具通用性和可配置性。
Arm並沒有將一切都放到巨集核心架構中,它按照功能將處理分類,這樣各個計算引擎可以負責不同的功能。Bratt說有四個關鍵功能,分別是靜態任務排程、有效卷積、頻寬減少機制和為應對未來的設計而出現的可程式設計機制。
同時,Nvidia採用了不同的路徑,他們在GPU旁邊建立了一個獨立的深度學習引擎,來優化處理影象和視訊時的流量。
結論
通過實現這些方法中的一部分或全部,晶片廠商說他們可以每兩年將晶片的效能提高一倍,從而跟上資料的爆炸式增長,同時保持晶片的功耗在一定範圍之內。
這實現絕不僅僅是更多的計算機。它是整個晶片設計和系統工程的改變的起點,從此晶片開始跟隨資料的增長,而不是受限於硬體和軟體。
Synopsys的主席和副CEO Aart de Geus說:“當計算機進入公司時,許多人感到整個世界發展得太快了。他們當時還在一摞紙上進行會計工作。從那時就開始了指數級別的增長,而現在我們又會見到同樣的事情。
現在發展的東西,你可以認為就是當年由會計賬本向穿孔卡片的演化。在農田裡,你必須在正確的日期、氣溫上升的時候澆水施肥,這就是為什麼以前機器學習沒有帶來明顯進步的原因。”
並不只他一個人給出了這種評價。西門子的子公司Mentor的總裁和CEOWally Rhines說,“人們最終會接受新架構。新架構最終會被設計出來。多數情況下這些架構會包含機器學習,就像你的大腦能從經驗中學習一樣。我見過20多家公司利用他們自己特質的AI處理器,每一種都有特定的用途。但你現在會在越來越多的應用中看到他們,最終他們會挑戰傳統的馮諾依曼架構。神經元計算會成為主流,這是我們在提高計算效率、降低成本並提高移動性和互聯性方面的一大步。”