Is it possible to install openCL on 16.04 (CPU-Only)? I tried many guides, but still do not get a working box. I have a sandy-bridge second gen CPU, if this matters.
3 Answers
install packets
Generic ubuntu packages for OpenCL
Basic installation
sudo apt install ocl-icd-libopencl1
sudo apt install opencl-headers
sudo apt install clinfo
Package that allows to compile OpenCL code (1.2 I think)
Needed to link and compile
sudo apt install ocl-icd-opencl-dev
For Intel GT core
Package that enables runnig openCL on Intel GT, IvyBridge and up
sudo apt install beignet
For SandyBridge Intel CPU and possible others
Download this file OpenCL™ Runtime 16.1.1 for Intel® Core™ and Intel® Xeon® Processors for Ubuntu* (64-bit) On https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_SDK_release
Install packages for turning rpm to deb
sudo apt-get install -y rpm alien libnuma1
Untar downloaded file
tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz
cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25/rpm/
Turn rpm files to deb
fakeroot alien --to-deb opencl-1.2-base-6.4.0.25-1.x86_64.rpm
fakeroot alien --to-deb opencl-1.2-intel-cpu-6.4.0.25-1.x86_64.rpm
Install .deb packages
sudo dpkg -i opencl-1.2-base_6.4.0.25-2_amd64.deb
sudo dpkg -i opencl-1.2-intel-cpu_6.4.0.25-2_amd64.deb
Touch local config file
sudo touch /etc/ld.so.conf.d/intelOpenCL.conf
Open the file
sudo vim /etc/ld.so.conf.d/intelOpenCL.conf
and add the line
/opt/intel/opencl-1.2-6.4.0.25/lib64/clinfo
Create a vendors dir and add intel.icd
sudo mkdir -p /etc/OpenCL/vendors
sudo ln /opt/intel/opencl-1.2-6.4.0.25/etc/intel64.icd /etc/OpenCL/vendors/intel64.icd
sudo ldconfig
test if this worked
Command to list your devices
clinfo
Dowload this file
Run this code to make sure everything works
tar xzvf tools-master.tar.gz
cd tools-master
make
./print-devices
./cl-demo 1000 10
This should print out GOOD in the end
For Nvidia
install nvidia drivers (I used 370), this should include all the runtime dirvers
Usefull linkes I have used to put this together
https://wiki.tiker.net/OpenCLHowTo http://korniychuk.org.ua/instruction/how-to-use-opencl-on-ubuntu-16-04/ https://laanwj.github.io/2016/05/06/opencl-ubuntu1604.html https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_SDK_release https://software.intel.com/en-us/forums/opencl/topic/285869 https://streamcomputing.eu/blog/2011-06-24/install-opencl-on-debianubuntu-orderly/ https://software.intel.com/en-us/forums/opencl/topic/390630 https://stackoverflow.com/questions/16977216/opencl-compile-on-linux
-
Thanks, it worked for me on Ubuntu 17.04 on Intel NUC with i3 (Kaby Lake) Aug 27, 2017 at 14:54
As per Intel's support site, OpenCL is not supported on 2nd gen (Sandy Bridge) Core processors.
You will need a 3rd gen (Ivy Bridge) or newer CPU to use OpenCL 1.2, or a 7th gen (Kaby Lake) to have the option to use OpenCL 2.0 with the Intel GPU (I am not sure what is currently supported in the drivers available for Linux).
-
I found this forum thread where some one says he was able to make the CPU only work with openCL 1.2. software.intel.com/en-us/forums/opencl/topic/285869 That would be enough for me. But I am also not sure if 16.04 is supported.– amanuskNov 16, 2016 at 23:12
OpenCL is packaged in Ubuntu/Debian, so rather than manually installing, one could try installing the following packages:
sudo apt-get install beignet-opencl-icd ocl-icd-libopencl1 clinfo
(or intel-opencl-icd
instead of beignet-opencl-icd
for Ubuntu 22.04+)
Then run clinfo
to make sure that it detects your OpenCL platforms and devices.
$ clinfo
Number of platforms 1
Platform Name Intel Gen OCL Driver
Platform Vendor Intel
Platform Version OpenCL 2.0 beignet 1.3