CPU性能過剩提高乏力影響將來行業發展嗎?

雖然CPU仍然在不斷髮展,可是它的性能已經再也不僅僅受限於單個處理器類型或製造工藝上了。和過去相比,CPU性能提高的步伐明顯放緩了,接下來怎麼辦,成爲橫亙在整個行業面前的大問題。算法

自2010年開始,單個CPU內核的處理能力就逐漸中止了增加的腳步,發熱和噪聲等和功耗相關的問題迫使處理器公司另闢蹊徑,再也不汲汲於推高時鐘頻率,轉而在CPU中集成更多內核。多核設計的引入,下一代製造工藝對功耗和性能的改進,推進着處理器性能繼續跟隨着工藝升級的步伐大幅提高。可是如今,製造工藝升級對性能的提高幅度也大不如前,再加上許多公司已經徹底中止了在更先進工藝節點上的努力,CPU性能的提高再次遇到了瓶頸。編程

CPU性能過剩提高乏力影響將來行業發展嗎?CPU性能過剩提高乏力影響將來行業發展嗎?

CPU性能提高乏力的嚴峻現實影響到了多個行業的發展。軟件開發人員已經習慣了並理所固然地預計計算和內存資源將會不斷增加,可是如今,CPU性能提高的速度大不如前了。正是在摩爾定律的加持下,軟件可編程能力和豐富的功能集合才得以出現併發揮重要做用,也給硬件工程師和軟件工程師提供了一種緩衝。緩存

「因爲摩爾定律,計算能力的增加和加速在部分程度上應該歸功於英特爾等公司不斷前進到下一代工藝節點上,從而使得計算引擎自己的優化再也不那麼重要了,」Microchip旗下美高森美戰略營銷高級總監Nilam Ruparelia說。「再加上軟件技術自己的進步,使得軟件生產力提升的速度大大超過了摩爾定律。若是可以讓編程變得輕鬆容易,就會有更多的人從事編程。經過軟件完成各類事務的能力也已經大大加強。」網絡

工藝的升級愈來愈難了。Flex Logix首席執行官Geoff Tate表示,「處理器已經再也不是執行計算任務的惟一解決方案了。看看數據中心吧,以前,這裏面惟一的處理器件只有x86,可是如今,各類配置的FPGA和GPU處理器的身影幾乎無處不在。」架構

這種異構方案在人工智能/機器學習的設計中尤其廣泛。「根據運算的性質,頗有必要將矩陣運算或密集型的線性代數運算放到GPU上執行,」Arteris IP營銷副總裁Kurt Shuler說。 「你能夠設計本身專屬的ASIC進一步優化計算性能,也能夠把一些任務負荷分配到FPGA上。固然,你可能依然須要CPU來管理高級別的數據控制流。總之,處理器件的數量越來愈多,並且變得愈來愈複雜。若是你分析一下數據中心就會發現,它們變得愈來愈異構化了。」併發

之因此出現這種轉變,是由於物理規律的限制。「咱們在RISC和CISC架構上已經作到頭了,」西門子旗下Mentor的Questa產品經理Gordon Allan警告說。「可編程性和傳統邏輯都在演變。如今,各類定製邏輯器件實現通用功能,而後經過智能互聯技術把全部這些功能融合在一塊兒。而以前則是經過軟件將一些微操做組合在一塊兒造成算法。」機器學習

這固然不意味着CPU會消亡或者中止演進,只不過CPU架構師的工做變得更加困難了。「通用CPU架構和微架構依然會繼續發展,並且足以高效地勝任大多數任務,並將設計、生態建設和複雜性維持在可持續的水平上。」Arm嵌入式和汽車業務線戰略副總裁Tim Whitfield表示。工具

影響架構改變的最大障礙之一是可編程能力。「可編程能力的大小,甚至沒有可編程能力也不會對總體效率帶來多大影響,」Mentor的HLS平臺項目主管Russell Klein說。 「傳統的CPU、DSP、多核CPU和FPGA都是可編程的,但具備大相徑庭的效率和不一樣的編程難度。可編程能力在必定程度上下降了效率,可是影響效率的主要因素卻在於並行計算能力。DSP具備執行特定任務的能力,其效率高過CPU。GPU也有一些特定於專業領域的計算單元,並且引入了並行計算。FPGA和ASIC的並行計算能力更爲出色。」oop

硬件器件的異化比較容易,擺脫舊有的軟件範式卻很是艱難。「業界將應用程序進行更改,以適應更普遍的芯片類型。」Allan說。「這致使了新的軟件生態系統和新API的出現,可是它們都只不過是在原有軟件上構建了更多的層而已。這樣作,都是爲了試圖讓一個觸及性能極限和低功耗極限的處理器繼續工做而已。如今咱們須要一些新的方法。」性能

