ATI Stream SDK v2.0 正式版,支援 OpenCL 1.0!

之前有貼過,AMD 在 Stream SDK 2.0 Beta 中有提供 OpenCL 的開發套件了。不過,當時還只是測試版;而現在,Stream SDK 2.0 終於出正式版囉∼官方網頁如下:http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx

而官方得更新內容則是:

  • 第一個支援 OpenCL 1.0 的正式版 ATI Stream SDK。
  • 新增:支援 OpenCL™ ICD (Installable Client Driver)。關於 OpenCL ICD 的詳細,請參考此技術文章
  • 新增:支援 32-bit integer 的 atomic function。
  • 新增:將效能分析工具 ATI Stream Profiler 整合到 Microsoft Visual Studio 2008。功能包含了:
    • measures OpenCL kernel execution time
    • queries memory traffic with GPU
    • compares runs of OpenCL programs
    • retrieves IL and ISA code for an OpenCL kernel
  • 預覽:支援 OpenCL™ / OpenGL interoperability。詳細資料請參考此技術文章
  • 預覽:支援 OpenCL™ / Microsoft DirectX 10 interoperability。詳細資料請參考此技術文章
  • 預覽:Support for double-precision floating point basic arithmetic in OpenCL™ C kernels。詳細資料請參考此技術文章
  • 更新 OpenCL™ runtime,讓他有條件地讀取 ATI CAL runtime libraries,讓他可以在沒有安裝 ATI Catalyst™ 的情形下,也可以在相容的 CPU 上執行。
  • 更新 OpenCL™ runtime,允許在單一使用者程式中同時使用 OpenCL™ 和 ATI CAL API。
  • 更新 Khronos OpenCL working group 釋出的 cl.hpp。
  • 各種 OpenCL™ 編譯器和 runtime 的修正與加強。詳細請參考 developer release notes

而這次的版本在作業系統的支援上,還是 WIndows XP / Vista / 7 ,以及 openSUSE™ 11.0 和 Ubuntu® 9.04 的 32 位元與 64 位元版本。編譯器還是支援 Visual Studio 2008 專業版、GNU Compiler Collection (GCC) 4.3、Intel® C Compiler (ICC) 11.x。

而這次的更新中比較重要的,應該就是對於 OpenCL™ ICD 的支援了∼透過這個 ICD,可以讓不同廠商(nVIDIA、AMD)的 OpenCL implementation 可以同時存在於同一個系統裡,並在執行時再透過 clGetPlatformIDs()clGetPlatformInfo() 來取得目前可以使用的 OpenCL implementation 清單,並選擇要使用哪種裝置來做 OpenCL 的計算。(以前可不可以不清楚,因為沒有玩過 XD)

同時他也讓 OpenCL 的程式不需要安裝 ATI Catalyst™,就可以在 CPU 上運作。這些功能可以讓一個 OpenCL 程式可以只要編譯一次,就可以在不同的 OpenCL 裝置上執行了∼

實際上目前透過 nVIDIA GPU Computing SDK 所編譯出來的 OpenCL 程式,可以直接拿到有安裝 ATI Stream SDK 2.0 的電腦上執行(只有 ATI 的顯示卡驅動程式似乎還是不行) ;將 ATI Stream SDK 2.0 編譯出來的 OpenCL 程式,拿到有安裝 nVIDIA 支援 OpenCL 驅動程式的電腦上,也可以正常運作。這應該是因為 nVIDIA 直接把 OpenCL ICD 放在顯示卡的驅動程式中,而 AMD 將 OpenCL 將 ICD 放在 SDK 中的關係。

比較可惜的是,雖然 ATI 可以在沒有安裝 ATI Catalyst™、僅安裝 Stream SDK 的電腦上,以 CPU 當作 OpenCL 的 device 來執行 OpenCL 程式;但是目前 Heresy 還不知道要怎麼讓一台沒有裝 Stream SDK 的電腦,以 CPU 或 ATI GPU 來執行 OpenCL 的程式?這樣如果是要 release 程式給其他人使用,或許會有些麻煩…或許,要等 AMD 和 Intel 這些廠商,都釋出獨立的 OpenCL ICD 才會比較方便吧?

另外,Heresy 測試 ATI 顯示卡的環境是在 Windows Vista x64 上,在執行 OpenCL 相關函式的時候,似乎都會發生明顯的螢幕閃爍的現象,這個應該是 Vista 的關係吧?

2 thoughts on “ATI Stream SDK v2.0 正式版,支援 OpenCL 1.0!”

  1. 另外在AMD CPU Nvidia GPU的平台上,裝上nvidia 195.62 drvier與手動裝ATI stream SDK,就會有兩個版本的OpenCL.dll,當程式呼叫到NV的OpenCL.dll,就會變成是用Nvidia的GPU,反之呼叫到AMD的OpenCL.dll就變成用CPU.目前不知道有無別的方法可以同時看到NV的GPU與AMD CPU兩種OpenCL device.

  2. 在Intel CPU ATI GPU的平台上,裝了AMD stream sdk就可以同時看到兩個OpenCL Device了.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。