News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

OpenCL Detection

Started by aw27, June 23, 2019, 09:09:45 PM

Previous topic - Next topic

aw27

Although OpenCL performance and capabilities are not as good as CUDA's, it is ubiquitous.
I made a test in 4 different computers and all of them add OpenCL ready (see below).
Interestingly Intel and AMD have version 2.x drivers, while NVidia is still at 1.2

Soon I will post some general-purpose computing on graphics processing units, aka GPGPU, done using OpenCL.


Found 1 platform(s)

*** Platforms Information ***

Platform 0 - Name: AMD Accelerated Parallel Processing
Vendor: Advanced Micro Devices, Inc.
Version: OpenCL 2.0 AMD-APP (1800.8)
Profile: FULL_PROFILE
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

*** Devices Information ***

Platform 0
Device Name: Juniper
Driver Version: 1800.8 (VM)
Device Profile: FULL_PROFILE
Device Version: OpenCL 1.2 AMD-APP (1800.8)

<Press any key to Exit>

***********************************************************

Found 2 platform(s)

*** Platforms Information ***

Platform 0 - Name: NVIDIA CUDA
Vendor: NVIDIA Corporation
Version: OpenCL 1.2 CUDA 10.1.135
Profile: FULL_PROFILE
Extensions: 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_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer

Platform 1 - Name: Intel(R) OpenCL
Vendor: Intel(R) Corporation
Version: OpenCL 2.1
Profile: FULL_PROFILE
Extensions: cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_fp64 cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir

*** Devices Information ***

Platform 0
Device Name: GeForce GTX 1050
Driver Version: 419.72
Device Profile: FULL_PROFILE
Device Versionm: OpenCL 1.2 CUDA

Platform 1
Device Name: Intel(R) HD Graphics 630
Driver Version: 22.20.16.4708
Device Profile: FULL_PROFILE
Device Versionm: OpenCL 2.1

<Press any key to Exit>

*************************************************

Found 1 platform(s)

*** Platforms Information ***
Platform 0 - Name: Intel(R) OpenCL
Vendor: Intel(R) Corporation
Version: OpenCL 1.2
Profile: FULL_PROFILE
Extensions: cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_gl_sharing 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

*** Devices Information ***
Platform 0
Device Name: Intel(R) HD Graphics 4400
Driver Version: 20.19.15.4549
Device Profile: FULL_PROFILE
Device Versionm: OpenCL 1.2

<Press any key to Exit>

***************************************************

Found 1 platform(s)

*** Platforms Information ***

Platform 0 - Name: NVIDIA CUDA
Vendor: NVIDIA Corporation
Version: OpenCL 1.2 CUDA 10.2.120
Profile: FULL_PROFILE
Extensions: 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_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer

*** Devices Information ***

Platform 0
Device Name: GeForce GTX 1060 6GB
Driver Version: 430.64
Device Profile: FULL_PROFILE
Device Versionm: OpenCL 1.2 CUDA
<Press any key to Exit>






daydreamer

thanks AW
with a 1.5k euro new highend nvidia gpu,you could have trillions trillions ball bouncing around in realtime with physics code on CUDA cores at the same time showing them with the usual pixelshader cores :thumbsup:

my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding

aw27

Quote from: daydreamer on June 23, 2019, 09:46:09 PM
with a 1.5k euro new highend nvidia gpu,you could have trillions trillions ball bouncing around in realtime with physics code on CUDA cores at the same time showing them with the usual pixelshader cores :thumbsup:
Please let me know when you get one of those.  :thumbsup:

HSE

 :thumbsup:

With minor modifications work in 32 bit using UASM32

Found 1 platform(s)

*** Platforms Information ***

Platform 0 - Name: AMD Accelerated Parallel Processing
Vendor: Advanced Micro Devices, Inc.
Version: OpenCL 2.0 AMD-APP (1800.8)
Profile: FULL_PROFILE
Extensions: cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_o
ffline_devices

*** Devices Information ***

Platform 0
Device Name: BeaverCreek
Driver Version: 1800.8 (VM)
Device Profile: FULL_PROFILE
Device Version: OpenCL 1.2 AMD-APP (1800.8)

<Press any key to Exit>
Equations in Assembly: SmplMath

Raistlin

