AI演算法的算力需求與AI晶片算力增長之間的差距有多大?從增長的速度看,AI演算法的算力需求每年是指數級的增長,但AI晶片的算力只能以倍數增長,且難度越來越大。這是業界都非常關注的問題,本月的CCF-GAIR 2020峰會AI晶片專場上,六位大咖都提到了這一挑戰。
因此,無論是從AI晶片長遠的發展還是促進AI晶片更好落地的角度,業界都期待有一個公認的AI晶片Benchmark(基準測試)。2018年,MLPerf組織成立,為了讓MLPerf能夠像成熟的CPU、GPU的Benchmark一樣,MLPerf囊括該行業中絕大部分知名企業和機構。推出兩年的MLPerf還不夠成熟,但包括英偉達、谷歌、阿里巴巴在內的大公司都樂於用最新版本的MLPerf基準測試成績強調其產品實力。
不過,地平線聯合創始人兼技術副總裁黃暢在中國計算機學會(CCF)主辦,雷鋒網、香港中文大學(深圳)聯合承辦,鵬城實驗室、深圳市人工智慧與機器人研究院協辦的CCF-GAIR 2020 峰會AI晶片專場的演講中指出,MLPerf有模型更新慢、模型少、模型選擇受各種因素影響的挑戰。他也首次提出了新的方法用以評估晶片的AI真實效能——MAPS (Mean Accuracy-guaranteed Processing Speed,在精度有保障範圍內的平均處理速度)。
MAPS是評估AI晶片真實效能更好的方法嗎?
地平線聯合創始人兼技術副總裁黃暢
MLPerf發展的三大挑戰
每類極具代表性的處理器都有常用的效能評估指標,比如CPU用MIPS,GPU用Texture和Pixel評估效能,高效能計算用浮點運算速度TFLOPS(Floating-point operations per second, 每秒浮點運算次數)。進入AI晶片時代,AI 晶片推理通常不需要浮點計算,而需要大量的整型運算,這樣峰值算力TOPS(Tera operations per second,每秒萬億運算次數)成為了AI晶片效能指標最直觀的引數。
但問題在於,峰值算力體現的是晶片效能的理論上限,實際使用過程中真正有效的算力與峰值算力差別很大。這是因為,晶片的計算架構、頻寬、AI演算法、資料重用性等問題都會導致晶片算力的有效利用率與峰值效能之間的巨大差距,有時差別可能高達幾十倍。
但有一個業界公認的評價標準又意義重大。黃暢接受雷鋒網採訪時表示:“業界有一個AI晶片的評價標準最重要的意義在於讓行業形成一種合力,讓大家都有一個相對清晰的目標,容易形成共識、形成協力,健康地推動整個行業向前發展。”
MLPerf在2018年順勢推出了MLPerf Inference v0.5,獲得全球晶片公司和知名機構的支援, MLPef最新成績公佈總能引發不少關注。作為還不夠成熟的Benchmark,MLPerf當然也有很多挑戰。
黃暢指出,MLPerf的思路是選定模型比誰快。選定的模型要求不管做量化或其他操作,它和原始浮點的精度差異不能超過1%。也就是說,MLPerf是在保證精度相同的條件下比誰的速度快,模型的選定是一個值得研究的課題。不容忽視的是,提交者與組織博弈又帶來了模型選擇受各種因素影響的問題。
與此同時, MLPerf模型更新慢(影象分類模型在MLPerf Inference v0.5和MLPerf Inference v0.7沒有更新)、模型少(僅有兩個影象分類模型,只覆蓋了70%和76%兩個精度)。學術界影象分類,ImageNet的主流精度範圍在[75%,80%]的問題,這讓MLPerf無法及時反映演算法效率提升、難以反映各種精度下的速度全貌。
“要達成一個所謂的標準是極其困難的,因為大家雖然目標大致相同,但出發點不一樣。“黃暢同時指出,評估晶片的AI效能,應該換一個角度,可以從準、快、省這三個維度。”
“準”是反應實際任務上的演算法精度,在不同的任務中,學術界已經有比較多共識。“快”通常有兩個維度,延遲和吞吐率。“省”就是成本和功耗。黃暢認為,對於AI晶片的效能評估來講,準和快是兩個非常重要的因素。同一個晶片下,兩個因素負相關,快了就會犧牲準確性,準了往往需要付出速度的代價,因此需要放在一起折中考量。
地平線的MAPS如何?
AI晶片效能的評估需要快、準、省,在這三個維度下地平線提出的新的AI晶片效能評估的方法稱為MAPS(Mean Accuracy-guaranteed processing speed),意思是在精度有保障的範圍評測晶片的平均效能,得到一個全面、完整、客觀、真實的評估。
黃暢表示,MAPS對行業有六個創新之處:
第一,視覺化晶片的Benchmark,可以透過視覺化的圖形更精確的表達,在資料之間如何做折中。
第二,關注真實、面向結果的需求,只在乎精度和速度,不在乎中間任何關於演算法的取捨和選擇。
第三,統一表示精度與速度,關注主流精度區間。
第四,隱藏與最終結果無關的中間變數,包括模型、輸入大小、批處理的量是多大。
第五,是一種對Benchmark的解釋,在算力之外幫助使用者理解晶片到底能跑多快以及多好。
第六,留有最大的空間引導客戶使用最優的方式使用這顆晶片,這一點非常重要,能夠指導客戶使用這個晶片的最佳實踐。
MAPS的計算為公式為:MAPS = 所圍面積 /(最高精度-最低精度),含義為在 ImageNet 的主流精度範圍(75%~80%)下,速度最快的模型所代表的點(由精度和幀率確定)所圍多邊形面積大小即為晶片處理ImageNet AI任務的能力大小。
其代表的真實的AI效能也有對應的公式:MAPS/Watt &MAPS;/$=TOPS/ Watt &TOPS;/$ X Utilization X MAPS/TOPS
這三個要素中,第一個TOPS/Watt、TOPS/$是傳統的方式。中間的要素有效利用率,是根據架構特點,利用編譯器等去統化地解決極其複雜的帶約束的離散最佳化問題,得到一個演算法在晶片上執行的實際的利用率,實際是軟硬體計算架構的最佳化目標。第三個要素是AI演算法效率,指的是每消耗一個TOPS算力,帶來的實際AI演算法效能,體現的是AI演算法效率的持續提升,過去幾年AI演算法效率提升非常快。如2014年提出的VGG19計算量是2019年提出的EfficientNet B0的100倍,同時EfficientNet B0精度更高,相對於演算法效率每9個月提升一倍,大幅快於18個月翻倍的摩爾定律。
黃暢表示,“三個要素中,第一個反映的是舊摩爾定律,第三個反映的是新摩爾定律。前段時間Open AI Lab以及其他的研究機構都發現,過去幾年演算法提升效率非常快,幾個月的時間效率就會翻倍。如果我們關注這樣的效率的提升,應該把握這三要素中最主要、變化最快的要素,並且根據這個要素去指導處理器架構的設計,進行關鍵的取捨決策。”
地平線為什麼要提出MAPS這樣的評價指標?黃暢在分享中也提到,“這個概念其實受到了EdgeTPU的啟發。它在設計之初,並沒有充分考慮高效演算法的發展趨勢。所以當EfficientNet演算法出現的時候,並不能很好適配到EdgeTPU上。但谷歌將該演算法針對EdgeTPU的特點進行了專門的最佳化,得到速度更快、精度損失非常少的一組模型EfficientNet-EdgeTPU。這一點和我們自己的摸索和實踐是一致的——演算法的選擇只是手段,真正的目的應該是其在具體晶片執行所表現出來速度和精度。”
以ImageNet影象分類任務為例,EdgeTPU執行不同模型的精度和幀率
如何理解?為以ImageNet影象分類任務為例,如上圖所示,橫軸表示晶片的處理速度,衡量方式是每秒幀率(FPS),縱軸表示晶片的處理精度,度量方法是Top1分類精度。因為在邊緣應用領域,過高(會過慢)或者過低(會不準)的處理精度都不具備實際的應用價值。不失一般性,MAPS評估方式選擇75%~80.5%為精度保障範圍。
針對某晶片,將某演算法模型執行得到的處理速度和精度用一個點表示在該圖上,嘗試多種不同的選擇,並將精度保障範圍內位於最右側(即速度最快)的若干點和上、下、左邊界所圍多邊形面積大小,除以該多邊形的高,即MAPS=所圍多邊形面積 /(最高精度-最低精度) ,得到該晶片的MAPS值單位仍是FPS,表示在此精度保障範圍內的平均處理速度。
圖為MAPS評估方式下主流晶片測試結果,右一折線為地平線最新一代晶片測試結果
黃暢說:“可以看出,同樣標稱4TOPS算力的晶片的表現差異還是很大的,在MAPS上甚至有將近2倍的差異,地平線即將推出的新一代晶片和11.4TOPS峰值算力的晶片相比,雖然在精度較高的區間上稍有劣勢,但是在追求速度和延遲低的場景中會有明顯的優勢。”
他同時表示,“這只是一組基於EfficientNet模型評估的結果,相信隨著演算法不斷演進,這些曲線會不斷地發生變化。我們也希望有更多的軟體、演算法工作者,在MAPS評估方法的啟發下,秉承開放包容的態度,在自己最擅長的能力上持續推動AI晶片能力的發揮。”
雷鋒網小結
AI晶片當下最為關鍵正是滿足應用的需求實現大規模落地,在這個過程中,如果能夠有一個標準,既能降低AI晶片的選擇難度,也能讓業界達成共識朝著相同的目標努力。但正如黃暢接受採訪時所說:“達成所謂的標準極其困難,要達成共識最根本的還是用商業化落地的結果,最終迴歸價值創造本身。”
為此,地平線提出了MAPS評估方法,其重要核心在於放下成見,包容所有的選擇。MAPS能否獲得業界的廣泛認可仍有待觀察。
最後,還有文章開頭提到的AI晶片效能與AI演算法需求之間的尖銳矛盾,有人提出了開放硬體的解決方法。對此,黃暢表示:“無論是我還是地平線,我們都相信開放是一個更好的選擇,尤其是把時間軸拉長,把整個價值體系放得更寬,開放一定是更好的選擇。因為沒有什麼比開放更能夠匯聚力量。”
注:文中配圖來自地平線