采訪音頻
整整50年來,計算機的底層元件都遵從著“摩爾定律”:在價格不變的情況下,集成在芯片上的晶體管數量每隔18到24個月將增加一倍,計算成本呈指數型下降。摩爾定律成就了各種技術變革,例如互聯網、基因組測序等等。
然而現在,摩爾定律的趨勢第一次放緩了。芯片行業進入了一個不確定的時代,在同樣的投入下,收益變得越來越低。我認為有兩個原因。一是芯片制造商面臨的一個經濟問題:相比與芯片體積,大多數人對芯片的價格更敏感,要求芯片要做到經濟實用;二是我所認為的真正原因,隨著晶體管尺寸的不斷縮小,我們遇到了原子極限,先前標準、規則結構的晶體管結構已經無法維系。
在CPU時代,我們一直沿用的范式是在CPU上運行編寫好的程序。這一范式的優點在于整個計算系統所有層級都是確定的,它們有限但功能強大。芯片的原理非常簡單,無非就是開關、邏輯門、二進制系統等等。但是現在,計算需求正變得越來越復雜和艱難,導致計算機結構也越來越復雜,在一塊芯片上集成的電路越來越龐大。
Simon Peyton Jones曾說,計算機軟件和體系架構是人們迄今為止所創造的最令人驚嘆的結構。在計算機體系架構領域,任何一個接口的設計都需要調整芯片底層的架構。做芯片與做軟件差別很大。編寫軟件時的自由度非常高,但在設計硬件時卻會面臨各種各樣的限制:在一塊尺寸有限的硅芯片上要集成各種不同功能的組件,并且要保證以正確的方式相互連接,而且要根據預算在通用性、高效性、速度、軟件適配等多個維度中做出權衡。
FPGA:現場可編程門陣列
在加入微軟前,我曾和我的一名博士生Hadi Esmaeilzadeh做過一項關于“暗硅”(Dark Silicon)的研究。當時,業界正朝著多核芯片的方向發展,有人認為,只要能編寫并行軟件,就能將計算機芯片架構擴展到數千核。
我們在2011年發表的研究中發現,由于功耗的限制,一個多核處理器在同一時刻只能有很少的一部分晶體管能夠工作,而其余部分則處于休眠狀態。這項研究獲得了相當高的關注度。
受到這一研究的啟發,我們認為可以針對特定的工作使用定制硬件來加速計算,解決“暗硅”問題。但是對于普通用戶來說,定制芯片的經濟成本以及大量功能不同芯片的管理成本都很高。為了幫助用戶解決這個問題,微軟在Azure云平臺上部署了FPGA(現場可編程門陣列)。
FPGA全稱為“現場可編程門陣列”,之所以稱為“現場可編程”,是因為在做完芯片硬件設計和算法映射之后,我們仍然可以對FPGA芯片進行實時、動態地修改。我們可以隨時把它改寫成其它用途的芯片,甚至可以每隔幾秒修改一次。為了同時滿足性能、成本和靈活性的要求,我們可以使用定制芯片來處理部分長期穩定的計算需求,而使用FPGA來處理剩余計算需求。
FPGA此前就已經廣泛應用于通信領域,在處理高速數據流以及測試即將投產的芯片時的表現出色。但在云計算中,FPGA尚未真正成功地大規模使用。
CPU和GPU適合于處理不同的任務。CPU是一種通用處理器,適合處理少量數據;而GPU是一種單指令、多數據(Single Instruction Multiple Data,SIMD)的并行處理器,即一條指令對不同的幾組數據執行相同的操作。FPGA實際上是CPU模型的“倒置”。在FPGA上,我們不再固定數據、運行指令,而是固定一些指令、運行整批數據。我稱之為“結構化計算”,其理念為固定一種計算結構,讓數據不斷從其中流過。FPGA非常適合這類工作負載,在云中, FPGA可以很好地完成這一使命,對CPU來說也是一種很好的補充。
FPGA每秒能夠處理50GB的數據包,同時也可以確保用戶的信息安全和網絡私密性。面對同樣的計算任務,多塊CPU才能接近一塊FPGA的處理速度。
于是,從2015年底開始,微軟通過Project Catapult項目在微軟Azure云中對FPGA進行了超大規模的部署,不管與之前相比還是跟競爭對手相比,Azure云的數據處理速度都有明顯的提升。目前,微軟是全球最大的FPGA使用者之一,各個團隊都在使用FPGA強化自己的服務。
Brainwave:為深度神經網絡“定制”處理器
在人工智能領域,目前大熱的深度學習對計算機硬件和架構都提出了更高的要求,只有更好、更快的硬件和架構才能處理日益龐大的訓練數據和越來越復雜的深度神經網絡模型。機器翻譯、語音理解、計算機視覺等經典人工智能領域的不斷發展給硅芯產業帶來了很大的壓力。現在,許多公司都為打造人工智能、機器學習,特別是深度學習的定制架構投入了大量的資金。
Project Brainwave硬件模型
因此,我們團隊打造了自己的深度神經網絡處理器Brainwave。我們正與微軟必應和Azure團隊通力合作,為微軟的各項服務提供有力的硬件與架構支持。利用Brainwave,必應團隊可以擺脫計算資源的制約,能夠部署體量更大的模型,從而為用戶提供更好、更快、更高質量的搜索內容。
在今年的微軟Build大會上,微軟宣布了Project Brainwave預覽版,并將其整合到Azure機器學習服務中供用戶使用。同時,用戶也可以自行購買微軟推出的Catapult架構主板將之嵌入到生產設備上,這樣就可以在邊緣設備上直接運行已經在Azure上訓練好的模型,從而節省時間成本。
Brainwave非常適合處理推理運算任務,對于此類任務,目前大量技術都采用“批處理”的方式。批處理能夠提升計算機的處理能力,但卻容易增加網絡延遲。Project Brainwave可以將實時AI計算的延遲時間降到最小。不同的任務對于“實時”的要求并不相同,對于通過收集網絡信息預告緊急情況的任務來說,幾分鐘的“實時”處理是可以接受的,但對于實時語音互動或者類似于HoloLens這種增強現實任務,“實時”處理則要求做到毫秒級。
在實際的計算任務中,除了處理速度,成本也是需要考慮的一個關鍵因素。Brainwave系統做到了兩者兼顧,在處理速度和成本控制方面都有非常好的表現。
自從馮·諾依曼結構在上世界四十年代被提出之后,我們一直圍繞著馮·諾依曼計算機和各種各樣的計算機異構加速器進行研究,摩爾定律將要謝幕,我們正處于硅基和馮·諾伊曼時代的尾聲。所以,我們應該考慮更深遠的東西,為計算機的新的架構探索更深層次的理論。