「軟體定義晶片」實現高速節能CNN應用

作者 : Illumi Huang,EE Times China

QNAP本身就是軟體定義智慧晶片的一個產物,可以根據上層應用定義的CNN模型的層數、啟動函數類型、卷積核尺寸等,高效率地支援不同的CNN模型...

北京清華大學持續進行「軟體定義晶片」的研究;所謂軟體定義晶片是較大程度用於權衡當代晶片的可程式設計性(programmability)與能效(energy efficiency)這對矛盾體的一類重要方案。北京清華大學教授魏少軍及其團隊從2008年起從事可重構晶片技術研究,提出了軟體定義晶片技術和理論。

魏少軍曾在多次演講中提及:「我覺得AI應該是Architecture Innovation (架構創新),成就『智慧化』晶片;」一方面讓軟體定義晶片「猜對應用場景」,另一方面讓硬體架構、功能在根據軟體即時發生動態變化的同時,仍能確保運算的高能效。

在不久前的第68屆國際固態電路會議(ISSCC)上,魏少軍與另一位教授劉雷波的團隊發表了題為「A 28nm 12.1TOPS/W Dual-Mode CNN Processor Using Effective-Weight-Based Convolution and Error-Compensation-Based Prediction」的學術論文,提出一款卷積神經網路(CNN)加速晶片QNAP。

 

圖1:基於有效權值的卷積。

 

「QNAP本身就是軟體定義智慧晶片的一個產物,可以根據上層應用定義的CNN模型的層數、啟動函數類型、卷積核尺寸等,高效率地支援不同的CNN模型;」魏少軍在接受《EE Times China》採訪時表示,與研究團隊中其他軟體定義的智慧晶片相較,QNAP解決問題的方向有所不同,「可以說是之前軟體定義的智慧晶片進一步發展。」

QNAP採用台積電(TSMC)的28nm製程,「僅消耗1.9mm2的面積就實現了達12.1 TOPS/W的能效,」顯著優於已有結果。總結起來,QNAP所提出的技術和方法,比較現有主流CNN處理器方案,可減少資源開銷、降低功耗、提升能效。

 

圖2:基於誤差補償的預測。

魏少軍表示:「我們團隊設計的這款晶片主要針對資源受限的邊緣裝置,例如手機,都在追求輕薄、便攜與高續航等特點,這也就勢必需要內部硬體模組的面積盡可能小、功耗盡可能低,但硬體模組要完成的工作一點也不能少,甚至需要其處理性能在以上基礎上更高,這也就是我們團隊設計這款晶片的初衷。」

 

圖3:逐層流水結構。

 

魏少軍進一步指出:「QNAP是由我們團隊的博士研究生莫匯宇為主設計的,要解決的是當前主流CNN處理器還不能有效解決的三個問題。」

首先,他表示當前主流CNN處理器處理的模型通常都是量化後的CNN模型(其中使用16位元與8位元寬的CNN模型居多)。大多數CNN處理器主要集中於設計優越的硬體架構、高效的資料流程或者利用CNN模型本身存在的稀疏性,以提高硬體執行CNN模型的性能、能量效率等指標。

然而,當前這些處理器大都忽略了CNN模型的另一個潛在的特性,即CNN模型量化後將產生大量重複的權值,尤其是在低位元寬度量化情況下。在卷積操作中,大量重複權值會在CNN模型計算中造成大量冗餘的乘法操作,這會為相應的硬體設計帶來了除稀疏性外另一種潛在優化可能特性。透過挖掘量化後CNN模型權值大量冗餘的特徵,團隊提出一種能夠顯著減少冗餘權值造成冗餘乘加操作的優化方法,降低硬體功耗,即論文標題中的「Effective-Weight-Based Convolution」(參考圖1)。

