经过几天血泪的摸索,和几个好心的大神的帮忙,终于搞定了这些问题,特此记录。
对于一个新装的Ubuntu系统,(1)首先安装同版本的gcc和g++
$ sudo apt-get install build-essential $ sudoapt-get update $ sudo install gcc $ sudo install g++
(2)安装最新版CUDA (Tookit),下载,安装$sudo apt-get install cuda,其中已经有了nvprof监视器了
(3)对于Fortran还要装PGI Fortran 作为编译器,安装社区版即可,注意最后一项选4即可
(4)对于pgi的环境配置,在/etc/opt/下建立一个.sh文件,设置四个环境变量,重启
(5)cuda环境变量设置十分关键:在~/.bashrc下增加环境变量
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后 $ source ~/.bashrc
(6)添加新文件/etc/ld.so.conf.d/cuda.conf,内容为/usr/local/cuda-8.0/lib64,然后运行sudo ldconfig
(7)查看驱动信息:$cat /proc/driver/nvidia/version
(8)如果以上配置成功了,就可以完成复制官方示例到根文件夹:$ cuda-install-samples-8.0.sh ~
(9)运行make,在NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release找到可执行文件./deviceQuery,执行之后最后看到PASS表示成功。我make编译的时候有些警告语句,暂时忽略
结果1:
$ nvprof --version
nvprof: NVIDIA (R) Cuda command line profiler
Copyright (c) 2012 - 2016 NVIDIA Corporation
Release version 8.0.61 (21)
结果2:
=18836== NVPROF is profiling process 18836, command: ./a.out
Program Passed
==18836== Profiling application: ./a.out
==18836== Profiling result:
Time(%) Time Calls Avg Min Max Name
51.96% 327.65us 1 327.65us 327.65us 327.65us [CUDA memcpy DtoH]
36.34% 229.12us 2 114.56us 1.1520us 227.97us [CUDA memcpy HtoD]
11.70% 73.792us 1 73.792us 73.792us 73.792us simpleops_m_increment_
==18836== API calls:
Time(%) Time Calls Avg Min Max Name
98.96% 177.20ms 2 88.598ms 200.42us 177.00ms cudaMalloc
0.55% 978.66us 3 326.22us 8.5970us 693.78us cudaMemcpy
0.20% 357.62us 87 4.1100us 155ns 194.57us cuDeviceGetAttribute
0.17% 295.55us 2 147.78us 143.28us 152.27us cudaFree
0.09% 160.61us 1 160.61us 160.61us 160.61us cuDeviceTotalMem
0.02% 41.017us 1 41.017us 41.017us 41.017us cuDeviceGetName
0.01% 20.323us 1 20.323us 20.323us 20.323us cudaLaunch
0.00% 4.4230us 3 1.4740us 212ns 3.8400us cudaSetupArgument
0.00% 1.8870us 3 629ns 184ns 1.4580us cuDeviceGetCount
0.00% 1.7910us 1 1.7910us 1.7910us 1.7910us cudaConfigureCall
0.00% 883ns 3 294ns 190ns 406ns cuDeviceGet
**重要参考文献
http://notes.maxwi.com/2017/02/26/ubuntu-cuda8-env-set/