隨著技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)處理仍處于起步階段。因此,仍有一些高層次的問題需要回答。例如,“你如何實(shí)際執(zhí)行神經(jīng)網(wǎng)絡(luò)圖?”
有幾種可能的方法,但是神經(jīng)網(wǎng)絡(luò)(都是圖)的出現(xiàn)揭示了傳統(tǒng)處理器架構(gòu)中的一些缺陷,這些缺陷并不是為了執(zhí)行它們而設(shè)計(jì)的。例如,CPU 和 DSP 按順序執(zhí)行工作負(fù)載,這意味著必須將 AI 和機(jī)器學(xué)習(xí)工作負(fù)載重復(fù)寫入不可緩存的中間 DRAM。
這種串行處理方法,其中一個任務(wù)(或任務(wù)的一部分)必須在下一個任務(wù)開始之前完成,這會影響延遲、功耗等。而不是一個好辦法。圖 1 顯示了如何在這些傳統(tǒng)處理器上執(zhí)行圖形工作負(fù)載。

圖 1. 神經(jīng)網(wǎng)絡(luò)圖的串行執(zhí)行導(dǎo)致高功耗、延遲和整體系統(tǒng)成本。
圖中,氣泡節(jié)點(diǎn) A、B、C 和 D 代表功函數(shù),而矩形顯示每個節(jié)點(diǎn)生成的中間結(jié)果。Blaize(前身為 ThinCi)戰(zhàn)略業(yè)務(wù)發(fā)展副總裁 Richard Terrill 解釋了以這種方式處理神經(jīng)網(wǎng)絡(luò)圖的影響。
“這些中間結(jié)果通常非常龐大,將它們存儲在芯片上可能非常昂貴,”Terrel 解釋說?!澳阋醋鲆粋€非常大的籌碼。或者,更常見的是,您將其發(fā)送到芯片外,等待它完成。完成后,您可以加載下一個節(jié)點(diǎn)并運(yùn)行它。
“但是發(fā)生的情況是,必須在 B 加載并運(yùn)行后將結(jié)果帶回芯片上,然后在 C 加載并運(yùn)行后將兩個結(jié)果帶回芯片上。這里發(fā)生了很多片外、片上、片外、片上交易?!?/p>
面向圖表
隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的使用和應(yīng)用的增長,最先進(jìn)的技術(shù)必須改變。Blaize 正在開發(fā)一種圖形流處理器 (GSP) 架構(gòu),它認(rèn)為該架構(gòu)可以與未來的人工智能和機(jī)器學(xué)習(xí)工作負(fù)載一起擴(kuò)展。
該公司的“完全可編程”芯片包含一系列指令可編程處理器、專用數(shù)據(jù)緩存和專有硬件調(diào)度程序,可為神經(jīng)網(wǎng)絡(luò)圖帶來任務(wù)級并行性。如圖 2 所示,該架構(gòu)有助于減少外部存儲器訪問,而集成 GSP 和專用數(shù)學(xué)處理器的運(yùn)行頻率僅為數(shù)百兆赫以節(jié)省電力。

雖然 Blaize 仍然對其 GSP 架構(gòu)的細(xì)節(jié)保持不變,但從高層次來看,該技術(shù)似乎可以解決當(dāng)今的許多圖形處理挑戰(zhàn)。
“機(jī)器是底層的核心技術(shù),它旨在高效地實(shí)施和運(yùn)行數(shù)據(jù)流圖,”Terrill 說?!斑@是一種抽象,但它代表了當(dāng)今許多非常有趣的問題,要求你能夠?qū)ζ溥M(jìn)行不同類型的運(yùn)算,不同的計(jì)算、算術(shù)和控制、不同精度的算術(shù)、不同運(yùn)算符的算術(shù)、專用數(shù)學(xué)功能等。
“在里面,如果我們把它打開,我們專有的 SoC 有一系列專有處理器。它們是一個級別的一類 CPU,但它們是由我們的編譯器用二進(jìn)制文件編程的,以便在其中運(yùn)行,”他補(bǔ)充道。
圖 3 顯示了如何使用該機(jī)器有效地執(zhí)行圖形流處理。如圖所示,標(biāo)記為 0、1、2、3、4、5 和 6 的矩形表示任務(wù)平行。數(shù)據(jù)從第一個并行發(fā)送到標(biāo)記為“A”的氣泡節(jié)點(diǎn)。從氣泡中,它通過一個嚴(yán)重截?cái)嗟闹虚g緩沖區(qū),允許任務(wù)繼續(xù)執(zhí)行而不必離開芯片。
從理論上講,這意味著更低的能耗、更高的性能以及所需內(nèi)存帶寬的大幅減少。所有這些都可以轉(zhuǎn)化為更低的系統(tǒng)成本。

