Have attached Tesla, want to target OpenCL to x86

Hello!

I have a machine with an attached Tesla S1070 server. I normally program in CUDA but I’m interested in learning OpenCL. One of the features of OpenCL that I want to use is the ability to retarget GPU kernels to execute on the x86 CPUs. From what I understand, this cannot be done within the CUDA OpenCL runtime, so I downloaded ATI Stream in the hope that I could switch between the CUDA and Stream OpenCL runtimes by simply flipping the symbolic link for /usr/lib64/libOpenCL.so between /usr/lib64/libOpenCL.so.nvidia (for CUDA) and /usr/lib64/libOpenCL.so.x86 (for Stream’s x86 runtime).

Unfortunately this isn’t working–even with the x86 runtime, I’m only getting the NVIDIA platform back from cl::Platform::get(). I wonder if I need to install the ATI Stream Linux kernel module for this to work. Note that I don’t have an ATI GPU, only the Tesla GPUs. There must be a component that I’m forgetting but I can’t seem to find it. Does anyone have any ideas?

Thank you in advance,
-Jason

Hello!

I have a machine with an attached Tesla S1070 server. I normally program in CUDA but I’m interested in learning OpenCL. One of the features of OpenCL that I want to use is the ability to retarget GPU kernels to execute on the x86 CPUs. From what I understand, this cannot be done within the CUDA OpenCL runtime, so I downloaded ATI Stream in the hope that I could switch between the CUDA and Stream OpenCL runtimes by simply flipping the symbolic link for /usr/lib64/libOpenCL.so between /usr/lib64/libOpenCL.so.nvidia (for CUDA) and /usr/lib64/libOpenCL.so.x86 (for Stream’s x86 runtime).

Unfortunately this isn’t working–even with the x86 runtime, I’m only getting the NVIDIA platform back from cl::Platform::get(). I wonder if I need to install the ATI Stream Linux kernel module for this to work. Note that I don’t have an ATI GPU, only the Tesla GPUs. There must be a component that I’m forgetting but I can’t seem to find it. Does anyone have any ideas?

Thank you in advance,
-Jason

Yep, no need to install you just have to register the ICD, I think. Refer the ATI_Stream_SDK_Release_Notes_Developer.pdf , mainly the installation section.

Yep, no need to install you just have to register the ICD, I think. Refer the ATI_Stream_SDK_Release_Notes_Developer.pdf , mainly the installation section.

If you want use OpenCL on CPU you need AMD implementation (runs on AMD and Intel CPUs) or Intel implementation (runs only on Intel CPUs).

In this topic: http://forums.nvidia.com/index.php?showtopic=186031&st=0&p=1148417&#entry1148417 I posted a link to AMD documentation about how to select an implementation when there are multiple implementations installed.

You can also use a PTX emulator like GPUOcelot or Barra to run on x86(_64) CPUs code compiled in PTX for Nvidia GPUs
http://forums.nvidia.com/index.php?showtopic=176376&st=0&p=1111263&hl=barra&fromsearch=1&#entry1111263

If you want use OpenCL on CPU you need AMD implementation (runs on AMD and Intel CPUs) or Intel implementation (runs only on Intel CPUs).

In this topic: http://forums.nvidia.com/index.php?showtopic=186031&st=0&p=1148417&#entry1148417 I posted a link to AMD documentation about how to select an implementation when there are multiple implementations installed.

You can also use a PTX emulator like GPUOcelot or Barra to run on x86(_64) CPUs code compiled in PTX for Nvidia GPUs
http://forums.nvidia.com/index.php?showtopic=176376&st=0&p=1111263&hl=barra&fromsearch=1&#entry1111263