GPUNet 由 AI 為 AI 精心打造,是一類(lèi)卷積神經(jīng)網(wǎng)絡(luò),旨在使用 NVIDIA TensorRT 最大化 NVIDIA GPU 的性能。
使用新的神經(jīng)架構(gòu)搜索( NAS )方法構(gòu)建, GPUNet 展示了最先進(jìn)的推理性能,比 EfficientNet-X 和 FBNet-V3 快兩倍。
NAS 方法有助于為廣泛的應(yīng)用構(gòu)建 GPUNet ,以便深度學(xué)習(xí)工程師可以根據(jù)相對(duì)精度和延遲目標(biāo)直接部署這些神經(jīng)網(wǎng)絡(luò)。
GPUNet NAS 設(shè)計(jì)方法
高效的體系結(jié)構(gòu)搜索和部署就緒模型是 NAS 設(shè)計(jì)方法的關(guān)鍵目標(biāo)。這意味著幾乎不與領(lǐng)域?qū)<疫M(jìn)行交互,并且有效地使用集群節(jié)點(diǎn)來(lái)培訓(xùn)潛在的架構(gòu)候選。最重要的是,生成的模型已準(zhǔn)備好部署。
人工智能制作
為目標(biāo)設(shè)備尋找性能最佳的架構(gòu)搜索可能很耗時(shí)。 NVIDIA 構(gòu)建并部署了一種新型的 NAS AI 代理,該代理可以有效地做出構(gòu)建 GPUNET 所需的艱難設(shè)計(jì)選擇,使 GPUNET 比當(dāng)前的 SOTA 模型領(lǐng)先 2 倍。
此 NAS AI 代理在中自動(dòng)協(xié)調(diào)數(shù)百個(gè) GPU Selene 超級(jí)計(jì)算機(jī) 而不需要領(lǐng)域?qū)<业娜魏胃深A(yù)。
使用 TensorRT 為 NVIDIA GPU 優(yōu)化
GPUNet 通過(guò)相關(guān)的 TensorRT 推理延遲成本,提升 GPU 友好的運(yùn)算符(例如,較大的篩選器)而不是內(nèi)存綁定運(yùn)算符(例如花哨的激活)。它在 ImageNet 上提供了 SOTA GPU 延遲和精度。
部署就緒
GPUNet 報(bào)告的延遲包括 TensorRT 發(fā)貨版本中可用的所有性能優(yōu)化,包括融合內(nèi)核、量化和其他優(yōu)化路徑。構(gòu)建的 GPune 已準(zhǔn)備好部署。
構(gòu)建 GPune :端到端 NAS 工作流
在高層次上,神經(jīng)架構(gòu)搜索( NAS ) AI 代理分為兩個(gè)階段:
根據(jù)推理延遲對(duì)所有可能的網(wǎng)絡(luò)架構(gòu)進(jìn)行分類(lèi)。
使用適合延遲預(yù)算的這些網(wǎng)絡(luò)的子集,并優(yōu)化其準(zhǔn)確性。
在第一階段,由于搜索空間是高維的,代理使用 Sobol 采樣來(lái)更均勻地分布候選。使用延遲查找表,然后將這些候選對(duì)象分類(lèi)到子搜索空間,例如, NVIDIA V100 GPU 上總延遲低于 0.5 毫秒的網(wǎng)絡(luò)子集。
此階段中使用的推斷延遲是一個(gè)近似成本,通過(guò)將延遲查找表中每個(gè)層的延遲相加來(lái)計(jì)算。延遲表使用輸入數(shù)據(jù)形狀和層配置作為鍵來(lái)查找查詢層上的相關(guān)延遲。
在第二階段,代理建立貝葉斯優(yōu)化損失函數(shù),以在子空間的延遲范圍內(nèi)找到性能最佳的高精度網(wǎng)絡(luò):
圖 2. NVIDIA NAS AI 代理端到端工作流
AI 代理使用客戶端 – 服務(wù)器分布式訓(xùn)練控制器來(lái)跨多個(gè)網(wǎng)絡(luò)架構(gòu)同時(shí)執(zhí)行 NAS 。 AI 代理在一個(gè)服務(wù)器節(jié)點(diǎn)上運(yùn)行,提出并訓(xùn)練在集群上多個(gè)客戶端節(jié)點(diǎn)上運(yùn)行的網(wǎng)絡(luò)候選。
根據(jù)結(jié)果,只有滿足目標(biāo)硬件的準(zhǔn)確度和延遲目標(biāo)的有前途的網(wǎng)絡(luò)體系結(jié)構(gòu)候選者得到排名,從而產(chǎn)生了一些性能最佳的 GPUNET ,可以使用 TensorRT 部署在 NVIDIA GPU 上。
GPUNet 模型體系結(jié)構(gòu)
GPUNet 模型架構(gòu)是一個(gè)八級(jí)架構(gòu),使用 EfficientNet-V2 作為基線架構(gòu)。
搜索空間定義包括搜索以下變量:
操作類(lèi)型
跨步數(shù)
內(nèi)核大小
層數(shù)
激活函數(shù)
IRB 擴(kuò)展比
輸出通道濾波器
擠壓激勵(lì)( SE )
表 1 顯示了搜索空間中每個(gè)變量的值范圍。
前兩個(gè)階段使用卷積搜索磁頭配置。受 EfficientNet-V2 的啟發(fā),第二級(jí)和第三級(jí)使用融合 IRB 。然而,融合的 IRB 會(huì)導(dǎo)致更高的延遲,因此在第 4 至 7 階段,這些被 IRB 取代。
專(zhuān)欄層顯示階段中的層范圍。例如,階段 4 中的[1 , 10]表示該階段可以具有 1 到 10 個(gè) IRB 。專(zhuān)欄過(guò)濾器顯示階段中各層的輸出通道濾波器范圍。該搜索空間還調(diào)整 IRB /融合 IRB 內(nèi)部的擴(kuò)展比( ER )、激活類(lèi)型、內(nèi)核大小和壓縮激勵(lì)( SE )層。
最后,在步驟 32 ,從 224 到 512 搜索輸入圖像的尺寸。
來(lái)自搜索空間的每個(gè) GPUNet 候選構(gòu)建被編碼為 41 寬的整數(shù)向量(表 2 )。
在 NAS 搜索結(jié)束時(shí),返回的排序候選是這些性能最佳的編碼的列表,這些編碼又是性能最佳的 GPUNET 。
總結(jié)
鼓勵(lì)所有 ML 從業(yè)人員閱讀 CVPR 2022 GPUNet 研究報(bào)告 ,并在 NVIDIA /深度學(xué)習(xí)示例 GitHub repo ,并在 協(xié)作實(shí)例 在可用云上 GPU 。 GPUNet 推理也可在 PyTorch hub colab 運(yùn)行實(shí)例使用 NGC 集線器上托管的 GPUNet 檢查點(diǎn)。這些檢查點(diǎn)具有不同的準(zhǔn)確性和延遲折衷,可以根據(jù)目標(biāo)應(yīng)用程序的要求應(yīng)用。
關(guān)于作者
Satish Salian 是 NVIDIA 的首席系統(tǒng)軟件工程師,為開(kāi)發(fā)人員利用 NVIDIA GPU 的能力構(gòu)建端到端技術(shù)和解決方案。他目前專(zhuān)注于神經(jīng)架構(gòu)搜索( NAS )方法,為 NVIDIA GPU 搜索高性能神經(jīng)架構(gòu)。
Carl (Izzy) Putterman 最近加入 NVIDIA ,擔(dān)任深度學(xué)習(xí)算法工程師。他畢業(yè)于加利福尼亞大學(xué),伯克利在應(yīng)用數(shù)學(xué)和計(jì)算機(jī)科學(xué)學(xué)士學(xué)位。在 NVIDIA ,他目前致力于時(shí)間序列建模和圖形神經(jīng)網(wǎng)絡(luò),重點(diǎn)是推理。
Linnan Wang 是 NVIDIA 的高級(jí)深度學(xué)習(xí)工程師。 2021 ,他在布朗大學(xué)獲得博士學(xué)位。他的研究主題是神經(jīng)架構(gòu)搜索,他的 NAS 相關(guān)著作已在 ICML 、 NeurIPS 、 ICLR 、 CVPR 、 TPMAI 和 AAAI 上發(fā)表。在 NVIDIA , Lin Nan 繼續(xù)進(jìn)行 NAS 的研發(fā),并將 NAS 優(yōu)化模型交付給 NVIDIA 核心產(chǎn)品。
審核編輯:郭婷
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101039 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5075瀏覽量
103527 -
gpu
+關(guān)注
關(guān)注
28文章
4768瀏覽量
129216
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論