- Advertisement -
首頁 市場話題 讓資料動起來 領域專用架構思維不一樣

讓資料動起來 領域專用架構思維不一樣

- Advertisement -

自從2017年度圖靈獎(Turning Award)得獎人John Hennessy與David Patterson在領獎演說中強調領域專用運算架構(Domain Specific Architecture)與領域專用程式語言(Domain Specific Language)的重要性後,在資訊科學與半導體領域掀起了一股討論熱潮。不同於通用運算架構,領域專用運算架構強調更高的運算效能與更低的功耗,但不像CPU或GPGPU,可以用來執行各種運算任務。目前市場上有哪種處理器比較接近兩位圖靈獎得主所描述的領域專用運算架構呢?答案是現場可編程閘陣列(FPGA)。

賽靈思(Xilinx)技術長Ivo Bolsens表示,電路微縮所能帶來的運算效能提升、功耗改善,在很多年前就已經趨緩(圖1)。為了滿足人工智慧(AI)等運算任務對效能的高度需求,半導體業界必須設法另闢蹊徑。

圖1 過去40年處理器效能演進

這也是Hennessy與Patterson之所以提出領域專用架構最主要的原因。目前業界最常見的CPU,是典型的通用(General Purpose)處理器,這類處理器在執行帶有各種決策樹的複雜演算法時很有效率,而且有各式各樣的函式庫(Library)支援,但CPU的效能成長空間已經很有限了。

至於向量處理器(Vector Processor),例如DSP與GPU,在執行可以高度平行化的特定運算任務時,有著非常高的效率,且歷經多年發展,現在這類處理器能執行的運算任務,也越來越多元。不過,因為DSP、GPU與CPU一樣,還是採用不具彈性的階層式記憶體架構,也就是大家常聽到的L1、L2甚至L3快取,因此在記憶體延遲、存取效能方面有許多瓶頸。

如FPGA這類可編程邏輯元件(PLD),則可按照使用者需求客製化特定的運算功能,擁有極低的延遲性能,特別適合強調即時性的運算任務,且其資料存取結構也跟傳統的處理器不同。但相對的,如果要修改演算法,在FPGA上往往得花好幾個小時,不像純軟體的CPU、GPU,只要花幾分鐘就能把程式重新編譯(Compile)完成。這也是為何FPGA會被視為領域專用處理器的原因–雖然FPGA一樣可以用來執行各種運算任務,但它的轉換過程遠比純軟體搭配通用處理器來得漫長。

不過,在強調運算能力跟效能/功耗比的今日,領域專用架構處理器還是有很大的發展潛力。賽靈思(Xilinx)技術長辦公室研究員Ralph Wittig認為,人工智慧(AI)等對運算效能需求極高的應用,還是需要使用領域專用架構硬體來運算,才能在運算效能、功耗跟整體成本之間取得最佳平衡。

根據賽靈思的觀點,基於FPGA的領域專用架構有三個元素,分別是適應性硬體、近記憶體運算與可支援多樣化資料傳輸模式的晶片內互連。以賽靈思的Versal適應性運算加速平台(ACAP)為例(圖2),該晶片架構內含多顆AI核心、用來直接存取外部記憶體的DMA,同時每個核心都帶有小容量的記憶體,以及扮演晶片內部互聯骨幹的Network on Chip(NOC)。

圖2 ACAP硬體架構

AI核心本身是軟體可編程的處理器,但藉由NOC,不同核心所配備記憶體是可以直接互聯的。這意味著如果使用者需要,可以把每個核心所帶有的記憶體互聯起來,視為一個容量超大的快取。不像現有CPU或GPU採用階層式的快取記憶體,當核心要存取記憶體內的資料時,視資料存放的位置,可能會遇到得等待數十到數百個循環週期(Cycle Time)才能得到資料的情況。除了存取效率外,傳統基於快取記憶體的架構,還會有不必要的資料複製、浪費記憶體容量的問題(圖3)。

圖3 傳統多核心架構的資料存取

也因為FPGA內部的互聯是非常彈性的,使用者可以依照自己的應用需求,實現各種不同的資料搬移模式,從業界最熟悉的管線式(Pipeline)結構,到一對一/一對多串流式(Stream),甚至廣播式(Broadcast)結構都能支援。這使得FPGA的使用者可以針對特定應用需求,使用效率最好的資料搬移模式來處理大量資料。

根據賽靈思的估計,這種架構讓Versal可以用存取L1快取的延遲,存取到10倍的記憶體容量。這不僅提升了運算效能,同時也降低晶片功耗。存取記憶體是非常耗電的,以典型的45奈米、0.9伏特製程來說,處理器要存取8kByte SRAM,就要消耗10pJ能量;但如果是要存取1MByte SRAM,就要消耗100pJ;但如果處理器核心要存取外部DRAM,就至少要消耗1.3~2.6nJ,能量消耗可達2,000倍。

Wittig總結說,如果設計人員非常在意處理器功耗跟運算效能,應該注意以下三個原則:首先,讓資料保持流動,只有在必要的時候才作暫存;其次,如果要做資料暫存,應該盡可能使用容量最小的記憶體;第三,盡可能把資料存放在晶片內的記憶體,不要放到外部DRAM上。

這也是一種思維的翻轉。在通用運算架構裡,是處理器下指令,把資料搬到核心來處理,但在領域專用架構裡,為了追求更好的運算效能跟降低功耗,是處理單元要盡量貼近資料。

ACAP架構因為具有「適應性硬體」、「近記憶體運算」與可支援「多樣化資料傳輸模式的晶片內互連」這三大特性,目前已經是一個相當理想的適應性資料流處理器。接下來,ACAP架構會朝強化平行運算的方向前進,利用ACAP架構的適應性互聯跟低延遲特性,讓眾多AI核心有更大的發揮空間。

相關文章

- Advertisement -
- Advertisement -

最新文章

- Advertisement -

熱門文章

- Advertisement -

編輯推薦

- Advertisement -