gcc不能识别cuda的<<<>>>该怎么调用gpu程序

gcc不能识别cuda的<<<>>>该怎么调用gpu程序,第1张

你袜镇含好, CUDA默认的都是pageabled的memory,page-locked也就是pinned memory可以加快host和device之间的数据旅稿传输速度,但是使用太多的page-locked的memory会带来整个程序的效率降低。如果程序中存告笑在频繁的cudaMemcpy

PRE-INSTALLATION ACTIONS 安装前准备

1.1.Verify You Have a CUDA-Capable GPU

终端输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息

去CUDA的官网岩镇首http://developer.nvidia.com/cuda-gpus查看自己的GPU版本是否在CUDA的支持列表中

1.2.Verify You Have a Supported Version of Linux 检查自己的linux版本是否支持,我安装的是ubuntu14.04版本的,这个就没有问题

在终端中输入: $ uname -m &&cat /etc/*release

终端显示结果如下所示:

1.3. Verify the System Has gcc Installed

在终端中输入: $ gcc --version

1.4. Verify the System has the Correct Kernel Headers and Development Packages Installed

在终端中输入: $ uname –r 可以查看自己的kernel版本信息

在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)

可以安装对应kernel版本的kernel header和package development

这四个小步骤我都比较顺利,安装好ubuntu后这些都装好了,如果在某一步中有问题,可以参照官方文档进行解决。

runfile安装cuda 下载链接https://developer.nvidia.com/cuda-downloads

2.1.禁用 nouveau

终端中运行粗数:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。

Ubuntu的nouveau禁用方法:

在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入以下两行内容:

blacklist nouveau

options nouveau modeset=0

在终端中输入:$ sudo update-initramfs –u

设置完毕可以再次运行

$ lsmod | grep nouveau 检查是否禁用成功

如果运行后没有任何输出,则代表禁用成功(如果还有输出,表示没有禁用成功,不过也不要担心,可以重启电脑,再次运行该命令一般情况下会显示禁用成功)。

2.2.重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户

2.3.在text mode中输入

$ sudo service lightdm stop 关闭图形化界面

2.4.切换到cuda安装文件的路径

运行$ sudo sh cuda_7.5.18_linux.run

一般下载好cuda安装包后直接放在home目录下,就可以按照上面的代码运行了,建议这么做。

遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以选择yes)。其他都选择yes或者默认安装成功后,会显示installed,否则会显示failed。

2.5. 输入 $ sudo service lightdm start 重新启动图形化界面。

Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。

2.6. 重启电脑。检查Device Node Verification。

检查路径~/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)

如果没有的话,旅源可以参考官方文档里的指导步骤,进行添加。

添加过程:

a)在home下创建一个文档,命名位modprobe,不要后缀,文档的内容如下:

#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]then

# Count the number of NVIDIA controllers found.

NVDEVS=`lspci | grep -i NVIDIA`

N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`

NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`

for i in `seq 0 $N`do

mknod -m 666 /dev/nvidia$i c 195 $i

done

mknod -m 666 /dev/nvidiactl c 195 255

else

exit 1

fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]then

# Find out the major device number used by the nvidia-uvm driver

D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0

else

exit 1

fi

b)将该文件复制到/etc/init.d目录下

终端输入: $ sudo chmod 755 /etc/init.d/modprobe

d)执行如下命令将脚本放到启动脚本中去。

终端输入: $ cd /etc/init.d

$ sudo update-rc.d modprobe defaults 95

注意:数字95其实可以随便设置的。

e)关机然后重新启动,去~/dev下面查看,不出意外此时应该有nvidia*系类文件了。

对于2.6的说明:很有必要说一下不管怎么搞我的nvidia*文件总是出现不了,所以我放弃,不过好像并没有太大的影响。这一点根据情况大家自己试试吧。

2.7. 设置环境变量。

终端中输入 $ sudo gedit /etc/profile

在打开的文件末尾,添加以下两行:

export PATH=/usr/local/cuda-7.5/bin/:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH

2.8. 重启电脑,检查上述的环境变量是否设置成功。

终端中输入 : $ env

在输出的环境变量中检查有无上述 设置的变量,如果有则代表设置成功。

3. 检查cuda是否安装成功。

3.1.检查 NVIDIA Driver是否安装成功

终端输入 :$ cat /proc/driver/nvidia/version 会输出NVIDIA Driver的版本号

3.2检查 CUDA Toolkit是否安装成功

终端输入 : $ nvcc –V 会输出CUDA的版本信息

3.3尝试编译cuda提供的例子

切换到例子存放的路径,默认路径是 ~/NVIDIA_CUDA-7.5_Samples

终端输入:$ make

注意:这里的make *** 作是将Samples文件夹下所有的demo都编译了一遍,所以比较耗时,如果仅仅想测试某个例子,可以进入相应的文件夹去编译即可。

如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。

注意:我第一次运行的时候就报错了,错误是缺少一些依赖库,一般情况下也就是这个问题,按照如下方式安装就好,其实也没必要都安装,不过安装上也不会报错:

$ sudo apt-get install freeglut3-dev

$ sudo apt-get install build-essential

$ sudo apt-get install libx11-dev

$ sudo apt-get install libxmu-dev

$ sudo apt-get install libxi-dev

$ sudo apt-get install ibgl1-mesa-glx

$ sudo apt-get install llibglu1-mesa

$ sudo apt-get install libglu1-mesa-dev

安装好后,在终端输入: $ make

成功后,NVIDIA_CUDA-7.5_Samples文件夹下会出现一个bin文件夹。运行编译生成的二进制文件。

编译后的二进制文件 默认存放在~/NVIDIA_CUDA-7.5_Samples/bin中。

Ubuntu 16.04安装 CUDA7.5

作者:autocyz

在介绍Ubuntu 16.04安装 CUDA7.5开始前,先辨析几个概念GPU、NVIDIA、NVIDIA驱动、CUDA、cudnn等,这些概念对于一个新手来说肯定是很晕的,正如我当初一样,所以我这里就稍微介绍一下这几个概念:

GPU:Graphics Processing Units,也就是我们常说的显卡。现在的笔记本或者台式机都会有显卡,但是能够让我们用来做并行计算的真正的GPU就只有NVIDIA出产的GPU了。

NVIDIA:GPU生产厂商,在运算GPU处于垄断地位。

NVIDIA驱动:就是NVIDIA生产的GPU想在电脑上正常使用所需的驱祥和纳动。

CUDA:Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并-行计算架构,该架构使GPU能够解决复杂的计算问题。我们想使用GPU进行深度学习运算的时候,必须要用到这个运算平台。

cudnn:CuDNN是NVIDIA专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等.

Ubuntu 16.04安装cuda7.5

部分参照:http://www.afterimage.top/2016/05/%E9%85%8D%E7%BD%AEcuda7-5-ubuntu-16-04-opencv3-1/

在安装之前,先说一下本人工作站的设备配置(主要是GPU的):

设备上一共有三块GPU,一快是专门用来做显示的NVS310

两块用来做运算的GeForce GTX TITIAN X

第一步:选择最新的nvidia驱动(很重要!!!)

先打开计算机中的“软件和更新”,查看“附加驱动”,选择nvidia的驱动为最新的驱动。更新完之后最好重启一下。

我曾经遇到一些错误,就是因为我的NVIDIA驱动太老了,而cuda7.5则依赖于比较新的驱动。

第二步:下载cuda

去官网https://developer.nvidia.com/cuda-downloads 下载,选棚陵择Linux——ubuntu——15.04(我安装的时候还只支持到15.04,没有支持16.04版本的)——runfile(local)

第三步:安装PPA软件管理包工具

什么是 PPA?

PPA,表示 Personal Package Archives,也就是个人软件包集。

有很多软件因为种种原谨没因,不能进入官方的 Ubuntu 软件仓库。 为了方便 Ubuntu 用户使用,launchpad.NET 提供了 ppa,允许用户建立自己的软件仓库, 自由的上传软件。PPA 也被用来对一些打算进入 Ubuntu 官方仓库的软件,或者某些软件的新版本进行测试。PPA 上的软件极其丰富,如果 Ubuntu 官方仓库中缺少您需要的某款软件,可以去 PPA 上找找看。

我们安装的cuda可能在Ubuntu仓库中木有,所以用PPA来下载。

sudo add-apt-repository ppa:xorg-edgers/ppa

sudo apt-get update

第四步:执行cuda的.run文件

cd到下载的.run文件夹执行:

sudo ./cuda_7.5.18_linux.run --override

第五步:选择安装选项

选择安装选项:(注意:应为之前已经安装过NVIDIA Display Driver的驱动了(如第一步),所以这里选择不安装NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39。如果选择安装会出现错误,并且导致安装CUDA失败。

Do you accept the previously read EULA? (accept/decline/quit): accept

You are attempting to install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n

Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y

Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]:

Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y

Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y

Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-7.5

Installing the CUDA Toolkit in /usr/local/cuda-7.5 ...

Finished copying samples.

===========

= Summary =

===========

Driver: Not Selected

Toolkit: Installed in /usr/local/cuda-7.5

Samples: Installed in /usr/local/cuda-7.5

第六步: 添加cuda到环境变量里面

sudo nano /etc/profile.d/cuda.sh

export PATH=$PATH:/usr/local/cuda/bin

sudo nano /etc/ld.so.conf.d/cuda.conf

/usr/local/cuda/lib64

source /etc/ld.so.conf.d/cuda.confcd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery

make

sudo ./deviceQuery

sudo ldconfig

第七步:将GCC降级或者采用暴力的方式让cuda7.5支持高版本GCC。

由于cuda7.5不支持gcc4.9以上的版本,而ubuntu16.04默认的是gcc5,这会造成安装的失败,解决方法有两种,

1、对gcc进行降级,让系统采用低版本的GCC,但是这种方式有一定的问题,因为Ubuntu16.04很多系统文件默认是使用gcc5编译的,因此如果用降级的方法安装完cuda后,在后期安装caffe的时候,可能会报类似于undefined的错误,这是因为你的gcc版本低,其所需的系统文件找不到。.

sudo apt-get install g++-4.9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30

sudo update-alternatives --set cc /usr/bin/gcc

sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30

sudo update-alternatives --set c++ /usr/bin/g++

2、这种方式有点类似于黑箱方式,即强制让他不报错。编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:

#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为

//#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

上面就是设置gcc版本优先级的。20和10就代表你所使用的gcc、g++的版本优先级。

第八步:测试是否安装成功

执行如下指令,正常情况下会出现设备中所有的GPU,并把每个GPU的信息打印出来。

nvidia-smi

如果没有出现错误之类的话,就说明安装成功了。

第九步:测试cuda的Samples

cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery

make

sudo ./deviceQuery

如果显示的是一些关于GPU的信息,则说明安装成功了。

Ubuntu 14.04 安装配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm

Ubuntu 12.04配置NVIDIA CUDA5.5实录 http://www.linuxidc.com/Linux/2014-10/107502.htm

Ubuntu安装Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm

关于Ubuntu 12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu 12.04 安装 CUDA-5.5

Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm

在Ubuntu 14.04上配置CUDA+Caffe+cuDNN+Anaconda+DIGITS http://www.linuxidc.com/Linux/2016-11/136775.htm

Ubuntu16.04下CUDA8.0+Caffe安装配置过程 http://www.linuxidc.com/Linux/2017-01/139313.htm

Ubuntu 14.04下CUDA8.0 + cuDNN v5 + Caffe 安装配置 http://www.linuxidc.com/Linux/2017-01/139300.htm

Ubuntu 16.04+Nvidia GTX 1080+CUDA8.0 深度学习环境配置

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11966866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存