AMD 放大招了…推出 Boltzmann Initiative、支援 CUDA 程式的轉移!


NVIDIA 的 CUDA 架構,基本上應該算是現階段最成功的 GPGPU 環境之一。他在新一代、專門用來做大量平行計算的環境裡面,算是推出最早的,所以相對起來、發展的也算是最完整的;而後來雖然 Khronos 有推出跨硬體平台的開放標準 OpenCL(Intel、AMD、NVIDIA 都有支援),但是就 Heresy 所知,還是有許多開發人員是偏好 CUDA 的。

而 AMD 在 GPGPU 這一塊…個人是覺得發展的始終有點悲劇吧?Heresy 有紀錄的部分,他最早是推出自家的「Stream SDK」,而之後就徹底捨棄自己的語言、完全轉投向 OpenCL、Stream SDK 也改名為「AMD APP SDK」了。

儘管 AMD 也試著在靠 OpenCL、以及後來所推出、基於 AMD APU 的「Heterogeneous System Architecture」(異質系統架構、官網)來做平行計算的發展方向(AMD 稱之為「Heterogeneous Computing」、異質計算),但是實際上…就個人所知,成效似乎不算是很好。

而在今年的 SC 大會,看來 AMD 是放狠招了!AMD 提出了「Boltzmann Initiative」、希望可以讓自家的產品更有用;其第一階段的成果,包括了「Heterogeneous Compute Compiler」(HCC),以及「Heterogeneous-compute Interface for Portability」(HIP)~

其官方公告是《AMD Launches ‘Boltzmann Initiative’ to Dramatically Reduce Barriers to GPU Computing on AMD FirePro™ Graphics》;另外在 AnandTech 上也有相對完整的資料《AMD @ SC15: Boltzmann Initiative Announced – C++ and CUDA Compilers for AMD GPUs》。

上圖就是取自 AnandTech 的投影片畫面。可以看到這邊列了三點:

  • 這是一個伺服器基礎的異質系統架構技術
  • HCC 這個編譯器可以使用 C++11/14、C11、OpenMP
  • HIP Runtime 加上 HCC 可以讓 CUDA 的程式在這個環境運作

HCC 基本上是一個「Headless Linux」(沒有螢幕、鍵盤等使用者介面的環境)以及基於 HSA+ Runtime 的 GPU 環境;這個環境主要是針對高速計算(High Performance Computing、HPC)的族群而設計的,期望能讓他們的 FirePro 產品線(官網)在這個領域能有一席之地。

上圖就是取自 AnandTech 的投影片畫面,可以看到,這個環境的特點,其中一個就是提供一個 CPU 和 GPU 的統一記憶體架構。(AMD 本來在 APU 上就有了,但是獨立繪圖晶片上似乎沒有;而這點 NVIDIA 在 CUDA 6 開始已經有提供了。)

另一方面,HCC 這個號稱異質計算專用的編譯器,基本上是基於 Clang/LLVM 來開發的,它支援 C11、C++ 11C++14OpenMP 4.0 等標準語法,而且不管是 CPU 或 GPU 的程式,都可以在同一個環境下編譯。另外,他也支援 C++17 的 Parallel STL!所以在撰寫上的彈性,算是相當高的~(不需要像 OpenCL 一樣,需要另外編譯 kernel)

不過,Heresy 個人覺得 AMD 這次真的比較兇狠的,是他們提供了「Heterogeneous-compute Interface for Portability」(HIP)這個工具,把使用 NVIDIA CUDA 開發的程式碼、轉換成 AMD 自己的 HIP 程式碼、進而可以透過 HCC 編譯器編譯成可以在 AMD 的處理器上面運作的程式!

也就是說,雖然 AMD 的顯示卡還是不能執行 CUDA 的程式,但是如果是使用 CUDA 的開發者,就可以透過 AMD HIP 這個工具,把自己的程式另外編譯成 AMD 的版本、讓他可以在 AMD 的 GPU 上運作了!

透過這個機制,AMD 或許可以把一些 NVIDIA CUDA 的開發者,拉到 AMD 的開發環境來吧?不過,接下來的問題,應該就是這樣的機械轉換效能會多好、再來就是要看 NVIDIA 會不會反制了?


附註:

  1. 以今年全球的超級電腦 Top500 排名(網頁)來說,採用 NVIDIA 處理器的有 69 座電腦、Intel Xeon Phi 也有 33 座,但是採用 AMD FirePro 的卻只剩下 2 座在榜上了…(遠目

  2. 很久沒注意了,但是沒想到 NVIDIA 到現在還不支援 OpenCL 2.x(參考)!?是不打算管了嗎?

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.