與 Blaize 的 GSP 技術(shù)配合使用的專用硬件調(diào)度程序允許開發(fā)人員利用這種性能,而無需了解目標(biāo)架構(gòu)的低級細(xì)節(jié),Terrill 指出這是關(guān)鍵,因?yàn)闆]有人可以真正處理這些類型的任務(wù)調(diào)度。工作量。事實(shí)上,調(diào)度程序非常高效,它可以在單個時(shí)鐘周期內(nèi)基于上下文切換對內(nèi)核進(jìn)行重新編程。
調(diào)度程序能夠通過與實(shí)際工作負(fù)載執(zhí)行并行運(yùn)行流程圖的映射來實(shí)現(xiàn)這一點(diǎn)
“它可以對傳入數(shù)據(jù)的單個周期以及何時(shí)何地運(yùn)行的中間結(jié)果做出決策,”特里爾說?!八粌H是可編程的,它是單周期可重新編程的,并且有很大的不同。您無法使用已修復(fù)的內(nèi)容或使用程序計(jì)數(shù)器來跟蹤正在完成的工作來執(zhí)行此類工作。對 FPGA 重新編程非常困難。這需要半秒鐘,你會失去所有的狀態(tài)。它永遠(yuǎn)跟不上人們希望完成事情的這種速度?!?/p>
該公司的測試芯片是基于 28 納米工藝技術(shù)開發(fā)的。然而,有趣的是,Blaize 計(jì)劃通過一系列行業(yè)標(biāo)準(zhǔn)模塊、電路板和系統(tǒng)來生產(chǎn)這項(xiàng)技術(shù)。
GSP 的軟件方面
圖形原生處理器架構(gòu)當(dāng)然需要圖形原生軟件開發(fā)工具。在這里,Blaize“畢加索”開發(fā)平臺允許用戶高效地迭代和改變神經(jīng)網(wǎng)絡(luò);量化、修剪和壓縮它們;如果需要,甚至可以創(chuàng)建自定義網(wǎng)絡(luò)層(圖 4)。

Picaso 支持 ONNX、TensorFlow、PyTorch 和 Caffe 等 ML 框架,基于 OpenVX 并采用類似 C++ 的語言,簡化了將應(yīng)用程序的神經(jīng)網(wǎng)絡(luò)部分集成到軟件堆棧中的其他組件的過程。圖 4 顯示了 Picaso 的主要元素——一個幫助開發(fā)預(yù)處理和后處理指令的 AI 工具包和一個處理編譯的圖形框架。
有趣的是,在生成可執(zhí)行文件后,編譯器在運(yùn)行時(shí)一直保留數(shù)據(jù)流圖,這允許硬件調(diào)度程序執(zhí)行上述單周期上下文切換。它還自動將工作負(fù)載定位到芯片上最高效的內(nèi)核,以最大限度地提高性能和節(jié)能。
但是在上圖中更仔細(xì)地放大,我們會遇到“NetDeploy”。這是 Blaize 開發(fā)的一項(xiàng)技術(shù),用于自動優(yōu)化現(xiàn)有模型以部署在邊緣設(shè)備中。
在修剪、壓縮和拉出東西的第一遍過程中,它最終成為一個非常循環(huán)的問題,”特里爾說。“準(zhǔn)確性通常會下降,它會回到訓(xùn)練階段說,‘好吧,像這樣訓(xùn)練它,然后這樣做,看看會發(fā)生什么?!?/p>
“這不是一個非常確定的過程。這需要很多周期?!?/p>
與 OpenVINO 等工具類似,NetDeploy 允許用戶指定所需的精度和準(zhǔn)確度,并在將模型優(yōu)化為將在邊緣運(yùn)行的算法時(shí)保留這些特征。據(jù) Terrill 稱,一位在 GPU 上進(jìn)行培訓(xùn)并在 FPGA 上進(jìn)行部署的客戶使用 NetDeploy 將模型移植時(shí)間從數(shù)周縮短到幾分鐘,同時(shí)保持準(zhǔn)確性并滿足內(nèi)存占用目標(biāo)。
描繪未來
在過去的 24 個月中,隨著人工智能工作負(fù)載變得越來越普遍,并且縮小硅幾何尺寸的能力停滯不前,我們看到了許多新穎的架構(gòu)出現(xiàn)。
Blaize 通過其圖形流處理 (GSP) 解決方案提供了一種獨(dú)特的方法,該解決方案涵蓋了計(jì)算、人工智能開發(fā)和移植軟件,很快,甚至可以輕松集成到設(shè)計(jì)中的硬件。這可能使公司的技術(shù)比其他新興替代品更快地被采用。
審核編輯:郭婷
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4839瀏覽量
107945 -
gpu
+關(guān)注
關(guān)注
28文章
5218瀏覽量
135664 -
人工智能
+關(guān)注
關(guān)注
1819文章
50151瀏覽量
265901
發(fā)布評論請先 登錄
神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識
自動駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個啥?
CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)原理及在MCU200T上仿真測試
NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹
構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議
在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)
CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作
液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時(shí)間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)的并行計(jì)算與加速技術(shù)
基于神經(jīng)網(wǎng)絡(luò)的數(shù)字預(yù)失真模型解決方案
無刷電機(jī)小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究
神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機(jī)故障診斷中的應(yīng)用
神經(jīng)網(wǎng)絡(luò)RAS在異步電機(jī)轉(zhuǎn)速估計(jì)中的仿真研究
基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析
神經(jīng)網(wǎng)絡(luò)圖需要圖流處理器
評論