「在這種狀況下,人們應該把注意力從在軟件開發上進行修補轉移到新型硬件上,只有適當的硬件才能實現真正的節能。」Menta業務開發總經理兼副總裁Yoan Dupret說。「這將最終催生具備高度靈活性的異構芯片。Tsugio Makimoto博士以前就曾經預測過,今天咱們正在進入「高度靈活的超級整合」時代。」

CPU的改進

對於那些認爲CPU已經走入死衚衕的說法,我想引用馬克吐溫先生的話回懟一下:「說我已經死了的報道太誇張了。」

CPU還有若干進一步改進的路徑。其中之一就是針對特定功能添加定製指令,不過這也有必定的風險。「若是器件可編程,增長了指令就意味着增長了硬件的複雜性,」GreenWaves Technologies業務開發副總裁Martin Croome警告說。「新的指令單元裏的每個晶體管都有靜態泄露,若是器件有低功耗指標,狀況就糟糕了,新指令單元不只增長成本,也提升了功耗。你必須當心,看看增長新指令是否利大於弊。」

在CPU的發展歷史中,新的指令單元不斷被增長進來。「隨着製造工藝的發展,處理器設計人員可使用的晶體管愈來愈多,因而他們增長了愈來愈多的功能,以加速運行在其上的單線程程序。」Mentor的Klein說道。「他們添加了各類指令單元,好比預測執行、分支預測、寄存器別名等等,可是,添加新指令單元的得失對比使得這條路子越走越窄了。」

在大多數狀況下,能力整合能夠帶來必定的好處。「在處理器件的發展歷史中,咱們屢次看到通用CPU集成各類加速器的情形。」Arm的Whitfield解釋道,「一般,咱們會對架構和微體系架構進行調整,將加速度集成到通用CPU中,這方面的例子包括浮點和加密加速器。」

還有一條路徑:作減法。「咱們認爲RISC-V這種新的方案更好,它能夠幫助咱們在必定程度上克服摩爾定律的放緩,」美高森美的Ruparelia說。「一種全新的、優化的架構給咱們提供了更多的方法,以克服摩爾定律放緩帶來的挑戰。若是硅片工藝的進化中止了,就像發條被擰到了最緊同樣,你必須優化全部的層面-CPU、特定域的架構、工具鏈,甚至編譯器也要針對特定應用進行優化。」

必須根據最終產品的目標設計合適的處理器。「經過比較不一樣處理器的能效,算法能夠在消耗最少能量的狀況下在相對簡單的處理器上執行,」Klein補充說。「更大的處理器能夠更快地完成工做,可是它們的能效低得多。此外,在幾個小型處理器中並行運行某個算法,其能效比在一個大型處理器上運行這個算法高得多。隨着更多簡單內核的引入,電壓和時鐘頻率能夠進一步下降,從而進一步提升能效。」

優化計算引擎

針對特定任務打造內核是一項成功的策略。「可編程DSP是分擔CPU密集計算應用的理想選擇,」Cadence的Tensilica IP產品管理、營銷和業務開發高級主管Lazaar Louis說。「DSP靈活、可編程,並且支持Open VX和Open CL等開放式、跨平臺的加速標準,可輕鬆將應用程序移植到DSP。對於某些常見應用,DSP還能夠與專用硬件加速器配合使用,不只能夠發揮加速器的更高功效,還能夠結合DSP的可編程能力,從而知足應用在產品生命週期中不斷變化的需求。」

許多架構都由於沒有提供強大的軟件開發環境而失敗了。「GPU是一個經過打形成本可持續的獨立開發環境和軟件生態系統而大獲成功的典型例子。」Whitfield說。「有的機器學習算法看起來須要一些專業的加速器,它們將做爲一種粗粒度的加速引擎和通用CPU一塊兒使用。」

GPU的成功之路很是有意思。「GPU是一種針對特定域的架構,剛開始主要面向遊戲,如今又被用到區塊鏈和神經網絡上,」Ruparelia指出。「GPU有一些傳統CPU上很難實現的功能,針對特定域優化的體系結構可以實現更高的單元計算性能和軟件生產力。神經網絡是一個典型的例子,和一個專門針對它設計的可編程平臺相比,若是你在CPU上運行它,將花費10倍之多的運行時間和功耗。」

可是GPU並無針對神經網絡進行專門優化。「在卷積神經網絡中,80%的時間都消耗在卷積運算上,」GreenWaves的Croome說。 「卷積有各類形式,運算量也各有大小。涉及到的概念有填充、膨脹、步幅以及濾波器的大小等。卷積有許多參數,若是你試圖構建一個能夠在硬件中完成全部卷積運算的系統,這個系統將使用大量當前已知的硬件。你必須使用最多見的卷積參數,並構建一些可以保持足夠靈活性的東西。」

