1
votes

I have a project using OpenCL that is working on my MAC with the following specs:

MacBook Air (13-inch, Mid 2013)
1.3 GHz Intel Core i5
Intel HD Graphics 5000 1536 MB

on AWS EC2 instances with the following specs:

g2.2xlarge Instance.
Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
NVIDIA GRID GPU (Kepler GK104) with
Ubuntu 14.04 - 64 bit.

It also works on other g2 and p2 instances since they have GPUs.

But it does not work on NV6 - MS Azure TESLA M60 GPU. The specs are:

GPU: 1 x M60 GPU (1/2 Physical Card)
Ubuntu 14.04.5 LTS
Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz (x 6)

I have the following outputs from the following commands:

clinfo:

clinfo: /usr/local/cuda-8.0/targets/x86_64-linux/lib/libOpenCL.so.1: no version information available (required by clinfo)
I: ICD loader reports no usable platforms

lspci:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA

Nvidia Device Query:

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)
NVIDIA: no NVIDIA devices found
cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL

And when I try to run my program. I get the following error:

Exception
ERROR: clGetPlatformIDs(-1001)

What is the problem here? Is the Tesla M60 not supporting OpenCL? What does clGetPlatformIDs(-1001) mean? Is my installation of OpenCL incorrect? Because I have the same installation procedure and everything on the rest of the machines and it works fine. But here, it gives errors.

2
drivers are not installed maybe?huseyin tugrul buyukisik
how do I check that?Mohammad Sohaib
I have already installed these. I also installed the samples and ran them to check the device query. I will edit my question to put the result of the device query also:Mohammad Sohaib
could be power management related device switch ? maybe?huseyin tugrul buyukisik

2 Answers

0
votes

In order for the ICD loader to load the NVIDIA OpenCL platform, it needs a .icd file located at /etc/OpenCL/vendors. On my laptop, I have /etc/OpenCL/vendors/nvidia.icd, which contains libnvidia-opencl.so.1. That library lives at /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1 and is a symlink to libnvidia-opencl.so.367.57 in the same folder. Make sure you have those files at those locations.

0
votes

I have just deployed the azure NC series with K80 GPU. Depending on the OS you chose , you have to install nvidia driver for CLInfo to pick up the GPU.

I did it with Ubuntu 17 and installed nvidia driver with

sudo apt-get install nvidia-390

[email protected]:~$ clinfo Number of platforms
1 Platform Name NVIDIA CUDA
Platform Vendor NVIDIA Corporation
Platform Version OpenCL 1.2 CUDA 9.1.84 Platform Profile FULL_PROFILE
Platform Extensions function suffix NV

Platform Name NVIDIA CUDA Number of devices 2 Device Name
Tesla K80 Device Vendor NVIDIA Corporation Device Vendor ID 0x10de