Although NVIDIA owns 90% of the GPU market via CUDA, it makes sense to also support the other 10% percent in your code.
That 10% being OPENGL/CL/ES (old school) /VULKAN (new school) capable. I believe NVIDIA duly supports the
Open-flavors to ensure compatibility, whilst keeping an eye on the competition :tongue:
By that logic then, OPENGL/CL/ES/VULKAN support is ubiquitous (everywhere) - making it an attractive proposition for
cross-platform development. I own a number of all of the above capable machines (phones/tablets/laptops/sbc/pc) running on
variants of Linux and Windows; having options is always cool - thanx AW for the code-lets, will investigate.
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

aw27

Quote from: HSE on June 24, 2019, 11:36:32 AM
With minor modifications work in 32 bit using UASM32
I did not made much effort to make things easy for 32-bit, so I am glad you succeeded.  :thumbsup:

Quote from: Raistlin on June 24, 2019, 04:05:00 PM
it makes sense to also support the other 10% percent in your code.
That 10% being OPENGL/CL/ES (old school) /VULKAN (new school) capable. I believe NVIDIA duly supports the
Open-flavors to ensure compatibility, whilst keeping an eye on the competition :tongue:
It appears that OpenCl does not have a promising future.
Apple, AMD, Intel, all are preparing contingency plans, and NVidia would rather prefer it continues as it is, inferior to CUDA.


daydreamer

Quote from: AW on June 23, 2019, 09:09:45 PM
Soon I will post some general-purpose computing on graphics processing units, aka GPGPU, done using OpenCL.
I read up on OpenCL,built on C++ 11
so does that mean those with C++ skills can easier participate in thread with whatever general purpose computing you had in mind,fibonnaci,primegenerator,pi generator to begin with ??? and do the usual compare speed?
will also be interesting how much of Xgb VRAM you can access and how much is reserved to the usual dx12/2d screen on 4x5k screens?

still I prefer MASM coding


my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding

aw27

Quote from: daydreamer on June 24, 2019, 08:30:40 PM
Quote from: AW on June 23, 2019, 09:09:45 PM
Soon I will post some general-purpose computing on graphics processing units, aka GPGPU, done using OpenCL.
I read up on OpenCL,built on C++ 11
so does that mean those with C++ skills can easier participate in thread with whatever general purpose computing you had in mind,fibonnaci,primegenerator,pi generator to begin with ??? and do the usual compare speed?
will also be interesting how much of Xgb VRAM you can access and how much is reserved to the usual dx12/2d screen on 4x5k screens?

GPUs can be programmed in a C/C++ like fashion but GPUs have quite different rules.
Interestingly, OpenCL allows you to program for the CPU instead of the GPU making it a direct competitor for the OpenMP. Anyway, I will not waste time dissecting that.

Quote
still I prefer MASM coding
MASM is all right, but is not very productive when compared with UASM.

LiaoMi

 :sad:

OpenCLMandelBrot>ucl
Found 2 platform(s)

*** Platforms Information ***

Platform 0 - Name: NVIDIA CUDA
Vendor: NVIDIA Corporation
Version: OpenCL 1.2 CUDA 10.1.120
Profile: FULL_PROFILE
Extensions: 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_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer

Platform 1 - Name: Intel(R) OpenCL
Vendor: Intel(R) Corporation
Version: OpenCL 1.2
Profile: FULL_PROFILE
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_dx9_media_sharing cl_intel_dx9_media_sharing cl_khr_d3d11_sharing cl_khr_gl_sharing cl_khr_fp64

*** Devices Information ***

Platform 0
Device Name: Quadro P4000
Driver Version: 430.39
Device Profile: FULL_PROFILE
Device Version: OpenCL 1.2 CUDA
clGetDeviceIDs failed.

aw27

Quote from: LiaoMi on June 26, 2019, 04:27:07 AM
:sad:
clGetDeviceIDs failed.
The program attempts to list only devices of type CL_DEVICE_TYPE_GPU.
May be it will succeed with another types of device. These are possible types:

/* cl_device_type - bitfield */
#define CL_DEVICE_TYPE_DEFAULT                  (1 << 0)
#define CL_DEVICE_TYPE_CPU                         (1 << 1)
#define CL_DEVICE_TYPE_GPU                         (1 << 2)
#define CL_DEVICE_TYPE_ACCELERATOR          (1 << 3)
#define CL_DEVICE_TYPE_CUSTOM                   (1 << 4)
#define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF

But it is strange (for me, at least).