第二,ReLU為當前主流CNN模型中廣泛採用的一種啟動函數,其自身特點同樣會為CNN模型硬體加速帶來被優化的可能。根據ReLU啟動函數的特性,卷積結果若為正則啟動值為輸入值,保持不變;而卷積結果若為負,即無論是結果是-∞還是-0,其啟動值一律都輸出0。這意味著如果能夠使用一部分卷積計算結果來判斷結果是否為負,如為負就可以直接省略掉剩餘的卷積計算,從而能提高CNN的運作性能,即對應論文標題中的「Error-Compensation-Based Prediction」(參考圖2)。

第三,在廣泛使用的殘差結構中,由於跳層結構的存在,其晶片外存取記憶體的次數要多於常規的卷積層。而晶片外存取運作無論在延遲還是在功耗開銷方面都遠大於片上常規的乘加操作。所以殘差結構按照傳統CNN處理器執行方法,會帶來更多的功耗和延遲開銷。魏少軍表示:「我們發現,每一層卷積層的計算並不需要全部完成,下一層卷積層就可以開始工作了。也就是說,當前卷積層只需要輸出一部分結果,下一層卷積層就可以使用這結果進行計算了,這為消除或減少需要儲存到晶片外的中間結果帶來的晶片外存取提供了機會。」

團隊針對廣泛使用的殘差結構,提出一種專用的流水結構,減少殘差結構中大量的晶片外記憶體存取操作。「但考慮到流水結構不能同時處理過多的卷積層,故QNAP仍要支持傳統的逐層計算模式。所以,逐層計算模式與流水模式都能在QNAP中得到有效支持,二者互補長短,以期達到最優的CNN執行效率;」論文標題中的「Dual-Mode」展現了這個著力點(參考圖3)。

魏少軍指出,QNAP的功耗在絕對數值上與當前主打低功耗的CNN加速器處於同一水準。而能效方面,QNAP與相關的最佳成果相比,在470 MHz運作頻率與0.9 V的工作電壓下,能效實現了1.77倍到24.20倍的提升,比較的對象包括了2018年、2019年與2020年VLSI與ISSCC上的相關研究成果。

在具體應用上,魏少軍表示QNAP能夠支援當前主流的CNN模型,而當前絕大多數視覺應用,如物體識別,檢測等,都使用了CNN模型。此外由於QNAP集中於CNN模型推理加速,而當前消費性產品中的相關應用都只需要輸出CNN的推理結果、不需要訓練,同時此類產品一般對面積功耗都有嚴格要求,故非常適合QNAP發揮其面積小、性能高、功耗低的優勢。

魏少軍指出,其團隊已經在進一步完善編譯系統中對QNAP技術的支援,預計今明兩年可進行市場推廣,前景可期;「商業化一直是我們團隊所考慮的。我們堅持的理念是,做學術不僅僅只是用來發表高水準文章,也需要將成果落地,做到產學研結合。」

而根據魏少軍的分享,這項從2019年2月開始設計直到2020年7月投片的研究,主要面臨的挑戰是硬體架構的設計;「我們團隊雖然發現了當前CNN模型中存在的可優化點,並提出了相對應的解決方案,但底層硬體結構設計不僅要高效支援此解決方案,也要保持高靈活性。」

他舉例指出,在QNAP中,團隊提出使用有效權值,並採用權值分解的方案來控制有效權值的個數以避免權值數目的不確定性。但由於有效權值在卷積核中是不規律的,硬體架構如何高效支援此種不規律卷積計算而避免使用現有基於稀疏性的CNN處理器中複雜控制邏輯的方案,之前一度成為QNAP實現的一大障礙。

目前QNAP已經充分挖掘了CNN模型中重複權值的特性,然而其中還有一個性質並沒有得到充分利用,即啟動值的冗餘性。此冗餘性主要由於啟動值同樣是採用了量化處理,且因為ReLU啟動函數的存在,啟動值存在大量0值。魏少軍表示,由於時間急迫性,QNAP中並沒有完全解決這個問題,這也是當前團隊將研究和解決的問題;可預見在QNAP基礎上如果能有效解決這個問題,將能更進一步為CNN硬體執行帶來性能與能效提升。

 

