本文旨在介绍 NVIDIA 的 CUDA (Compute Unified Device Architecture, 统一设备计算架构) 在 Linux 系统下的安装步骤及使用指南,主要任务包括:使用 nvcc 编译器进行 GPU 加速的 C/C++ 编程
使用 Numba, PyCUDA, PyTorch, TensorFlow 等扩展库进行 GPU 加速的 Python 编程
CUDA 简介
CUDA 是由 Nvidia 公司开发的并行计算平台和应用程序接口,软件开发者可以利用支持 CUDA 软件的 GPU 进行通用计算。CUDA 可以直接链接到 GPU 的虚拟指令集和并行计算单元,从而在 GPU 中完成内核函数的计算。
CUDA 提供 C/C++/Fortran 接口,也有许多高性能计算或深度学习库提供包装后的 Python 接口。开发者们可根据实际需要 (高性能计算, 深度学习, 神经网络等) 选择适当的编程语言。
CUDA 安装步骤
一般而言,在 Linux 下安装和使用 CUDA 的流程如下:安装 NVIDIA Driver,即显卡驱动
安装 CUDA Toolkit
使用 C/C++ 编译器或 Python 扩展库进行 GPU 加速的 CUDA 编程
本文后半部分将根据以上流程介绍 CUDA 安装和使用的详细步骤。
安装 NVIDIA Driver 和 CUDA Toolkit
首先检查系统是否有支持 CUDA 编程的 GPU。可使用
lspci | grep -i nvidia
命令来查看当前系统的 GPU 型号。
本人使用的操作系统由 Google Cloud Compute Engine 生成的包含 GPU 的虚拟机实例提供,系统版本为 Ubuntu 16.04 LTS,GPU 为 NVIDIA Tesla K80 (1个)。上述命令输出
00:04.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)注意:与通常在本地主机上运行的虚拟机不同,这里的虚拟机直接运行在 Google 的云服务器上,可以为其申请 GPU 配额并安装 NVIDIA Driver 和 CUDA Toolkit.
传统上,安装 NVIDIA Driver 和 CUDA Toolkit 的步骤是分开的,但实际上我们可以直接安装 CUDA Toolkit,系统将自动安装与其版本匹配的 NVIDIA Driver。下面我们讲述安装 CUDA Toolkit 的方法。
在安装 CUDA Toolkit 前,要确保系统安装了 gcc 和 make。如果希望使用 C++ 进行 CUDA 编程,需要安装 g++。如果想要运行 CUDA 例程序,需要安装相应的依赖库。
sudo apt update # 更新 apt
sudo apt install gcc g++ make # 安装 gcc g++ make
sudo apt install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev freeglut3-dev # 安装依赖库
在 CUDA Toolkit 的下载页面选择系统版本和安装方式,下载并运行 runfile。CUDA Toolkit 下载页面
下载 CUDA Toolkit (文件较大):
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
安装 CUDA Toolkit (时间较长):
sudo sh cuda_10.1.243_418.87.00_linux.run
安装好 CUDA Toolkit 后,屏幕上将输出:
Driver: Installed
Toolkit: Installed in /usr/local/cuda-10.1/
Samples: Installed in /home/abneryepku/
Please make sure that
- PATH includes /usr/local/cuda-10.1/
- LD_LIBRARY_PATH includes /usr/local/cuda-1