如何更好地優(yōu)化多核 AI 芯片
在人工智能和機(jī)器學(xué)習(xí)應(yīng)用數(shù)據(jù)處理的強(qiáng)勁需求下,大規(guī)模并行計算迅速興起,導(dǎo)致芯片復(fù)雜性呈現(xiàn)爆炸式增長。這種復(fù)雜性體現(xiàn)在 Cerebras 晶圓級引擎(如下圖)等設(shè)計中,該設(shè)計是一種平鋪多核、多晶片設(shè)計,將晶體管數(shù)量增加至數(shù)萬億個,擁有近百萬個計算內(nèi)核。
人工智能 (AI) SoC 的市場持續(xù)增長,競爭也日趨激烈。半導(dǎo)體公司根據(jù)性能、成本和靈活性,來找到自己的定位,并不斷自我優(yōu)化,從而導(dǎo)致了新型多核架構(gòu)的爆發(fā)式增長。系統(tǒng)架構(gòu)師正在嘗試不同的方法,希望可以將這種復(fù)雜性轉(zhuǎn)化為競爭優(yōu)勢。
在所有復(fù)雜性來源中,有一個在多核 AI SoC 中非常重要的來源:即當(dāng)有多個線程在共享數(shù)據(jù)上并行運行時,會出現(xiàn)功能錯誤和性能降低問題。過去,設(shè)計人員可以使用經(jīng)典的 CPU 運行控制來調(diào)試問題,但這種方法對多核架構(gòu)并無效果。導(dǎo)致軟件問題的根本原因錯綜復(fù)雜,包括往返時延、內(nèi)核數(shù)量、控制和數(shù)據(jù)并行、多層層次結(jié)構(gòu)和互相依賴的進(jìn)程,設(shè)計人員從中找出真正根源的機(jī)會渺茫。
另外,設(shè)計人員還需要考慮軟硬件協(xié)同優(yōu)化,這需要大量的功能分析。為了在 SoC 上部署 AI 應(yīng)用,設(shè)計人員必須編譯源代碼,以充分利用多核架構(gòu)。這通常需要充分了解 SoC 架構(gòu)的定制工具鏈。這個過程包括一個硬件和軟件優(yōu)化及測試周期,從 SOC 仿真開始,一直貫穿至第一次投片和后續(xù)器件迭代,如下圖所示。
通過這一功能分析周期,團(tuán)隊能夠了解以下內(nèi)容:
· 數(shù)據(jù)共享的效率;
· 片上網(wǎng)絡(luò) (NoC) 是否超載或不平衡;
· 如何在不影響代碼執(zhí)行的情況下評估應(yīng)用性能;
· 如何優(yōu)化內(nèi)存控制器配置文件以提升數(shù)據(jù)處理能力;
· 如何關(guān)聯(lián)整個 SoC 中的事件;
要做到這一點,我們需要一種全新的方法來優(yōu)化 AI SoC 及其上面運行的軟件。要將高質(zhì)量的 AI SoC 及時推向市場并在完成部署后保持性能,必須要進(jìn)行系統(tǒng)范圍的功能分析。系統(tǒng)范圍功能分析的部分功能包括:
· 深入洞察子系統(tǒng)或組件 ;
· 對整個系統(tǒng)從啟動開始的準(zhǔn)確、連貫的全景圖;
· 事物感知(Transaction-aware) 的互連監(jiān)控和統(tǒng)計信息;
· 傳統(tǒng)的處理器運行控制和追蹤;
· 支持所有常見的指令集和互連協(xié)議;
· 提供選擇或更改重要子系統(tǒng)的靈活性;
· 用于產(chǎn)生數(shù)據(jù)可見性的靈活強(qiáng)大的工具;
用于監(jiān)控和分析 IP 的片上基礎(chǔ)架構(gòu)和軟件提供了所有這些功能,覆蓋范圍可從仿真到部署。下圖即顯示了 SoC 功能監(jiān)控和分析的典型架構(gòu)。
接下來的圖中展示的示例是一個多核芯片配備片上網(wǎng)絡(luò) (NoC) 監(jiān)視器,可跟蹤所有 NoC 事務(wù)到循環(huán)緩沖器。由于 NoC 監(jiān)視器具有事務(wù)感知功能,可將其配置為檢測特定總線條件,例如導(dǎo)致事務(wù)持續(xù)時間超過特定閾值(按周期數(shù)計算)的死鎖。當(dāng)超過閾值時,NoC 監(jiān)視器可以輸出死鎖事務(wù)以及之前事務(wù)的詳細(xì)信息,以便對問題進(jìn)行診斷。
同一個 NoC 監(jiān)視器也可配置為在檢測到相同死鎖條件時——例如通過跟蹤硬件加速器行為的狀態(tài)監(jiān)視器模塊——使用嵌入式分析消息基礎(chǔ)設(shè)施的交叉觸發(fā)功能,在系統(tǒng)中的其他位置觸發(fā)跟蹤。
了解實施有效的系統(tǒng)驗證和優(yōu)化環(huán)境時涉及的問題,是成功交付多核 SoC 的關(guān)鍵,與該領(lǐng)域內(nèi)的專業(yè)供應(yīng)商合作可實現(xiàn)事半功倍的效果。