ADVERTISEMENT
在AI加速器快速發展的時代,通用CPU並沒有獲得太多關注。「如果你看看一代又一代的CPU,會發現它們的改進都是漸進式的,」位於芬蘭的Flow Computing首席執行長兼聯合創辦人提莫·瓦爾托寧(Timo Valtonen)表示。
瓦爾托寧的目標是將CPU重新放回它應有的「中央」角色。為了達到這個目標,他和他的團隊提出了一個新的模式。與其在筆記型電腦中放入16個相同的CPU核心,製造商可以在相同的空間中放置4個標準的CPU核心和64個Flow Computing所謂的平行處理單元(PPU)核心,進而做到高達100倍的性能提升。瓦爾托寧及其合作者在八月份的Hot Chips大會上闡述了他們的論點。
PPU在運算任務可以平行化的情況下,PPU提供了加速,而傳統的CPU無法充分利用這種平行性,將任務轉交給像GPU這樣的設備則成本過高。
「通常我們會說,『只有在工作負載較大時,平行化才是值得的』,因為否則開銷會抵消我們大部分的收益,」德國哈根大學平行運算和VLSI專業教授約格·凱勒(Jörg Keller)表示,他並未參與Flow Computing的研究。「而這種情況現在正在向較小的工作負載轉變,這意味著有更多的程式碼區塊可以應用這種平行化。」
運算任務大致可以分為兩類:順序任務,其中每個步驟都依賴於前一個步驟的結果;另一類是可以獨立完成的平行任務。Flow Computing的CTO兼聯合創辦人馬爾蒂·福塞爾(Martti Forsell)表示,單一架構無法同時針對這兩種任務進行最佳化。因此,這個想法是擁有針對每種任務類型進行最佳化的獨立單元。
「當我們的程式碼中有順序工作負載時,CPU部分將執行它。而當遇到平行部分時,CPU將分配這部分給PPU。這樣我們就能擁有兩者的最佳性能,」福塞爾表示。
根據福塞爾的說法,最佳化平行計算的計算機架構有四個主要要求:容忍記憶體延遲,這意味著在從記憶體載入下一塊數據時,不會空閒等待;具有足夠的頻寬來實現所謂多執行緒間的通訊,這些多執行緒是並行運行的處理器指令鏈;高效的同步,確保程式碼的平行部分以正確的順序執行;以及低級平行性,即能夠同時使用多個功能單元來執行數學和邏輯運算。對於Flow Computing的新方法,「我們從頭開始重新設計了適用於平行計算的架構,」福塞爾表示。
任何CPU都有可能升級
為了隱藏記憶體存取的延遲,PPU實現了多執行緒:當每個執行緒請求記憶體時,另一個執行緒可以在第一個執行緒等待回應時開始運行。為了最佳化頻寬,PPU配備了靈活的通訊網路,使任何功能單元都可以根據需要與其他單元通訊,還能實現低級平行性。為了解決同步延遲問題,它使用了一種名為「波同步」的專有演算法,據稱其效率比傳統同步協議高出多達10,000倍。
為了展示PPU的強大性能,福塞爾和他的合作者構建了一個概念驗證的FPGA實現。他們表示,FPGA的表現與他們的模擬器完全一致,證明了PPU的運作如預期。他們還對PPU設計與現有的CPU進行了多項比較研究。「在我們的初步性能比較中,假設Flow PPU的矽晶體實現與其中一個比較的商用處理器以相同速度運行,並使用我們的微架構,我們達到了最多100倍的提升,」福塞爾說。
目前,該團隊正在為PPU開發編譯器,並尋找CPU製造領域的合作夥伴。他們希望能有大型CPU製造商對他們的產品感興趣,這樣他們就可以共同設計。他們的PPU可以與任何指令集架構實現,因此任何CPU都有可能進行升級。
「現在確實是這項技術推向市場的時候了,」凱勒說。「因為現在我們需要行動設備中的節能運算,同時我們也需要高運算性能。」
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!