SDKなしでOpenCLを使ってみる -おまけ-


今回はOpenCLを使ってみる一連の流れで気付いたことを書いてみます。おまけです。

AMD,NVIDIAの両環境でOpenCL Device extensions を表示させたときに、思った以上の違いがありました。

PlatformName: AMD Accelerated Parallel Processing
  DeviceName: Barts
  > DeviceExtensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_exten
ded_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics
cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_at
omic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_
media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing

PlatformName: NVIDIA CUDA
DeviceName: GeForce GTX 650 Ti
  > DeviceExtensions: cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing
 cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing
 cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr
_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int
32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 

AMDのほうには cl_nv_d3d11_sharing や cl_nv_d3d9_sharing がありません。これはすなわちDirectX9, DirectX11とOpenCLの連係動作が拡張機能でスムーズにできないことを示しています(パフォーマンスを犠牲にすれば連携の手はあるだろうけれども)。AMDのほうは 6850で実行しており、これはDirectX11対応ボードです。これらの結果から、OpenGLとの連携はやはり考慮にあるのだろうと感じました。

この結果から KhronosのOpenCL Registry を確認してみたところ、なんとDirectX9, DirectX11の拡張に関してはkhrカテゴリではなくnvのみの拡張となっていました。標準的に使えるのは DirectX10とやりとりまでいう状況のようです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする