首页 > 解决方案 > Windows10 + Ubuntu 20.04 上的 CUDA 问题

问题描述

我有一台带有 Nvidia GPU - MX250 的笔记本电脑,我想编写和执行用 CUDA 编写的代码。我在 Windows 10 上安装了一个 Ubuntu 20.04 LTS 模拟器,即来自 Microsoft 商店的这个应用程序 - https://ubuntu.com/tutorials/ubuntu-on-windows#1-overview

我已经安装了nvcc工具包,安装的版本是

nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.2431

我正在尝试运行基本示例,例如官方教程中的规范 vec_add 示例。代码编译没有问题,但是,在运行时,使用以下宏包装代码后:

#define CATCH_ERROR(rhs) cudaError_t status = rhs; \
if(rhs != cudaSuccess)  printf("%s", cudaGetErrorString(status));

// Allocate vectors in device memory
CATCH_ERROR(cudaMalloc(&d_a, size));
cudaMalloc(&d_b, size);
cudaMalloc(&d_c, size);

我收到一条消息 - no CUDA-capable device is detected。纠正我,如果我错了,但据我了解,UNIX 的 NVIDIA 驱动程序通常附带 nvidia-cuda-toolkit。我该怎么做才能让 Ubuntu 看到 GPU,或者在安装在 Windows 10 之上的 Ubuntu 子系统上没有办法做到这一点。

我将不胜感激任何帮助!

标签: c++ubuntucudanvidiawindows-subsystem-for-linux

解决方案


此建议是在没有模拟器的情况下尝试的替代方法

https://sourceforge.net/projects/toysbox/files/bionic-nvidia/ubuntu-20.04-5.4.0-26-generic-nvidia-450.57-primeselect.iso

它是安装了 nvidia-450.57 的实时 iso-image,因此您可以直接运行您的 cuda;唯一的要求是设置 PATH 和 LD_LIBRARY_PATH 以使其了解您的 cuda 运行时路径;特别是不要忘记一个链接,所以 cuda 似乎可以在 /usr/local/cuda/bin 找到它的编译器

只需在 USB 记忆棒上使用它,或者使用 grub 环回机制从 iso 映像启动。


推荐阅读