Reputation: 677
My workstation configuration:
I use lwjgl's OpenCL demo (link) to list the platforms and devices.
Problems:
After installing AMD drivers on my workstation AMD Accelerated Parallel Processing platform list Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz as a device. (3rd device listed for AMD platform)
I tested the same code for both AMD and Intel OpenCL driver and Intel's own implementation was much faster for it's own hardware. (no surprise there)
Anyway I don't want an Intel device to be listen under an AMD platform.
My 2 identical AMD FirePro W9100 (device 1 and 2 under AMD platform) is listed with different level of OpenCL support.
What could cause this problem, and more importantly how can I make my 2nd card use the 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 TO EXEC NATIVE KERNEL-
KERNEL EXEC argument: 1337, should be 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 TO EXEC NATIVE KERNEL-
KERNEL EXEC argument: 1337, should be 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
Upvotes: 1
Views: 955
Reputation: 387
local_machine/Software/Krono/vendors
or software/AMD
). These things are usually controlled by regkeys. I'm not sure what AMD uses though.Upvotes: 2
Reputation: 56
Problem 1)
It seems that AMD's OpenCL implementation works for all x86 CPUs. I don't have hard facts on this, only another similiar discussion on Khronos forums.
A solution could be to filter out devices based on the name reported by different platforms, but I don't know if it is guaranteed that different platforms will always report the same name for the same device.
Problem 2)
I have no idea on your 2nd problem, it looks bizarre...
Upvotes: 2