您的位置:

WSL+CUDA:提升Linux下GPU计算能力

随着GPU的日益普及,越来越多的科学计算和机器学习任务需要在GPU上运行,但是Linux系统下的NVIDIA显卡驱动不支持CUDA,使得在Linux上进行GPU计算非常困难。

但是,有一种新的解决方案:在Windows Subsystem for Linux(WSL)中安装CUDA支持,从而在Linux环境下轻松实现GPU加速计算。

一、WSL简介

WSL是一种在Windows 10上运行Linux二进制文件的子系统,由Microsoft在Windows 10 Anniversary Update发布时首次推出。在WSL中,用户可以在Windows环境下使用大多数Linux命令行工具和软件包。

WSL原本是为了方便开发者在Windows系统上使用更多Linux工具而设计的,但是它的出现也为需要在Windows上运行Linux软件的用户带来了方便。

二、WSL中安装CUDA

WSL中安装CUDA非常简单,只需要完成以下几个步骤即可。

1. 安装WSL和Linux发行版

首先需要在Windows 10上启用WSL功能并安装想要的Linux发行版。这可以通过在Windows PowerShell中运行以下命令来完成:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

接下来需要从Microsoft Store下载和安装Linux发行版,例如Ubuntu或Debian。

2. 安装NVIDIA显卡驱动和CUDA

下载最新的NVIDIA显卡驱动和对应版本的CUDA Toolkit,并在Linux中安装。以下是Ubuntu 20.04中安装CUDA 11.1的命令:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda-repo-ubuntu2004-11-1-local_11.1.1-455.32.00-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-1-local_11.1.1-455.32.00-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-1-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

三、在WSL中使用CUDA

在安装完CUDA后,可以在WSL中使用GPU加速的CUDA应用程序。以下是一个简单的CUDA C++程序:

#include <stdio.h>
#include <stdlib.h>

__global__ void cuda_hello() {
    printf("Hello, CUDA world! from thread %d\n", threadIdx.x);
}

int main() {
    cuda_hello<<<1, 10>>>(); // 启动10个线程
    cudaDeviceSynchronize(); // 等待所有线程结束
    return 0;
}

在Ubuntu中编译上面的代码:

nvcc hello.cu -o hello

接下来就可以运行这个CUDA程序:

./hello

输出如下:

Hello, CUDA world! from thread 0
Hello, CUDA world! from thread 1
Hello, CUDA world! from thread 2
Hello, CUDA world! from thread 3
Hello, CUDA world! from thread 4
Hello, CUDA world! from thread 5
Hello, CUDA world! from thread 6
Hello, CUDA world! from thread 7
Hello, CUDA world! from thread 8
Hello, CUDA world! from thread 9

四、WSL+CUDA的优势

WSL+CUDA的优势有如下几点:

1. 融合Windows和Linux优势

WSL+CUDA将Windows和Linux两个操作系统融合在一起,既可以使用Windows熟悉的界面和工具,又可以在Linux下进行GPU计算。

2. 节省资源和空间

由于WSL+CUDA是在Windows下使用,不需要额外的物理设备,可以节省物理资源和空间。

3. 提高效率和便利性

使用WSL+CUDA可以在Windows和Linux环境下快速切换,提高用户的工作效率和便利性。

五、总结

WSL+CUDA是一种在Windows环境下利用WSL实现GPU加速计算的解决方案。使用WSL+CUDA可以在WSL中安装CUDA,从而在Linux环境下轻松实现GPU加速计算。WSL+CUDA融合了Windows和Linux的优势,节省资源和空间,提高效率和便利性。