OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1718 Discussions

Address bits: CPU = 32, GPU = 64?

Sean_S_3
Beginner
525 Views

I was playing around with the new 2014 Intel OpenCL SDK, and I noticed that when compiling for Win32, CL_DEVICE_ADDRESS_BITS query returned 32 for the CPU, but 64 for the GPU.  That seems quite odd to me, is that correct?  If I compile for x64, then both return 64, which isn't too strange.

 

Also, is there any good reason why my CPU's CL_DEVICE_NAME starts with six spaces, e.g., "      Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz"?  My GPU's CL_DEVICE_NAME starts immediately with "Intel(R)...".

0 Kudos
1 Reply
Dmitry_K_Intel
Employee
525 Views

Hi Sean,

OpenCL CPU device shares the same process with your application and Windows OS does not support processes with mixed 32/64 architecture. So YES, when you compile you application for 32bit architecture you will get 32-bit OpenCL CPU device. When you compile your application for 64-bit architecture you will get 64-bit OpenCL CPU device.

GPU is a separate piece of hardware with its own architecture and it is always seen as 64-bit OpenCL device.

Regarding the OpenCL CPU device name - it is extracted from the CPU hardware using cpuid assembler instruction. Unfortunately CPU HW returns a string with leading spaces.

 

0 Kudos
Reply