圖4:當前主流CNN處理器存在的挑戰。

 

魏少軍總結,前面QNAP解決的三個問題在當前CNN模型中都是普遍存在的,從當前演算法的發展來看,未來一段時間的模型仍然會使用基本的卷積操作進行運算,變化主要集中在CNN網路結構上,故QNAP中的技術對未來一段時間內CNN晶片設計仍將有借鑒意義;「我們團隊接下來會在QNAP基礎上進一步解決QNAP仍未解決的問題,然後推出更優於QNAP的智慧晶片。」

 

圖5:QNAP晶片關鍵規格。

 

本文原刊於EE Times China網站,並同步刊登於《電子工程專輯》雜誌2021年5月號

 

 

加入LINE@,最新消息一手掌握!

發表評論

Array ( [nickname] => Array ( [0] => 鴻賢 ) [first_name] => Array ( [0] => 鴻賢 ) [last_name] => Array ( [0] => 張 ) [description] => Array ( [0] => ) [rich_editing] => Array ( [0] => true ) [syntax_highlighting] => Array ( [0] => true ) [comment_shortcuts] => Array ( [0] => false ) [admin_color] => Array ( [0] => fresh ) [use_ssl] => Array ( [0] => 0 ) [show_admin_bar_front] => Array ( [0] => true ) [locale] => Array ( [0] => ) [wp_5_capabilities] => Array ( [0] => a:2:{s:10:"subscriber";b:1;s:15:"bbp_participant";b:1;} ) [wp_5_user_level] => Array ( [0] => 0 ) [entry_id] => Array ( [0] => 27751 ) [_gform-entry-id] => Array ( [0] => 27751 ) [city] => Array ( [0] => 桃園市龍潭區百年三街37巷2弄2號 ) [country] => Array ( [0] => Taiwan ) [job_function] => Array ( [0] => 企業管理 ) [mobile_number] => Array ( [0] => 0911026431 ) [company_name] => Array ( [0] => 星湛科技有限公司 ) [interests] => Array ( [0] => 物聯網, 人工智慧/雲端運算, 安全監控, 軟體及工具 ) [wp_2_user_level] => Array ( [0] => 0 ) [wp_2_capabilities] => Array ( [0] => s:28:"a:1:{s:10:"subscriber";b:1;}"; ) [wp_3_user_level] => Array ( [0] => 0 ) [wp_3_capabilities] => Array ( [0] => s:28:"a:1:{s:10:"subscriber";b:1;}"; ) [wp_4_user_level] => Array ( [0] => 0 ) [wp_4_capabilities] => Array ( [0] => s:28:"a:1:{s:10:"subscriber";b:1;}"; ) [wp_6_user_level] => Array ( [0] => 0 ) [wp_6_capabilities] => Array ( [0] => s:28:"a:1:{s:10:"subscriber";b:1;}"; ) [session_tokens] => Array ( [0] => a:1:{s:64:"705f0ef69866d56733370c5683b1babc65abb85598fa6cfebf38439aca7e0c56";a:5:{s:5:"faulh";a:1:{s:13:"login_blog_id";i:5;}s:10:"expiration";i:1625046960;s:2:"ip";s:39:"2401:e180:8832:99b5:7593:54d9:2dd5:8dfd";s:2:"ua";s:194:"Mozilla/5.0 (Linux; Android 11; SM-A7050 Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.77 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/320.0.0.34.118;]";s:5:"login";i:1622454960;}} ) [multisite-sso] => Array ( [0] => a:2:{s:4:"hash";s:32:"7f521f8deffb9f7f58b56ac0c3f231c0";s:5:"value";a:2:{s:9:"timestamp";i:1622454960;s:4:"keys";a:5:{i:1;s:600:"zXvz9t1TK5Y2R/SVx5z35SKiE5wdqwn6xWCXdqDgRX/VItB/V+JJZcco6SQ7OXYEyQb90KN3zz27ke4TJQX3oFthdR5iSsXiG2EgDhip+v0QuHQlz+mOiZLuNuoF3Wc9w4B9i+OWPfkPn+fbaLSLZgIuppSCYGMrsihrFzLq5On9yvj+234yXStixq10eRBxJqYMyVueTQZJLin9NInNJ1OSEhI+qtSOuOo6z/jdf6GE4739u8EVCcRqrny2xSpZVXnMDg2WHaxOYV3vTGoqWntfTSY2xobfQKQK9xtDNg6FSBRzsnvlXRtfezpJivaaxg6vQVZ/WH5P67GuoT0uCBMJY47JoVxvUfCEhK4cZ7zCI9rZ8F5PkPej2nQ9Urj9Dslys4J0wy8QNJhWmhDUVl0FZnoQ6glt3m/0ZPvA2obu/DJV6pK4wbFBUNEXO4S4LNxLgNNRsREHBZtm+Zh4wXKhz4wXkcYYm+wBA76zKW65rHRkqOMha+0X09qDzE/HhMaLh3ZNibW7q5wS/T2ZyN1rYgs620xcDJMjjhx4Rbz2YfkW5+jfWKSnYBYf7NDeyb9K/3nLzYhFV3itLJMKUQ==";i:2;s:600:"zXvz9t1TK5Y2R/SVx5z35QXPahmM9c2udo+XvHSZHg7xl3Jh/X8cgQmcjG8NsTz7yQb90KN3zz27ke4TJQX3oFthdR5iSsXiG2EgDhip+v0QuHQlz+mOiZLuNuoF3Wc9w4B9i+OWPfkPn+fbaLSLZgIuppSCYGMrsihrFzLq5On9yvj+234yXStixq10eRBxd/7m9Y1XRFTT4azIKPE2GFOSEhI+qtSOuOo6z/jdf6GE4739u8EVCcRqrny2xSpZVXnMDg2WHaxOYV3vTGoqWntfTSY2xobfQKQK9xtDNg6FSBRzsnvlXRtfezpJivaaxg6vQVZ/WH5P67GuoT0uCBMJY47JoVxvUfCEhK4cZ7zCI9rZ8F5PkPej2nQ9Urj9Dslys4J0wy8QNJhWmhDUVl0FZnoQ6glt3m/0ZPvA2obu/DJV6pK4wbFBUNEXO4S4LNxLgNNRsREHBZtm+Zh4wXKhz4wXkcYYm+wBA76zKW65rHRkqOMha+0X09qDzE/HhMaLh3ZNibW7q5wS/T2ZyN1rYgs620xcDJMjjhx4Rbz2YfkW5+jfWKSnYBYf7NDeyb9K/3nLzYhFV3itLJMKUQ==";i:3;s:600:"zXvz9t1TK5Y2R/SVx5z35ZwwJlkmLproS6SwVnru+m3eNSIXpbbZqsU83aYwweQOyQb90KN3zz27ke4TJQX3oFthdR5iSsXiG2EgDhip+v0QuHQlz+mOiZLuNuoF3Wc9w4B9i+OWPfkPn+fbaLSLZgIuppSCYGMrsihrFzLq5On9yvj+234yXStixq10eRBxuydtIjGXk9ZKpp3eghy+9FOSEhI+qtSOuOo6z/jdf6GE4739u8EVCcRqrny2xSpZVXnMDg2WHaxOYV3vTGoqWntfTSY2xobfQKQK9xtDNg6FSBRzsnvlXRtfezpJivaaxg6vQVZ/WH5P67GuoT0uCBMJY47JoVxvUfCEhK4cZ7zCI9rZ8F5PkPej2nQ9Urj9Dslys4J0wy8QNJhWmhDUVl0FZnoQ6glt3m/0ZPvA2obu/DJV6pK4wbFBUNEXO4S4LNxLgNNRsREHBZtm+Zh4wXKhz4wXkcYYm+wBA76zKW65rHRkqOMha+0X09qDzE/HhMaLh3ZNibW7q5wS/T2ZyN1rYgs620xcDJMjjhx4Rbz2YfkW5+jfWKSnYBYf7NDeyb9K/3nLzYhFV3itLJMKUQ==";i:4;s:600:"zXvz9t1TK5Y2R/SVx5z35XOcfSsWEb/fh+gfvxmFY3O2ND5XFuoL8bob2qb3swBuyQb90KN3zz27ke4TJQX3oFthdR5iSsXiG2EgDhip+v0QuHQlz+mOiZLuNuoF3Wc9w4B9i+OWPfkPn+fbaLSLZgIuppSCYGMrsihrFzLq5On9yvj+234yXStixq10eRBxZsHo6Wzhnr8cJKPqXwxlrFOSEhI+qtSOuOo6z/jdf6GE4739u8EVCcRqrny2xSpZVXnMDg2WHaxOYV3vTGoqWntfTSY2xobfQKQK9xtDNg6FSBRzsnvlXRtfezpJivaaxg6vQVZ/WH5P67GuoT0uCBMJY47JoVxvUfCEhK4cZ7zCI9rZ8F5PkPej2nQ9Urj9Dslys4J0wy8QNJhWmhDUVl0FZnoQ6glt3m/0ZPvA2obu/DJV6pK4wbFBUNEXO4S4LNxLgNNRsREHBZtm+Zh4wXKhz4wXkcYYm+wBA76zKW65rHRkqOMha+0X09qDzE/HhMaLh3ZNibW7q5wS/T2ZyN1rYgs620xcDJMjjhx4Rbz2YfkW5+jfWKSnYBYf7NDeyb9K/3nLzYhFV3itLJMKUQ==";i:6;s:600:"zXvz9t1TK5Y2R/SVx5z35T8CHxc4n4XHcAL6T/dEsd7j7tAjWLn1r97WWcC3V7u4yQb90KN3zz27ke4TJQX3oFthdR5iSsXiG2EgDhip+v0QuHQlz+mOiZLuNuoF3Wc9w4B9i+OWPfkPn+fbaLSLZgIuppSCYGMrsihrFzLq5On9yvj+234yXStixq10eRBxTUm4a9ygZPqRmtkWBT7zflOSEhI+qtSOuOo6z/jdf6GE4739u8EVCcRqrny2xSpZVXnMDg2WHaxOYV3vTGoqWntfTSY2xobfQKQK9xtDNg6FSBRzsnvlXRtfezpJivaaxg6vQVZ/WH5P67GuoT0uCBMJY47JoVxvUfCEhK4cZ7zCI9rZ8F5PkPej2nQ9Urj9Dslys4J0wy8QNJhWmhDUVl0FZnoQ6glt3m/0ZPvA2obu/DJV6pK4wbFBUNEXO4S4LNxLgNNRsREHBZtm+Zh4wXKhz4wXkcYYm+wBA76zKW65rHRkqOMha+0X09qDzE/HhMaLh3ZNibW7q5wS/T2ZyN1rYgs620xcDJMjjhx4Rbz2YfkW5+jfWKSnYBYf7NDeyb9K/3nLzYhFV3itLJMKUQ==";}}} ) [last_login] => Array ( [0] => 1622454971 ) [_gform-update-entry-id] => Array ( [0] => 27752 ) [job_industry] => Array ( [0] => 物聯網, 人工智慧/雲端運算, 安全監控, 軟體及工具 ) [company_size] => Array ( [0] => 少於50名員工 ) [gender] => Array ( [0] => 男 ) [form_count_like284] => Array ( [0] => 1 ) [_gamipress_user-point_points] => Array ( [0] => 100 ) )