Opensuse Leap 15.6 + P104显卡 安装Cuda环境

忠告

首先敬告各位,Opensuse leap对于Nvidia的驱动支持安装很不方便并且比较老旧,我个人还是建议切换到Debian系来做开发,会方便的多,企业使用Debian/Ubuntu,个人用户可以用LinuxMint。

安装显卡驱动

  1. 添加Nvidia的软件源:sudo zypper addrepo --refresh 'https://download.nvidia.com/opensuse/leap/$releasever' NVIDIA

  2. 安装驱动,因为P104是一张非常老的卡了, G06的驱动无法使用,我们安装nvidiaG05

  • 检索判断是否存在可用软件包:zypper se x11-video-nvidiaG0* nvidia-video-G05*

  • 安装驱动包:zypper install nvidia-video-G06

  • 判断安装是否成功: nvidia-smi会列出显卡信息。

  1. 安装Cuda:请注意此老版本驱动只能适配Cuda11版本,所以下载Cuda11.8.历史版本链接

    复制代码
      wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-opensuse15-11-8-local-11.8.0_520.61.05-1.x86_64.rpm
      sudo rpm -i cuda-repo-opensuse15-11-8-local-11.8.0_520.61.05-1.x86_64.rpm
      sudo zypper refresh
      sudo zypper install -y cuda
  2. 将nvcc程序手动移动/链接到/usr/bin目录下,sudo ln -s /usr/local/cuda/bin/nvcc /usr/bin/nvcc,并执行nvcc命令

  3. 写个小程序测试以下:

    #include <stdio.h>

    void global gpu_print(){
    const int bid = blockIdx.x;
    const int tid = threadIdx.x;

    复制代码
     const int id = threadIdx.x + blockIdx.x*blockDim.x;
    
     printf("%s, block %d, thread %d, idx %d\n", "Hello world GPU",bid,tid,id);

    }

    int main(){
    gpu_print<<<2,2>>>();
    cudaDeviceSynchronize();
    }

执行编译: nvcc test.cu -o test,测试结果:./test

可能遇到的问题

注:系统请不要轻易升级内核,否则会导致cuda和nvidia驱动出现问题,如果不小心升级了,可以使用以下命令进行解决:

复制代码
sudo apt install dkms
sudo dkms install -m nvidia -v <驱动版本例如 525.147.05>