在先前的「AI晶片推論性能車拚 Nvidia稱第一」報導中,我們提到MLPerf公佈了AI晶片推論性能測試基準跑分結果,但可能有很多讀者就算看了那些表格仍然一頭霧水,因為有些系統看來相似但是分數卻大不相同,而且也搞不清楚數字高低究竟是代表什麼…

為此筆者請教了以色列AI晶片新創公司Habana Labs的研究科學家Itay Hubara,他非常好心地解釋了MLPerf表格中不同的分組(categories)、賽程(divisions)、模型(models)以及情境(scenarios)所代表的意義;以下與大家分享我的學習心得。

MLPerfSpreadsheet

MLPerf的AI晶片性能跑分列表並不是那麼簡單明瞭容易懂。
(來源:MLPerf)

分組

其中「現貨」(available)意味著該系統目前在市場上已經買得到,其軟體堆疊必須已經完全準備就緒,而且提供跑分結果的公司得讓社群能重現其結果。這意味著不在該公司SDK中的所有程式碼必須要上傳到MLPerf的Github平台。

在「預覽」(preview)分組中的系統,意味著提交分數的公司需要讓該產品在MLPerf下一次(預計是明年夏天)公佈AI晶片推論性能分數時上市,而在這個分組中的公司不需要提供所有的軟體。此外還有「研發與其他」(Research, Development, Other)組別,這意味著此分類中的系統仍在原型階段,還沒有量產計畫,提交分數的單位也不需要分享任何軟體。

賽程

封閉賽程(Closed Division)是要讓各系統能夠直接比較,參與的公司必須要遵守嚴格的規範,包括使用一套標準的預先訓練模型參數(model weights)。開放賽程(Open Division)則被Hubara形容為像是「牛仔世界」(wild west),參與者不需要遵循什麼規則,不過必須透露它們做了那些變更,諸如重新訓練了模型,或者是進行了微調。

參與開放賽程的業者透過讓自家演算法工程師大顯身手來展現優勢,舉例來說,Habana Labs在開放賽程中的分數,其延遲性降低到只有封閉賽程中的四分之一,充分發揮了Goya晶片的性能。不過基於封閉與開放賽程的本質,並不適合將封閉賽程與開放賽程中的分數拿來比較,或是將開放賽程中的分數各自比較。

模型

MobileNet-v1與ResNet-50 v1.5都是以ImageNet資料集進行推論的影像分類模型,MobileNet是手機用的輕量化網路,ResNet-50相較之下屬於較重量級、適合較大的加速器使用。

MobileNet-v1與ResNet-34的SSD演算法都是用來進行物體偵測,SSD的全名為單次多框偵測器(Single Shot MultiBox Detector),是一種用來偵測個別物體以進行某個圖片中的物體分類之演算法,必須搭配MobileNet或ResNet的分類演算法使用。

MobileNet是較輕量化的模型,適用於較低解析度的圖片(300 x 300或0.09 Mpix);ResNet-34模型則能支援較高解析度的影像(1,200 x 1,200或1.44 Mpix)。這些模型都是使用COCO (Common Objects in Context)資料集進行推論。

GNMT則是唯一並非以卷積神經網路或是影像處理為基礎的測試基準,它是用於語言翻譯(在這裡的案例是德文翻英文)的遞歸神經網路(recurrent neural network)。

情境

總共有4種不同的情境,兩種是邊緣的推論,另外兩種是資料中心的推論。其中單資料流(Single Stream)只是量測推論單一影像──樣本總數(batch size)為1──所需時間,單位是毫秒(milliseconds.);在這個項目中,分數越低越好,而這種情境可能是相對應於一次執行單一影像推論的手機。

多資料流(Multi-Stream)則是量測某系統一次能處理多少影像資料流(樣本總數大於1),依據不同模型,延遲在50~100毫秒之間。在這個項目中,分數越高越好;表現優良的系統最後可能是出現在配備很多個對著不同方向攝影鏡頭的自動駕駛車輛,或者是保全攝影機系統。

在伺服器(Server)情境中,多個使用者會在隨機時間內發送請求給系統,量測指標是該系統能在特定的延遲時間內支援多少請求;這裡的資料流不像是多資料流情境那樣持續,困難度會更高,因為樣本數可能是動態的。數字越高代表成績越好。

離線(Offline)情境可能是對一本相簿中的影像之批次處理,其中的資料能以任何順序進行處理。這個情境沒有延遲的限制,以每秒多少影像(images per second)為單位量測其處理量,數字越高代表成績越好。

加速器數量(Number of accelerators)

這個量測基準是比較系統而非晶片;有些系統可能有一個主晶片一個加速器晶片,而最大規模的系統擁有128顆Google的張量處理器(TPU)加速器晶片。這裡的分數並未針對每個加速器正規化(normalised),因為主晶片也扮演要角,它們與加速器的數量大致呈現線性關係。

為何有些分數是空白的?

MLPerf並未要求參與者提供每一種情境或模型的測試結果,用於終端平台的元件可能只會選擇提交單一資料流與多資料流情境的分數;資料中心平台就可能會選擇只提供伺服器與離線情境的測試分數。而顯然每一家公司都選擇提交它們認為最能表現其系統優點的分數。

還有另一個可能因素是,如Hubara舉例解釋,Habana的分數欄位空白,是因為該公司來不及在這一次成績公布的截稿收件時間內提交測試分數。此外在GNMT翻譯模型項目提交分數的公司也比較少,因為這個模型現在被廣泛認為已經過時,很多公司偏好花時間佈署較新的演算法,例如BERT。

僅供參考

而整體說來,MLPerf的分數是量測純粹性能,但為某個實際應用選擇一套系統當然還需要考量許多其他因素。例如在這一系列成績單中,並沒有關於功耗的量測(據說下一個版本的測試基準會將這個項目囊括其中)。

成本也是一個未包括的指標;而顯然如果一套系統只有一顆加速器晶片,另外一套則有128顆加速器晶片,兩者在價格上一定也會不同。MLPerf的表格也列出了每一套系統使用的主處理器,這可能會帶來額外的成本,而且也可能會需要昂貴的水冷系統。

至於系統主機的外觀(Form Factor)──例如行動/手持式(mobile/handheld)、桌上型/工作站(desktop/workstation)、伺服器(server)、邊緣/嵌入式(edge/embedded)則是由系統製造商自行提供的指標,並非每一個分組中嚴格限制的基準參數。

在MLPerf表格右側,點擊每一個系統的「細節」(details)連結,則能看到該系統更詳細的軟硬體規格,值得參考。在其詳細規格中的某些部份是必填資訊,有些不是;但從中可以得知像是散熱等系統要求。

編譯:Judith Cheng

(參考原文: Understanding MLPerf Benchmark Scores,by Sally Ward-Foxton)