AMD宣布GPUOpen倡議,主推開源軟件棧
今年九月份,AMD公司專門成立了Radeon技術部門(Radeon Technologies Group,RTG),來壯大自己GPU研發領域的技術力量。此外,該公司還聘請了Raja Koduri為全球資深副總裁兼首席架構師,并提拔圖形與并行計算架構師Michael Mantor為公司院士。近日,Raja針對全球媒體主持召開了一次RTG技術峰會,介紹了AMD未來一年的GPU產品和技術戰略,內容十分豐富。本文針 對會議中所介紹的GPUOpen進行詳細介紹。
GPUOpen是AMD所發起的一個全新倡議。其主要目標是以開放的方式來推動GPU相關的開發,共包含了三個方面的內容。
開源工具鏈
一直以來,AMD在游戲機市場都占據著重要的地位。PlayStation 4和Xbox One都采用了AMD的CPU和GPU。然而,AMD在PC市場無法和NVIDIA平起平坐。其根源還在于顯卡以及相關的開發工具難以與其抗衡。根據經 驗,游戲機中GPU的底層訪問能夠為游戲性能帶來很大的提升。因而,AMD和RTG一直在探索如何能夠針對PC和游戲機進行類似的開發。之前,AMD曾提 出了一個突破性的顯卡 API——Mantle,希望以此來改變游戲開發領域,提升電腦游戲的性能和速度。近期,NVIDIA也推出了Gameworks工具,向AMD發起了挑 戰——該工具使得游戲開發者可以快速應用NVIDIA的3D技術,簡化開發,但AMD系統就無法享受到這樣的好處。
為了應對該挑戰,AMD的GPUOpen在開放底層硬件訪問權限的基礎上提出了開源的想法。GPUOpen倡議包括了為游戲開發者提供底層GPU 硬件和GitHub上開源的效果、工具、庫以及SDK的訪問權限。其相關代碼會使用相對寬松的MIT許可證,而且在GitHub中進行公布。這樣,開發人 員就可以利用一個統一的工具庫來面向AMD、NVIDIA以及Intel等公司的GPU。目前,TressFX、ShadowFX、GeometryFX 以及AOFX庫都包括在了GPUOpen范圍內。此外,GPUOpen還包括了FireRender渲染引擎、GPU加速的光線追蹤SDK、 RapidFire云SDK以及CodeXL調試器和性能分析器。
支持高級語言開發
幾周以前,AMD已經宣布了Boltzmann倡議。該倡議的主要目標就是利用C++等高級語言來簡化并行應用程序的開發工作。其所包含的異構系 統架構(Heterogeneous System Architecture,HSA)的軟件套件提供了一個針對C++語言的異構計算編譯器(HCC)。利用該編譯器,開發人員可以更加有效、便捷地使用異 構系統中的GPU硬件資源。
此外,異構計算可移植界面(HIP)還允許開發人員將CUDA代碼轉換為可移植的C++代碼。據AMD透露,HIP在很多情況下可以將90%的CUDA代碼轉換成C++,而剩余的10%則可以手動轉換。預計AMD將在2016年1月開放Boltzmann的初期訪問。
開源Linux驅動和運行時
AMD的GPUOpen倡議還包括了一個針對高性能計算的Linux驅動模型和運行時。目前,AMD維護了兩個Linux驅動棧——開源的 Radeon驅動和閉源的Catalyst驅動。未來,AMD將會推出一個針對其GPU的統一開源基礎圖像驅動。在此基礎上,AMD再維護兩個并行的驅動 棧——全開放的棧包含的都是開源的模塊;高性能棧則包含了開源的運動視頻模塊和閉源的OpenGL模塊。未來,和OpenGL模塊并行存在的 OpenCL/Vulkan模塊將會從閉源走向開源。
而AMD全新的無頭64位Linux驅動包括了眾多關鍵功能——低延遲計算調度、PCI-E數據傳輸、支持對等GPU、從和顯存直接互連的InfiniBand網絡中遠程直接訪問內存(RDMA)以及支持單一大內存分配。這些功能可以很好的滿足高性能計算的需求。
盡管GPUOpen的倡議剛剛提出,其已經能夠明確說明AMD在GPU方面的發展方向。在與NVIDIA的PC市場競爭中,AMD已經處于劣勢, 但該倡議卻能夠有效利用開源社區的力量來促進AMD GPU以及相關工具的發展。而且,GPUOpen能夠讓開發人員更好的訪問底層GPU,實現應用程序性能的提升。這樣,更多的應用就會傾向于針對 Radeon硬件進行專門的優化,擴展AMD GPU的應用市場,對于AMD而言,這實在是一步好棋。