linux cuda编程(学习记录)
1.环境配置
1.1系统环境
系统 | 显卡 |
---|---|
ubuntu22.04 | NVIDIA GeForce RTX 2060 |
1.2安装 NIVIDIA驱动程序(包括Dirver CUDA)
1.更新软件列表、安装必要软件、依赖
sudo apt-get update #更新软件列表
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
2.查看GPU型号
lspci | grep -i nvidia
3.官网下载对应驱动
–官方驱动下载地址
4.卸载原有驱动
sudo apt-get remove --purge nvidia* # 或者nvidia-*
5.禁用nouveau(nouveau是通用的驱动程序)
sudo gedit /etc/modprobe.d/blacklist.conf 或者(blacklist-nouveau.conf)
在打开的blacklist.conf末尾添加如下,保存文本关闭
blacklist nouveau
options nouveau modeset=0
重启后在终端输入如下,没有任何输出表示屏蔽成功
lsmod | grep nouveau
6.停止当前显示器
sudo telinit 3
7.禁用gdm3显示管理器
sudo service gdm3 stop
8.cd进入存放驱动的目录
sudo chmod 777 [驱动名称] #为驱动赋予可执行权限
sudo ./[驱动名称] #安装
安装中的问题:
The distribution-provided pre-install script failed! Are you sure you want to continue?
[continue installation]
Nvidia's 32-bit compatibility libraries?
[NO]
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
[Yes]
9.安装结束
sudo service gdm3 start
10.使用nvidia-smi
命令查看安装版本
1.3安装CUDAToolkit
1.利用wget进行下载
2.安装依赖
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.执行安装
sudo sh [安装包]
安装过程中输入accept 按空格将驱动取消勾选后安装
安装完成后添加环境变量
vim ~/.bashrc
按i
键在文件末尾加入(将12.1换成安装版本)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.1/lib64
export PATH=$PATH:/usr/local/cuda-12.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.1
按Esc
后输入:wq
退出
更新环境变量(source命令是使该配置文件立刻生效,而无需重启系统)
source ~/.bashrc
执行nvcc -V
命令查看刚刚安装的CUDA版本
1.4 安装CUDNN
下载 Local Installer for Linux x86_64 (Tar) 或 Local Installer for Ubuntu22.04 x86_64 (Deb)
官方安装说明
对于 Ubuntu 用户,要安装 zlib 包,请运行:
sudo apt-get install zlib1g
1.4.1 Tar 文件安装
在发出以下命令之前,您必须替换 X.Y
和 v8.x.x.x
包含您的特定 CUDA 和 cuDNN 版本以及软件包日期。
- 导航到您的
<cudnnpath>
包含 cuDNN tar 文件的目录。 - 解压缩 cuDNN 包。
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
- 将以下文件复制到 CUDA 工具包目录中。
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
1.4.2 Debian 本地安装
下载Debian本地存储库安装包。 在发出以下命令之前,您必须替换 X.Y
和 8.x.x.x
使用您的特定 CUDA 和 cuDNN 版本。
- 导航到您的
downloads
包含 cuDNN Debian 本地安装程序文件的目录。 - 启用本地存储库
sudo dpkg -i cudnn-local-repo-${distro}-8.x.x.x_1.0-1_amd64.deb
- 导入 CUDA GPG 密钥
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
- 刷新存储库元数据
sudo apt-get update
- 安装运行时库
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
- 安装开发者库
sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
- 安装代码示例
sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
1.4.3 在 Linux 上验证安装
要验证 cuDNN 是否已安装并正常运行,请编译 mnistCUDNN
样本位于 /usr/src/cudnn_samples_v8Debian
文件中的目录。
- 将 cuDNN 示例复制到可写路径
cp -r /usr/src/cudnn_samples_v8/ $HOME
- 转到可写路径
cd $HOME/cudnn_samples_v8/mnistCUDNN
- 编译
mnistCUDNN
样本make clean && make
- 执行
mnistCUDNN
样本
如果 cuDNN 在您的 Linux 系统上正确安装并运行,您将看到类似以下内容的消息:./mnistCUDNN
Test passed
使用cuda编写helloworld
- 在主目录下创建
cuda_program
文件夹 - 在该文件夹下按
右键
选择在终端打开
- 在终端输入
sudo vim helloworld.cu
- 按
i
键进入输入模式 - 输入下面的代码
#include <stdio.h>
__global__ void hello_from_gpu()
{
printf("Hello World from the GPU!\n");
}
int main(void)
{
hello_from_gpu<<<1, 1>>>();
cudaDeviceSynchronize();
return 0;
}
- 按
Esc
进入一般模式后按:wq
保存退出 - 在终端输入
nvcc helloworld.cu -o helloworld
- 输入
./helloworld
- 完成helloworld输出
ubuntu双系统出现的问题及解决方法
1.启动顺序更改
-
在终端输入
sudo gedit /etc/default/grub
-
将第6行
GRUB_DEFAULT=0
的0
更改为2
(我的windows排在开机选择系统的第3位所以改为2)
注:在vim下按i
键进入输入模式、按Esc
键回到一般模式、在一般模式中输入:wq
保存并离开。 -
在终端输入
sudo update-grub
更新grub文件
2. windows系统时间错误
解决办法:
在终端依次输入
sudo apt-get install ntpdate //在Ubuntu下更新本地时间
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc //将本地时间更新到硬件上
之后在windows下选择自动更新时间即可
3.ubuntu系统对于windows下的磁盘分区没有写入权限
解决办法:在windows下关闭快速启动