如果盤點近兩年的行業熱詞和社會熱詞排行榜,“晶片”一定榜上有名。
隨著 AI 技術在各行各業的廣泛實踐,應用層對深度學習模型的通用性和複雜性要求越來越高。與之相應,深度學習對晶片算力的要求隨之增加。資訊時代,處處都需要晶片,但是晶片卻屬於稀缺資源。
業內的解決辦法有兩種,一種是定製晶片,一種是針對模型進行修改。透過使用小模型或者壓縮模型,降低到算力的要求。兩種方式各有優劣,定製晶片效能強悍但成本、週期、風險都很大;小模型或者壓縮模型成本較低、週期較短,但是會導致準確度下降,很難在高精度和高效能之間取得較好的平衡。
現有 AI 計算中的過多的冗餘計算和執行引擎的能力有限,制約了對晶片效能的挖掘。在晶片資源供需不平衡的情況下,目前主流的做法是攻堅生產力的難題。
也有技術團隊另闢蹊徑。一家叫做 CoCoPIE 的 AI 公司,宣佈可以透過壓縮和編譯協同設計技術,從軟體層面挖掘現有晶片算力,有望讓現有晶片效能成倍提升。於是我們找到了 CoCoPIE 公司負責人李曉峰。據他介紹,目前 CoCoPIE 已經搭建了 CoCo-Gen 和 CoCo-Tune 等產品。這些產品能夠在不額外增加人工智慧專用硬體的情況下,讓現有處理器實時地處理人工智慧應用。
他告訴 InfoQ:“ CoCoPIE 獨有的 AI 軟體技術棧,解決了端側 AI 發展和普及的瓶頸問題,這在業界目前還是獨一無二。測試資料和客戶反饋都表明,與其它方案的比較優勢十分明顯,有較大的機會在端側裝置智慧化的浪潮中勝出。”
繞過硬體瓶頸,成倍提升晶片算力,軟體層面提升晶片效能是否可行?為了進一步瞭解 CoCoPIE 採用的技術,得到這個問題的答案,InfoQ 日前採訪了李曉峰。
從軟體層面榨出晶片算力
Q:透過最佳化壓縮和編譯協同設計,解決效能問題,具體的技術實現和學術論文支援是什麼?
李曉峰:CoCoPIE 的技術核心是創始團隊中的三位教授,他們都是天分很高又異常勤奮的人,在各自的領域都是佼佼者。其中王言治教授側重 AI 模型演算法,任彬教授側重 AI 模型編譯,慎熙鵬教授側重 AI 的系統引擎。這幾個研究領域在技術上是一個很好的互補,構成了 AI 計算最佳化技術的鐵三角,相互不可或缺,共同打造公司的核心競爭力,也算是一種天作之合。
先介紹一下 AI 模型最佳化執行的基本技術。一個 AI 任務在裝置上進行執行,實際上就是把 AI 模型在對映為晶片指令序列的過程。壓縮和編譯是執行的兩個關鍵步驟。先透過權重剪枝、權值量化的方式對模型進行結構層面的壓縮最佳化,減少模型本身的複雜度。再針對壓縮後的模型最佳化編譯,生成執行程式碼。這樣一方面 AI 任務的執行效率更高,另一方面可以充分利用晶片能力。
但是壓縮和編譯這兩步,目前在業內並沒有做得非常好的。現有的技術要麼只能壓縮,要麼只能編譯,或者雖然兩者都有,但它們在設計上相互隔離,沒有很好的協同設計,所以很難達到既保證推理精度又保證執行效率的效果。
CoCoPIE 技術的核心在於壓縮和編譯兩個步驟的“協同設計”,即在設計壓縮的時候考慮編譯器及硬體的偏好從而選擇壓縮的方式,在設計編譯器的時候利用壓縮模型的特點來設計相應的編譯最佳化方法。對應壓縮和編譯兩個步驟,我們為 CoCoPIE 框架設計了兩個元件:CoCo-Gen 和 CoCo-Tune。CoCo-Gen 透過將基於模式的神經網路剪枝與基於模式的程式碼生成相協同,生成高效的執行程式碼;CoCo-Tune 則能夠顯著縮短 DNN 模型壓縮及訓練的過程。
CoCoPIE 的技術是通用的,可廣泛地應用於各種 CPU、GPU、DSP 及 AI 專用晶片,如 NPU、APU、TPU 等。
CoCoPIE 在相關領域發表了大量的頂級國際會議論文,從上層 AI 應用最佳化技術,AI 模型設計技術,到編譯器最佳化技術,底層硬體相關最佳化技術。特別是 CoCoPIE 的技術介紹文章發表在今年 6 月份的 Communications of ACM 上,這是美國計算機學會的旗艦刊物,與今年的圖靈獎同期釋出,這說明學術界對 CoCoPIE 的工作的高度認可。
Q:目前的核心產品 CoCo-Gen 和 CoCo-Tune 可以單獨使用嗎?
李曉峰:這兩個產品提供了我們 AI 模型最佳化的關鍵技術,CoCo-Gen 透過將基於模式的神經網路剪枝與基於模式的程式碼生成相協同,生成高效的執行程式碼;CoCo-Tune 則能夠顯著縮短 DNN 模型壓縮及訓練的過程。
CoCo-Gen 和 CoCo-Tune 可以單獨使用。它們構成了 CoCoPIE 工具鏈的核心,所以優先推出。作為連線上層 AI 任務和下層硬體的橋樑,CoCoPIE 的產品體系會不斷增添新成員。
Q:從軟體層面解決晶片荒問題,行業內是否有類似的軟體技術?
李曉峰:目前的端側 AI 技術棧,只有 CoCoPIE 的最佳化技術可以在主流晶片上達到或超過 AI 專用晶片的效能,這是透過大量實測驗證得到的結論。目前已知的技術,要麼側重壓縮,要麼側重編譯,沒有見到二者協同設計的技術,這是 CoCoPIE 的專利技術。
因為雖然當前主流晶片已經具有很好的潛力,但要發揮它們的這個潛力,必須透過壓縮和編譯的協同設計,透過精巧的演算法,把 AI 任務轉換為合適的向量計算,並很好地控制總體計算量。這個正是 CoCoPIE 的技術關鍵所在。
Q:尺有所短、寸有所長,這種技術當下的優勢和侷限是什麼?
李曉峰:CoCoPIE 的優勢在於,一方面是使得大量原來在端側裝置上無法正常執行的 AI 任務也可以執行,另一方面原來在端側必須透過專用 AI 晶片才能執行的 AI 任務,現在透過主流晶片也可以執行。
AI 任務的執行總是會受到晶片算力的制約,CoCoPIE 技術的能力總有自己的侷限,解放出來的 AI 算力也不是無限的。另外,CoCoPIE 技術目前側重的是 AI 推理任務,至於專門的 AI 訓練任務的加速不是我們的重點。
Q:CoCoPIE 的技術能夠讓晶片算力提高 3-4 倍,讓晶片效能最高可提升 5-10 倍,衡量標準是什麼?對於不同晶片都能實現這種水平嗎?
李曉峰:這些資料是實測出來,通過了同行評審,也通過了客戶的認定。也就是說,在技術上有理論支撐,在實踐上有產品落地。
例如,用通用晶片和谷歌 TPU-V2 的對比:使用 CoCoPIE,VGG-16 神經網路在移動裝置 Samsung Galaxy S10 上比在 TPU-V2 上效能提升了近 18 倍,ResNet-50 則取得了 4.7 倍的效能提升。
在同樣的 Samsung Galaxy S10 平臺上,執行行為識別的 C3D 和 S3D 兩個任務,CoCoPIE 的速度比 Pytorch Mobile 分別提高了 17 倍和 22 倍。執行 MobileNetV3,CoCoPIE 的速度比 TensorFlow Lite 和 Pytorch Mobile 分別提升了近 3 倍和 4 倍。
另外,對功耗測試(Qualcomm Trepn power profiler)的結果顯示,CoCoPIE 與 TVM 相比,執行時間縮短了 9 倍以上,功率卻僅多消耗了不到 10%。在基於 AQFP 超導的 DNN 推理加速方面的工作中,透過低溫測試驗證,我們的研究在所有硬體裝置中也是迄今為止能量效率最高的。
Q:效能的提升不會憑空得來,這項軟體技術的執行對硬體環境有哪些要求?
李曉峰:是的。CoCoPIE 技術對硬體環境的要求不高,主流晶片都可以滿足,具體來說就是晶片需要有向量計算能力,比如 ARM 的 NEON 指令集,Intel 的 SSE、AVX 指令集,RISC-V 的向量擴充套件,等,都是當前 CPU 普遍存在的,GPU 和 APU/NPU 就更不用說了。當然如果沒有向量計算能力,CoCoPIE 的技術仍然可以發揮作用,但是會受較大限制。
Q:技術實踐過程中遇到的主要挑戰是什麼?
李曉峰:CoCoPIE 的技術在實踐中遇到的主要挑戰是,我們目前的產品體系還不是很完善,而客戶的需求也是多種多樣,具體的服務方式千差萬別,因此目前我們還沒有進行大規模的商業推廣,主要是針對一些關鍵領域、關鍵客戶,比如選擇有代表性的主流晶片提供商、裝置提供商、軟體服務提供商等,按照我們的產品發展策略有選擇地提供服務。我們會透過這個過程,與各種客戶需求進行磨合,不斷探索最佳的產品服務體系。
Q:這項技術目前是否有實際的落地案例?
李曉峰:目前合作客戶已經有十幾個,這些客戶中有多個領域的,比如騰訊、滴滴、某著名晶片平臺提供商、某著名手機廠商、還有美國交通部、全球知名服務提供商 Cognizant 等。
CoCoPIE 不是技術過渡期產品
Q:主流處理器是實時人工智慧的更優解,您認同這個觀點嗎?
李曉峰:是的。對於端側裝置來說,主流處理器是實時人工智慧的更優解。
1、從功能上說,端側裝置資源受限,應用場景千變萬化,而專用的 AI 處理器功能相對固化,應對端側的異常靈活的功能需求有較大的挑戰。主流處理器如果透過軟體技術已經可以處理 AI 問題了,當然就沒有必要再節外生枝。
2、從技術上說,為解決 AI 問題的專用晶片的做法其實都是加大向量計算的處理能力、提高記憶體訪問效率,有的稱為張量計算單元。如前面所說,當前的主流晶片其實都已經有了向量計算單元。這些向量計算單元相比專用張量處理晶片雖然能力可能要弱一些,但執行當前的 AI 任務一般也足夠了,前提是必須有優異的模型壓縮和編譯工具,能夠透過精巧的設計,把 AI 任務轉換為合適的向量計算,並能很好地控制總體計算量。
3、從成本上說,主流處理器大規模量產,價格相對專用晶片要便宜很多,而且供貨渠道的選擇也更多。除了採購 AI 晶片本身的成本,還有一些隱性成本。多一個晶片會造成 PCB 、散熱等的重新設計,封裝也是額外成本。很多裝置比如智慧耳機、微型醫療裝置等對這些因素很敏感。
4、需要強調的是,CoCoPIE 的技術並不排斥專用 AI 晶片。作為 AI 全棧的軟體最佳化技術,CoCoPIE 也支援 AI 處理器,讓 AI 處理器發揮出更大的效能。因此,我們也樂見 AI 處理器在特定的應用領域發揮重要作用。
Q:CoCoPIE 是一個技術過渡期的產品嗎?
李曉峰:恰恰相反,因為端側 AI 的泛在普及化才剛剛開始,CoCoPIE 作為該領域先進技術的引領者,我們認為它的未來發展空間非常廣大。我們內部有一整套的產品發展戰略,未來的產品形態會和現在有所不同,但核心技術是一脈相承的。
另外假設未來有朝一日 AI 專用晶片得到普及,也不會對 CoCoPIE 的生存空間帶來不利影響。首先 AI 專用晶片永遠不會比通用晶片更普及,對於通用晶片已經能做好的工作,可能還是會在通用晶片上做更有效、也更靈活;其次, AI 晶片即使發展了,也還是離不開編譯最佳化技術。我們的技術會讓 AI 晶片的能力進一步提升。其實通用晶片也一樣,比如 CPU 或 GPU ,不論多便宜、效能多高,仍然需要高效能的編譯器支援,比如 LLVM 或 NVCC 等。
長期來看,AI 技術棧的發展對 CoCoPIE 軟體技術的需求只會越來越大,就像手機 SoC 晶片隨著時間的發展,功能不是越來越簡單了,而是越來越強大了,8 核手機很常見,對軟體技術的要求也越來越高。事實上,AI 計算對算力的要求遠遠超過 AI 硬體能力的發展速度。據美國 MIT 大學的研究報告,近年來 AI 計算的算力需求發展是每兩年 700 倍,這個發展速度只通過硬體能力的提升是根本無法滿足要求的,必須在軟體技術上有所突破。
Q:您怎麼看待如今熱門的大模型技術?
李曉峰:大模型在訓練資料足夠多的情況下,往往能取得更高的 AI 能力。這個是人類對未知世界探索的必經之路。這個就像在高能物理學界,人們為了做出新的發現,不斷建設能量更高的粒子對撞機。但是大模型這個事情也需要從兩方面看,如果一味地追求更大的模型,所需要的訓練資料量、訓練時間、算力支援、能量消耗等等都不斷提高,邊際效益會越來越小,這個趨勢顯然不可持續。可能未來只會在個別重大挑戰的工作上持續這種增大模型的做法。
這裡給一個關於大模型收益方面的數字,ResNet 是 2015 年釋出的一個著名計算機視覺模型。該模型的改進版本稱為 ResNeXt,於 2017 年問世。與 ResNet 相比,ResNeXt 所需的計算資源要多 35%(以總浮點運算來衡量),準確度卻只提高了 0.5%。
再給一個關於碳排放方面的數字,據福布斯雜誌去年的一篇報道,自從深度學習在 2012 年開始大發展後,產生一流的人工智慧模型所需的計算資源,平均每 3.4 個月翻一番;這意味著,訓練 AI 模型所需的能量從 2012 年到 2018 年就已經增加了 30 萬倍。
如果做一個對比,深度學習的能力即使和一個嬰兒相比,在很多方面還仍有很大差距,更別說與成人大腦相比了。而我們成人的大腦運轉,也只需要 20 瓦左右的能量,這隻能夠給一個燈泡供電。
我們顯然不可能只是透過擴大模型來提高機器的智慧,而學界也在不斷探索新的方法。
Q:可否談談如今正在上浮的基礎軟體行業?簡單聊聊您對晶片行業的判斷?
李曉峰:基礎軟體的重要性越來越大。這有兩方面的原因,一個是近年來技術發展很快,對基礎軟體有實際需求,提出了必要性;另一個是過去已經培養了大量高質量的工程師,提供了可能性。
晶片行業還會繼續蓬勃發展。科技發展趨勢就是不斷地將數字世界滲透到物理世界的各個方面,而數字化的根本體現就是晶片在各種裝置的不斷植入。上一波裝置智慧化的核心手段是在裝置上植入晶片、能跑應用,而這一波智慧化的核心手段則是裝置上能跑深度神經網路,這是浩浩蕩蕩的發展大勢。這也是 CoCoPIE 的根本機會所在。
寫在最後
李曉峰告訴 InfoQ, CoCoPIE 的技術領先優勢至少有幾年的時間,足夠在計算機領域爭得一席之地。CoCoPIE 的技術並非是為了解決晶片荒的問題,而是為了實現 AI 任務的普及化,遇到晶片荒只是恰巧的事情,這算是 CoCoPIE 技術能力的副產品。
在李曉峰看來,面對如今複雜多樣的場景和終端,現有技術水平無法完全發揮主流晶片的能力,所以才有了 CoCoPIE 的發展空間。可以確認的是,CoCoPIE 的發展為將晶片能力“物盡其用”,提供了一種新思路。