隨著人工智能的爆炸式增長,人們越來越關注能夠提供人工智能所需性能的新型專業推理引擎。因此,在過去六個月中,我們看到了一系列神經推理硬件公告,所有這些都承諾提供比市場上任何其他產品更好的加速。然而,挑戰在于沒有人真正知道如何衡量一個與另一個。這是一項新技術,就像任何新技術一樣,我們需要指標,我們需要真正重要的指標。
一切都與吞吐量有關
當推理引擎的性能出現時,供應商會拋出諸如 TOPS(Tera-Operations/Second)性能和 TOPS/Watt 之類的基準。研究這些的系統/芯片設計人員很快意識到這些數字通常毫無意義。真正重要的是推理引擎可以為模型、圖像大小、批量大小和過程以及 PVT(過程/電壓/溫度)條件提供多少吞吐量。這是衡量其性能表現的第一個衡量標準,但令人驚訝的是,很少有供應商提供它。
TOPS 的最大問題是,當一家公司說他們的引擎執行 X TOPS 時,他們通常會引用這一點而沒有說明條件是什么。在不知道這些信息的情況下,他們錯誤地認為 X TOPS 意味著它可以執行 X 萬億次操作。實際上,報價 130 TOPS 的公司可能僅提供 27 TOPS 的可用吞吐量。
另一個正在使用但不太常用的基準是 ResNet-50。這個基準的問題是大多數引用它的公司都沒有給出批量大小。如果他們不這樣做,芯片設計人員可以假設這將是一個大批量,以最大限度地提高他們的硬件利用率。這使得 ResNet-50 作為基準不是很有幫助。相比之下,例如 YOLOv3 需要 100 倍以上的操作來處理 2 兆像素的圖像。在“真實世界”模型中,硬件利用率將面臨更大挑戰。
如何正確測量神經推理引擎
在評估神經推理引擎時,需要注意幾個關鍵事項。以下是最重要的考慮因素以及它們為何真正重要的原因。
定義什么是操作:一些供應商將乘法(通常為 INT 8 乘以 INT 8)計為一次操作,將累加(加法,通常為 INT 32)計為一次操作。因此,一次乘法累加等于 2 次操作。但是,一些供應商在其 TOPS 規范中包含其他類型的操作,因此必須在開始時進行澄清。
詢問 操作條件是什么: 如果供應商提供 TOPS 而不提供條件,他們通常使用室溫、標稱電壓和典型工藝。通常他們會提到他們所指的工藝節點,但不同供應商的運行速度不同,大多數工藝提供2、3或更多的標稱電壓。由于性能是頻率的函數,而頻率是電壓的函數,因此芯片設計人員在 0.9V 時可以獲得比在 0.6V 時高兩倍以上的性能。頻率因條件/假設而異。有關這方面的更多信息,請參閱此應用說明。
看看批量大小:即使供應商提供最壞情況的 TOPS,芯片設計人員也需要弄清楚所有這些操作是否真的有助于計算他們的神經網絡模型。實際上,實際利用率可能非常低,因為沒有推理引擎始終 100% 地使用所有 MAC。這就是批量大小很重要的原因。批處理是為給定層加載權重并同時處理多個數據集。這樣做的原因是為了提高吞吐量,但放棄的是更長的延遲。ResNet-50 擁有超過 2000 萬個權重;YOLOv3 擁有超過 6000 萬個權重;并且必須為每個圖像獲取每個權重并將其加載到 MAC 結構中。權重太多,無法讓它們都駐留在 MAC 結構中。
找出你的 MAC 利用率:并非所有神經網絡的行為都相同。您需要以您需要的批量大小找出您想要部署的神經網絡模型的神經推理引擎的實際 MAC 利用率。
深入TOPS
如果您是一名正在研究神經推理引擎的設計師,希望這篇文章能夠闡明要尋找的內容。請記住——重要的是吞吐量。重要的是不要陷入諸如 TOPS 和 ResNet-50 之類的毫無意義的基準測試中,除非您知道圍繞這些問題要問的問題。首先提出以下問題:在批量大小 = A 和 XYZ PVT 條件下,可以為特定模型(例如 YOLOv3)處理多少圖像/秒。一旦您開始指定條件和假設,您將開始了解任何神經推理在現實世界中的表現如何。歸根結底,這才是最重要的。
審核編輯:郭婷
-
芯片
+關注
關注
456文章
50965瀏覽量
424829 -
神經網絡
+關注
關注
42文章
4774瀏覽量
100903 -
人工智能
+關注
關注
1792文章
47442瀏覽量
238994
發布評論請先 登錄
相關推薦
評論