标签:linux cuda OpenCL
环境: 系统:ubuntu14.04(linux) 显卡:NVIDIA cuda版本:cuda8.0
转载标注:http://blog.csdn.net/hust_sheng/article/details/53445014
官方下载安装包:https://developer.nvidia.com/cuda-downloads 这里我使用的是基于ubuntu14.04的deb的local版本
下载完成之后参考 CUDA Quick Start Guide.pdf 进行安装测试(注意要找到对应系统的安装命令,不然会失败),具体如下: 【注意】 一定要将系统BIOS的快速启动和安全启动关闭,不然重启的时候会停留在登录界面无法进入linux系统(尝试网上的方式,没有成功),切记!
对NVIDIA的显卡来说,cuda安装完毕后OpenCL的环境自然就安装好了。
测试NVIDIA官方OpenCL示例程序 官方下载:https://developer.nvidia.com/cuda-toolkit-40 下载之后运行即可:sudo sh gpucomputingsdk_4.0.17_linux.run 上述步骤完成之后在 ~/ 下会生成 NVIDIA_GPU_Computing_SDK 文件夹,后续步骤:
进入目录:/home/popsheng/NVIDIA_GPU_Computing_SDK/OpenCL ,执行 make 命令进入目录:/home/popsheng/NVIDIA_GPU_Computing_SDK/OpenCL/bin/linux/release ,运行对应可执行程序即可:./oclVectorAdd,等待结果。测试OpenCL下的“helloword”程序 测试程序如下:
#include <stdio.h> #include <stdlib.h> #ifdef __APPLE__ #include <OpenCL/cl.h> #elif defined(__linux__) #include <CL/cl.h> #include <CL/opencl.h> #endif int main() { cl_int status=0; size_t deviceListSize; cl_uint numPlatforms; cl_platform_id platfomr=NULL; status=clGetPlatformIDs(0,NULL,&numPlatforms); printf("status=%d\n",status); return 0; } 编译之前需要添加动态库环境变量,具体如下: export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}使用nvcc 将opencl下的nvcc编辑器设置为环境变量 安装cuda的时候只是临时设置环境变量: export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} ,我们可以进一步将其设置为永久的环境变量,加入 /etc.profile 注销再登录即可。
编译运行 注意后面加上-lOpenCL: nvcc opencl-t0.c -lOpenCL ./a.out 之后可以看到status=0的正确结果。使用gcc或g++(毕竟nvcc是cuda程序的编辑器) 将下面两个环境变量加入 /etc.profile ,注销再登录即可。 export C_INCLUDE_PATH=/usr/local/cuda/include${C_INCLUDE_PATH:+:${C_INCLUDE_PATH}} export CPLUS_INCLUDE_PATH=/usr/local/cuda/include${CPLUS_INCLUDE_PATH:+:${CPLUS_INCLUDE_PATH}}
编译运行 命令后面同意需要加上-lOpenCL: gcc opencl-t0.c -lOpenCL-lOpenCL的解释 gcc或g++下的编译选项,-llibrary:-l后面跟着动态库的名字,表示链接的时候需要将名为library的库链接进去。
