英特爾:讓每個晶體管物盡其用

雖然摩爾定律在放緩,但集成度仍然不斷增加,消費類產品旗艦設備所用的處理器動輒集成數十億晶體管,如果對處理器及其系統實現沒有深入瞭解,工程師將很難讓這數十億晶體管完全發揮出效力。

文︱王樹一

圖︱網絡

在PC時代之後,計算設備的形態越來越多樣化。小到電池供電的物聯網終端,大到數據中心與超級計算機,介於二者之間的中等規模計算系統更是數不勝數。計算架構上也是百花齊放,傳統CPU是標量(Scalar)計算,GPU是向量(Vector)計算的代表,現在的AI加速器多是矩陣(Matrix)計算,FPGA則可被視為空間(Spatial)計算。設備形態與計算架構的多樣化,給軟件工程師的工作帶來了極大挑戰。

為碼農工作的碼農

被俗稱為“碼農”的軟件工程師群體素以學習能力強著稱,但對大多數軟件工程師而言,能夠精通一種架構已經不易,跨平臺開發通常難以達到很好的效果,而且如今技術演進速度太快,如果每一種新架構都要去學習,將讓多數工程師不堪重負。“如果讓開發者都直接針對SVMS(即標量、向量、矩陣和空間)架構編程,每出一個新技術都要跟上,大家學也學不及,趕也趕不及。”英特爾機器學習首席工程師林曉東就這樣解釋軟件工程師所面臨的困境。

英特爾亞太研發中心總經理盧炬也表示,我們正在進入一個以數據為中心、計算多元化的時代,計算架構在從CPU向xPU擴展。因為不再是單一的CPU架構,就需要工程師把不同的計算架構,與不同應用場景的工作負載整合到一起,軟硬結合以發揮系統配置在具體應用場景的最佳性能,最終實現系統的設計目標,這其中“軟件起了最關鍵的橋樑作用”。

英特爾軟件工程師的首要工作是為應用軟件工程師提供最完整的開發環境,即林曉東所謂的“‘碼農’中的碼農”,以固件/BIOS、操作系統、虛擬化技術、編配組件,以及中間件和框架組件等多層次軟件技術,為應用英特爾硬件系統的軟件開發者提供全面的幫助與引導,這些軟件技術把硬件系統層層抽象,最終讓應用軟件工程師無需深入瞭解硬件實現細節,就能有效地在英特爾平臺上進行開發。

英特尔:让每个晶体管物尽其用

英特爾軟件產品覆蓋層級(藍色)

英特爾新近推出的oneAPI是一個跨平臺生產力工具的例子。oneAPI 包含兩部分,第一部分是跨架構編程語言Data Parallel C++(簡稱 DPC++),不同架構處理器和廠商都可以使用;第二部分是滿足不同應用需求的跨架構庫集合。英特爾英特爾架構、圖形與軟件部副總裁Bill Savage曾表示,oneAPI 既是一個開放的行業規範,同時也是一個產品。對於軟件開發者而言,oneAPI 的好處是使開發者使用同一份代碼,即應用於不同架構和廠商的計算系統,更多地重複利用代碼,可以有效地降低開發成本。

OpenVINO是另一個例子,英特爾視覺計算軟件合作部亞洲區總經理高源表示,在實現了高性能計算機視覺和深度學習視覺應用方面,英特爾雖然有不同的硬件架構和硬件平臺,但是軟件編程工具是統一的,就是OpenVINO。“不需要開發者獨立去了解不同硬件應該如何去做,OpenVINO為大家提供了一個統一接口,方便在不同架構之間做開發和遷移。”

開源與合作

Wintel聯盟是PC時代勝出的基礎之一,但世易時移,在後移動計算時代,開源與合作逐漸成為業界主流,連微軟都開始主動投入開源運動。所以是否參與開源運動已經不是問題,擺在這些大廠商前面的問題是如何在開源運動中佔據一席之地。

英特爾亞太研發中心開源首席科學家馮曉焰,向探索科技(techsugar)介紹了英特爾在開源軟件方面的歷史。馮曉焰表示,在上世紀90年代,英特爾已經在開始進行Linux內核相關的開發工作,英特爾的工程師和Linux內核維護者定期舉行會議,2001年左右,馮曉焰所在的團隊開始開發“電信級Linux”,之後在Linux上的投入越來越多,2005年1月,時任英特爾首席執行官安迪格魯夫做過一個承諾,即英特爾在為微軟開發驅動的同時,也將為每一款英特爾硬件開發Linux驅動軟件,這標誌著英特爾全面擁抱開源軟件。

馮曉焰介紹,在上述英特爾多層次軟件產品中,開源軟件在每一層都有代表作。固件層次的UEFI Framework是開源軟件;在虛擬化層次上,則有KVM、ACRN、XEN等開源產品;在操作系統層次,英特爾有專為英特爾平臺優化的Clear Linux,針對IA平臺開放的安卓操作系統的參考實現Celadon,針對特別小的物聯網設備要用到的操作系統內核Zephyr,以及開源的機器人操作系統ROS等。“英特爾很多的核心技術,都是在開源軟件上首先實現的。”

“在國內,OpenStack遠遠比在國外更活躍。OpenStack在國內更活躍的重要原因,其實是因為英特爾在國內有專門做OpenStack的團隊,而且英特爾在國內做了很多推廣,包括社區的推廣,也支持各種OpenStack廠商基於OpenStack做的整體解決方案。” 馮曉焰特別強調了英特爾在OpenStack發展中的作用,他認為英特爾和產業鏈夥伴勠力同心,才推動了整個OpenStack在社區的活躍和廣泛應用。“最近幾年OpenStack技術峰會都會評選‘超級用戶’,‘超級用戶’有非常嚴格的選擇標準,中國移動、騰訊,都得到過‘超級用戶’,英特爾一直在和OpenStack‘超級用戶’密切合作,為其提供了很多支持。”

讓每個晶體管物盡其用

顯然,英特爾軟件部門是英特爾硬件的“超級用戶”。在英特爾發佈每一款硬件之前,其軟件工程師都已經將新硬件玩熟。雖然摩爾定律在放緩,但集成度仍然不斷增加,消費類產品旗艦設備所用的處理器動輒集成數十億晶體管,如果對處理器及其系統實現沒有深入瞭解,工程師將很難讓這數十億晶體管完全發揮出效力。

英特爾的軟件工程師成為了在英特爾系統做開發的工程師們的“守夜人”,他們要確保這些工程師能夠簡便、高效、安全地在英特爾平臺上做開發。

英偉達的CUDA是其在人工智能應用中搶得先機的法寶,英特爾的oneAPI與OpenVINO等產品或也將在數據時代中引領潮流。

“英特爾做軟件,就是為了使能和優化,我們做的事情,是讓英特爾所有硬件的每一個晶體管的能力,都能充分發揮起來。這就是英特爾做軟件的目的,使得開發者能夠非常容易地把我們的軟件和硬件充分用起來。”軟件與硬件結合,才能最終把硬件威力發揮出來,林曉東舉了機器學習的例子,從Broadwell到Skylake,軟硬件

結合帶來了高達277倍的機器學習性能提升;從Skylake到Cascade Lake 增長了28倍,其中軟件優化對性能增長的貢獻,遠超硬件改進。

END


分享到:


相關文章: