问题 如何在Ubuntu上编译OpenCL?
问题:需要什么标题和驱动程序,我将在哪里使用gcc / g ++在ubuntu上编译打开CL?
信息:有一段时间我现在一直在试图找出如何在我的桌面上安装开放式CL以及如果可能的话我的上网本。有一些教程我已经尝试但似乎没有工作。此外,他们都只是一步一步地解释为什么对于特定的IDE特定的,甚至更糟的是,所以你必须学习IDE才能做任何事情。
所以我的桌面上有一台NVIDA GX465,上网本中有集成显卡。我的首要任务当然是我的桌面,上网本只是为了便于开发(两者都运行ubuntu 11.04,一出现就会运行11.10)。有人可以告诉我究竟需要什么来获得它所以我可以实际编译代码并使其运行。如果你还能解释每件作品的作用,那么我就能理解它的重要性。
12382
2017-09-25 00:21
起源
答案:
要在Linux下编译和运行OpenCL代码,您需要做四件事:
1)支持OpenCL的NVIDIA驱动程序。与Ubuntu打包的驱动程序有点
旧的,但他们应该仍然工作得很好。除非你明确需要当前
驱动程序,你应该坚持使用Ubuntu打包的驱动程序。要清楚,这些是
通过受限制的驱动程序管理器安装相同的驱动OpenCL库包含驱动程序,因此只需运行OpenCL程序驱动程序即可。
2)CUDA工具包。这包括编译OpenCL代码所需的头文件。将其安装到默认位置。
3)GPU计算SDK(可选)。这包括各种NVIDIA特定支持工具以及OpenCL代码示例。
所有这三个项目都可以在 http://developer.nvidia.com/cuda-toolkit-40。
4)OpenCL C ++绑定(可选)。奇怪的是,它们不包含在CUDA Toolkit中,但是如果您使用C ++,它们可以使您的代码更加可更新。你可以从中下载它们 http://www.khronos.org/registry/cl/api/1.1/cl.hpp,只需将它放在/ usr / local / cuda / include / CL中即可。
安装完成后,您需要执行一些步骤才能在NVIDIA SDK之外编译和运行OpenCL。
1)CUDA工具包将包含OpenCL头文件(在 http://www.khronos.org/registry/cl/),可能它们位于/ usr / local / cuda / include / CL目录中。要使这些头在系统范围内可用,您应该将此目录链接到/ usr / include /,以便可以将它们作为/ usr / include / CL / [headerfilename]进行访问。您可以添加/ usr / local / cuda / include而不是创建符号链接 C_INCLUDE_PATH
和 CPLUS_INCLUDE_PATH
环境变量,但这只会持续当前的会话。
2)确保/ usr / lib中存在OpenCL库(libOpenCL.so)。这应该由司机实施,所以你不应该做任何事情。
你已经准备好编写代码了。一定要包括 CL/cl.h
(要么 CL/cl.hpp
如果您想在任何进行OpenCL API调用的C(++)程序中使用C ++版本的API。编译时,请确保链接到OpenCL库(传递gcc) -lOpenCL
旗)。
就您的上网本而言,集成显卡通常不支持OpenCL。理论上, AMD的APP加速 支持在CPU上运行OpenCL,但目前尚不清楚它是否真的有效。
9
2017-09-25 03:07
答案:
要在Linux下编译和运行OpenCL代码,您需要做四件事:
1)支持OpenCL的NVIDIA驱动程序。与Ubuntu打包的驱动程序有点
旧的,但他们应该仍然工作得很好。除非你明确需要当前
驱动程序,你应该坚持使用Ubuntu打包的驱动程序。要清楚,这些是
通过受限制的驱动程序管理器安装相同的驱动OpenCL库包含驱动程序,因此只需运行OpenCL程序驱动程序即可。
2)CUDA工具包。这包括编译OpenCL代码所需的头文件。将其安装到默认位置。
3)GPU计算SDK(可选)。这包括各种NVIDIA特定支持工具以及OpenCL代码示例。
所有这三个项目都可以在 http://developer.nvidia.com/cuda-toolkit-40。
4)OpenCL C ++绑定(可选)。奇怪的是,它们不包含在CUDA Toolkit中,但是如果您使用C ++,它们可以使您的代码更加可更新。你可以从中下载它们 http://www.khronos.org/registry/cl/api/1.1/cl.hpp,只需将它放在/ usr / local / cuda / include / CL中即可。
安装完成后,您需要执行一些步骤才能在NVIDIA SDK之外编译和运行OpenCL。
1)CUDA工具包将包含OpenCL头文件(在 http://www.khronos.org/registry/cl/),可能它们位于/ usr / local / cuda / include / CL目录中。要使这些头在系统范围内可用,您应该将此目录链接到/ usr / include /,以便可以将它们作为/ usr / include / CL / [headerfilename]进行访问。您可以添加/ usr / local / cuda / include而不是创建符号链接 C_INCLUDE_PATH
和 CPLUS_INCLUDE_PATH
环境变量,但这只会持续当前的会话。
2)确保/ usr / lib中存在OpenCL库(libOpenCL.so)。这应该由司机实施,所以你不应该做任何事情。
你已经准备好编写代码了。一定要包括 CL/cl.h
(要么 CL/cl.hpp
如果您想在任何进行OpenCL API调用的C(++)程序中使用C ++版本的API。编译时,请确保链接到OpenCL库(传递gcc) -lOpenCL
旗)。
就您的上网本而言,集成显卡通常不支持OpenCL。理论上, AMD的APP加速 支持在CPU上运行OpenCL,但目前尚不清楚它是否真的有效。
9
2017-09-25 03:07
Ubuntu 15.10采用NVIDIA NVS 5400M,联想T430
sudo apt-get install nvidia-352 nvidia-352-dev nvidia-prime nvidia-modprobe
sudo ln -s /usr/include/nvidia-352/GL /usr/local/include
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so
然后使用标题:
#include <CL/cl.h>
并编译:
gcc -o main main.c -lOpenCL
笔记:
我真的建议升级到15.10以使其工作:我以前从未管理过。
4
2017-11-02 17:21
我最近在linux上使用类似的过程进行干净的构建,使用NVIDIA卡设置OpenCL。
我采取的步骤:
1 - 安装NVIDIA驱动程序。
2 - 安装CUDA工具包 - (参考指南中的步骤,有很多方法可以做到,但我使用.deb安装程序,指南可以在这里找到: http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/)
3 - 使用apt-get安装OpenCL头文件。命令: sudo apt-get install opencl-headers
使用 : CL/opencl.h
header我能够使用gcc / g ++和标志:-lOpenCL编译C / C ++代码
解释步骤
1 - 自我解释
2 - CUDA工具包还安装OpenCL库(libOpencl.so)但不安装标题(至少不在我的系统上)
3 - 因此可以使用apt-get安装标头。头文件存储在/ usr / include / CL目录中
2
2018-06-28 10:22
在Ubuntu 16.04中对我有用的东西
我已经安装了openCL:
SandyBridge CPU:仅限cpu
IvyBridge GPU
Nvidia GTX 950
安装包
OpenCL的通用ubuntu包
基本安装
sudo apt install ocl-icd-libopencl1
sudo apt install opencl-headers
sudo apt install clinfo
允许编译OpenCL代码的包(我认为1.2)
需要链接和编译
sudo apt install ocl-icd-opencl-dev
适用于Intel GT核心
在Intel GT,IvyBridge及更高版本上启用runnig openCL的软件包
sudo apt install beignet
对于SandyBridge Intel CPU和其他可能的用户
下载此文件
适用于Ubuntu *(64位)的英特尔酷睿和英特尔至强处理器的OpenCL运行时16.1.1
上 https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_SDK_release
安装包以将rpm转到deb
sudo apt-get install -y rpm alien libnuma1
Untar下载文件
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/
将rpm文件转为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
安装.deb包
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
触摸本地配置文件
sudo touch /etc/ld.so.conf.d/intelOpenCL.conf
打开文件
sudo vim /etc/ld.so.conf.d/intelOpenCL.conf
并添加该行
/opt/intel/opencl-1.2-6.4.0.25/lib64/clinfo
创建供应商目录并添加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
测试这是否有效
clinfo应列出您的设备
下载此文件
https://codeload.github.com/hpc12/tools/tar.gz/master
运行此代码以确保一切正常
tar xzvf tools-master.tar.gz
cd tools-master
make
./print-devices
./cl-demo 1000 10
这应该打印好GOOD到底
对于Nvidia
安装nvidia驱动程序(我使用370),这应包括所有运行时驱动程序
1
2017-12-29 23:48