那麼,是否是有人能夠爲定製加速器提供完整的軟件開發環境呢?

「咱們正在編寫優化的內核,並給一些矢量化的運算進行了手工編碼,」Croome繼續說道。「咱們使用了標準的向量操做,可是即使如此,你寫代碼時,當涉及到寄存器加載操做時,也須要考慮如何優化編碼,以便編譯器可以以一種特定的方式定位到它。」

這就是加速器的編碼開始變得困難的地方。Synopsys解決方案事業部產品營銷經理Gordon Cooper說:「使用一組GPU或CPU訓練神經網絡,而後在GPU上運行該神經網絡很是容易。人們能夠經過Caffe或TensorFlow作到這一點。可是,當咱們使用專用硬件知足嵌入式系統的要求,好比低功耗、小尺寸時,GPU只能保證性能,卻沒法保證能效。使用異構方案的缺點是,不管是加速器仍是專用處理器,都有各自不一樣的工具鏈或者多個工具鏈,你須要學習並管理好它們,這可不像給GPU編程那麼簡單。」

這是一種微妙的平衡。「使用GPU的優點是很靈活,可是沒法保證功耗和尺寸,另外一方面,沒有編程環境,或者很難使用,同樣會讓你舉步維艱,」Cooper補充道。「在加速器上變成永遠不會像爲CPU編寫代碼那樣簡單。你能夠參照DSP世界的編程進行優化,先用C語言編程,而後優化內部的循環體。這是一種平衡。」

改換硬件

長期以來,FPGA都自我標榜爲可編程的硬件。「硬件RTL工程師能夠將FPGA用做可編程平臺,這沒有任何問題,」Rupatelia說。「可是,當軟件工程師把FPGA做爲一種可編程平臺時,麻煩就來了。這個挑戰已經存在很長時間了。」

今天,FPGA也被嵌入到了ASIC中。「eFPGA IP是異構方案的一種元素,怎麼個用法取決於架構定義和代碼的劃分,」Menta的Dupret說。 「HLS工具能夠爲此提供幫助,但最終的目標是爲異構體系結構自動化地進行代碼劃分。咱們如今尚未實現這個目標,但咱們確信這是行業發展的方向。」

這也極可能成爲物聯網硬件開發的重要一環。「咱們如何確保物聯網設備的靈活性,而且能夠現場升級?」Allan問道。「能夠須要結合使用軟件和智能FPGA技術,它們都是當今CPU解決方案裏的技術。咱們如今談論的是,定義產品時更少依賴硬件/軟件交互,更多依賴編譯好的邏輯器件、內存和可編程器件,以實現產品的靈活性。」

這可能意味着改變對軟件的傳統見解。Ruparelia指出:「當今的FPGA工具鏈依然不支持軟件工程師在不瞭解FPGA的狀況下直接使用它,這方面的進展甚微。不過,如今能夠更加容易地針對特定領域或特定應用進行編程了。咱們正在研究神經網絡上使用的很是具體的中間件,它們抽象出了FPGA的複雜性,並保留了足夠的靈活性,可供上層軟件調用。」

除了處理單元,內存架構也存在進一步改進的壓力。「硬件加速器正在部署更多可用內存,」Shuler說。「芯片到DRAM或HBM2的通訊越少,效率就越高。咱們該怎樣把全部數據都保存在處理單元中,並在處理單元之間交互?處理器單元有時會有本身的暫存存儲器,有時會鏈接到網格里的存儲器中,那樣的話,存儲器就被分割開來,在整個架構中散落地無處不在。」

「咱們結合芯片和處理器開發了多級緩存架構,將內容可尋址內存做爲控制優化的關鍵技術,」Allan解釋道。「而後咱們開始研究一致緩存架構,其中,多個處理器圍繞在共享內存空間周圍,互相協做。如今,咱們在計算器件中引入了神經網絡,內存也是一個關鍵因素。內存技術將繼續演進,咱們會發現新的方案不斷出現。HLS將發展爲容許定製內存架構,以幫助加速特定算法。在這個領域有許多創新,能夠將算法輸入到HLS流中,並使用智能內存技術優化解決方案。」

和通用CPU形態相差最遠的是專用硬件解決方案。「這是一種單線程編程模型,存在實打實的限制,」Klein指出。「將一個算法從CPU上轉移到沒有引入任何並行性的定製硬件上當然也能夠提升效率,可是達不到人們的預期。進一步提高效率的關鍵在於找出並利用算法裏的並行性。」

最終,須要軟件思想的革新,推進設計人員以並行的方式實現各類算法。

相關文章
相關標籤/搜索