AMD OpenCL driver: 1) detects Intel CPU 2) lists same type of GPU with different OpenCL version -
my workstation configuration:
- intel(r) xeon(r) cpu e5-2609 v2 @ 2.50ghz (x2)
- amd firepro w9100 (x2)
operating system:
- windows server 2012 r2 standard
i use lwjgl's opencl demo (link) list platforms , devices.
problem 1)
after installing amd drivers on workstation amd accelerated parallel processing platform list intel(r) xeon(r) cpu e5-2609 v2 @ 2.50ghz device. (3rd device listed amd platform)
i tested same code both amd , intel opencl driver , intel's own implementation faster it's own hardware. (no surprise there)
anyway don't want intel device listen under amd platform.
problem 2)
my 2 identical amd firepro w9100 (device 1 , 2 under amd platform) listed different level of opencl support.
what cause problem, , more importantly how can make 2nd card use 2.0 opencl driver?
opencl demo results:
new platform: [0x7ffe51b57b60] cl_platform_profile = full_profile cl_platform_version = opencl 2.0 amd-app (1642.5) cl_platform_name = amd accelerated parallel processing cl_platform_vendor = advanced micro devices, inc. cl_platform_extensions = cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices cl_platform_icd_suffix_khr = amd ** new device: [0x1087bd0] opencl 2.0 - extensions: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_ext_atomic_counters_32 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_image2d_from_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir cl_device_type = 4 cl_device_vendor_id = 4098 cl_device_max_compute_units = 44 cl_device_max_work_item_dimensions = 3 cl_device_max_work_group_size = 256 cl_device_max_clock_frequency = 930 cl_device_address_bits = 64 cl_device_available = true cl_device_compiler_available = true cl_device_name = hawaii cl_device_vendor = advanced micro devices, inc. cl_driver_version = 1642.5 (vm) cl_device_profile = full_profile cl_device_version = opencl 2.0 amd-app (1642.5) cl_device_extensions = cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_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 cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_subgroups cl_khr_gl_event cl_khr_depth_images cl_device_opencl_c_version = opencl c 2.0 sub buffer destructed: 17348816 buffer destructed (2): 16864864 buffer destructed (1): 16864864 ** new device: [0x10851e0] opencl 1.2 - extensions: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_ext_atomic_counters_32 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_image2d_from_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir cl_device_type = 4 cl_device_vendor_id = 4098 cl_device_max_compute_units = 44 cl_device_max_work_item_dimensions = 3 cl_device_max_work_group_size = 256 cl_device_max_clock_frequency = 930 cl_device_address_bits = 64 cl_device_available = true cl_device_compiler_available = true cl_device_name = hawaii cl_device_vendor = advanced micro devices, inc. cl_driver_version = 1642.5 (vm) cl_device_profile = full_profile cl_device_version = opencl 1.2 amd-app (1642.5) cl_device_extensions = cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_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 cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event cl_device_opencl_c_version = opencl c 1.2 sub buffer destructed: 17348816 buffer destructed (2): 16864864 buffer destructed (1): 16864864 ** new device: [0x5ddfe790] opencl 1.2 - extensions: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir cl_device_type = 2 cl_device_vendor_id = 4098 cl_device_max_compute_units = 8 cl_device_max_work_item_dimensions = 3 cl_device_max_work_group_size = 1024 cl_device_max_clock_frequency = 2500 cl_device_address_bits = 64 cl_device_available = true cl_device_compiler_available = true cl_device_name = intel(r) xeon(r) cpu e5-2609 v2 @ 2.50ghz cl_device_vendor = genuineintel cl_driver_version = 1642.5 (sse2,avx) cl_device_profile = full_profile cl_device_version = opencl 1.2 amd-app (1642.5) cl_device_extensions = cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission 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 cl_khr_spir cl_khr_gl_event cl_device_opencl_c_version = opencl c 1.2 -trying exec native kernel- kernel exec argument: 1337, should 1337 event callback status: cl_complete empty native kernel avg exec time: 28.8072us sub buffer destructed: 17348816 buffer destructed (2): 16864864 buffer destructed (1): 16864864 ------------------------- new platform: [0x5db27010] cl_platform_profile = full_profile cl_platform_version = opencl 1.2 cl_platform_name = intel(r) opencl cl_platform_vendor = intel(r) corporation cl_platform_extensions = cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_platform_icd_suffix_khr = intel ** new device: [0x5db1e8f0] opencl 1.2 - extensions: cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir cl_device_type = 2 cl_device_vendor_id = 32902 cl_device_max_compute_units = 8 cl_device_max_work_item_dimensions = 3 cl_device_max_work_group_size = 8192 cl_device_max_clock_frequency = 2500 cl_device_address_bits = 64 cl_device_available = true cl_device_compiler_available = true cl_device_name = intel(r) xeon(r) cpu e5-2609 v2 @ 2.50ghz cl_device_vendor = intel(r) corporation cl_driver_version = 5.0.0.57 cl_device_profile = full_profile cl_device_version = opencl 1.2 (build 57) cl_device_extensions = cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_device_opencl_c_version = opencl c 1.2 -trying exec native kernel- kernel exec argument: 1337, should 1337 event callback status: cl_complete empty native kernel avg exec time: 9.5031us sub buffer destructed: 1574991568 buffer destructed (2): 1563032880 buffer destructed (1): 1563032880
1) in regkeys (under local_machine/software/krono/vendors or software/amd). these things controlled regkeys. i'm not sure amd uses though. 2) make sure both cards have same driver version. otherwise amd driver allows 1 2.0 device on machine due potential coherence issues between devices. 2.0 devices supposed have svm support cores, i'm not sure happens coherence across devices.
Comments
Post a Comment