隨著積體電路技術的不斷髮展,晶片規模越來越大、整合度越來越高。與此同時,在設計和使用晶片時,掌握並管理其功耗也變得愈發重要。
為在設計或使用過程中管理好晶片功耗,杜克大學電子與計算機工程系教授、計算進化智慧實驗室聯合主任陳怡然團隊開發出一種新的人工智慧模型——阿波羅(APOLLO)。該模型在硬體上可進行每秒數十億次計算,理論上能用於預測任何型別計算機處理器(CPU)的功耗,且僅需要極低的額外硬體開銷。它能提高處理器效率併為開發新型微處理器提供幫助,相關效能已在高效能微處理器上得到驗證。
日前,相關成果在第54屆IEEE/ACM年度微體系結構國際研討會(MICRO-54)上釋出,並獲本屆唯一“最佳論文獎”。
功耗管理大難題
在現代計算機處理器中,計算頻率可達每秒數十億次。隨著電晶體密度和時鐘頻率顯著增加,功耗也急劇增加。
功耗越大,晶片產生熱量越快。如果不及時散熱,裝置溫度就會升高,這將導致裝置不能正常工作甚至被損壞。同時晶片內部的功耗與電流需求突然波動,會導致內部電磁問題,從而影響處理器的速度。此外,高功耗產生的熱量也對封裝、散熱系統等提出更高要求。因此,功耗管理已經成為貫穿晶片設計和使用全流程的問題。
“CPU執行中涉及非常多的訊號,其功耗每時每刻都在發生變化。”論文第一作者、陳怡然團隊成員謝知遙告訴《中國科學報》,“因此,研究人員需要對其功耗有非常充分的瞭解,才能設計出效能更好的CPU,讓其發揮最佳功能。”
在設計晶片時,設計工程師們往往依賴行業標準的功耗分析工具。比如,根據單個訊號網路的切換及這些網路驅動的電容性負載進行計算。“人們想了解晶片的功耗,通常的方法是進行模擬。這類方法比較準確,但缺點是計算成本很高。”謝知遙解釋說,“模擬的方法非常多,相關的模擬軟體技術上也很成熟,但它模擬起來很慢,不能滿足人們對掌握晶片即時功耗的需求。”
在實際應用中,CPU需要執行各種不同的程式,每個程式對應的功耗各不相同;即使運行同一個程式,在不同時刻,晶片的功耗也會發生瞬時變化。CPU被設計並製造出來後,如果全新場景的實際功耗比預先設計的高很多,就可能出現問題,但要詳細掌握晶片在不同工況下的即時功耗並非易事。
“過去20多年裡,功耗模型已被反覆研究,但準確、快速、低成本、自動化地進行功耗分析仍然難以實現。”陳怡然告訴《中國科學報》,“由於很多功耗模型是設計師們針對某一款CPU人工除錯而成,造成巨大的人力成本。同時,隨著CPU設計日趨複雜,想要人工設計準確的功耗模型變得越來越困難。”
因“簡”而快
“這種方法的核心是個非常簡潔的功耗模型。”謝知遙說,“和以前透過模擬計算的方式不同,我們這個模型並非進行準確的模擬,而是進行快速的估算。”
處理器工作時,晶片內部涉及數百萬個關鍵訊號,該模型透過人工智慧技術,自動選取極少量(約100個)與功耗最相關的CPU訊號輸入,然後建立一個快速的線性模型,用於對每個週期的功耗進行預測或監測。
“這100個典型訊號可以形成一個‘輕量級’、非常簡潔的功耗模型。”謝知遙強調說,“而且,訊號選取(不是隨機抽取)由人工智慧自動完成,它擺脫了對工程師的依賴,從而讓模型的計算速度大大提升。”
CPU在執行的時候,人們會對功耗進行控制,如果功耗過高,就必須想辦法將它降下來。事實上,工程師們也積累了不少辦法,可以降低功耗,但所有這些需要一個前提,即人們能夠快速且準確地掌握晶片功耗的即時變化。
遺憾的是,在計算功耗時,工程師們常面臨一個無法跨越的時間“視窗”。比如,之前功耗模型的計算速度可能是每毫秒進行一次——人們只能估算1毫秒的功耗平均值。
除訊號選取和模型訓練是自動完成之外,阿波羅的訓練資料也透過演算法自動生成,這讓其因“簡”而快成為可能。
論文表明,阿波羅可以在幾分鐘內獲得幾千萬時鐘週期的功耗,而傳統基於emulator的工業界方法需要長達兩週時間。在準確率方面,阿波羅也可以達到90%~95%。另外,阿波羅的功耗分析可以精確到每個時鐘週期,之前任何方法在這種速度下都無法獲得如此高解析度的功耗分析。
“每毫秒計算一次的時間解析度遠遠不夠,因為在1毫秒之內,有可能其功耗前半程很低,後半程很高,雖然我們計算出了功耗數值,但它並不能反映處理器的真實工作狀態。”謝知遙補充說,“我們的模型可以控制在0.3納秒(0.000001 毫秒),即每0.3納秒就可計算一次實時功耗值。”
離應用已經很近
因為以前無法瞭解處理器的即時功耗,工程師們在進行晶片設計時,為避免應用中功耗波動帶來的影響,往往會為功耗設計一定的餘量。
現在,阿波羅可以在極短時間內,對晶片內部的即時功耗變化進行反饋。即使晶片內部由於複雜的互動出現了電壓的快速波動,工程師們也能及時採取措施,對CPU功耗和溫度進行管理,從而發揮CPU的最佳效能,並保障其執行穩定。
“因為阿波羅非常簡潔,它的成本和麵積都很小(約佔用CPU晶片0.2%的面積),所以可以將它做成硬體,整合進晶片內部。”謝知遙說,“這樣,在使用過程中,一旦監測到處理器功耗的異常變化,我們就可以讓它採取一些自我調節措施,把功耗降下來。”
如果在設計晶片時,加入這樣的功耗管理模組,不但效能可以得到提升,其執行的穩定性也能得到保證。
在該項研究中,ARM公司提供了很多幫助,目前這一模型已經在ARM的多款高效能商業處理器上進行過驗證,顯示出較領先的晶片效能。
“這不是一項純理論研究,而是具備非常強的工程性研究特點,或者說是一項能應用在產品裡的研究。”陳怡然說,“在商業化應用之前,該模型可能還需要在更多的平臺上進行測試和綜合評估。至於它能不能最終落地、什麼時間能成為產品,會受到多種因素影響,還需要時間來證明。”
記者 張雙虎
來源: 中國科學報