使用 GPU 包#
Anaconda Distribution 包含多个使用 GPU 作为加速器以提高性能的软件包,有时性能会提高五倍或更多。这些软件包可以显著改善机器学习和模拟用例,尤其是深度学习。阅读更多关于在 Anaconda 中开始使用 GPU 计算的信息。
虽然 AMD 和 NVIDIA 都是主要的 GPU 供应商,但 NVIDIA 目前是机器学习和云计算最常见的 GPU 供应商。此页面上的信息仅适用于 NVIDIA GPU。
GPU 兼容性#
GPU 加速需要 TensorFlow 等项目的作者为可以在 GPU 上执行的算法实现 GPU 特定的代码路径。GPU 加速项目将调用 NVIDIA 特定的库以用于标准算法,或使用 NVIDIA GPU 编译器来编译自定义 GPU 代码。只有项目作者专门为 GPU 使用修改的算法才会被加速,而项目的其余部分仍将在 CPU 上运行。
对于大多数软件包,GPU 支持要么是编译时选择,要么是运行时选择,从而允许软件包的变体可用于仅 CPU 使用。当 GPU 支持是编译时选择时,Anaconda 通常需要构建软件包的两个版本,以允许用户在仅在 CPU 上运行的项目的“常规”版本和在 GPU 上运行的项目的“启用 GPU”版本之间进行选择。
由于项目作者启用 CUDA 支持的方式不同,因此没有通用的方法来检测软件包中的 GPU 支持。对于许多启用 GPU 的软件包,都依赖于 cudatoolkit
软件包。其他软件包(如 Numba)没有 cudatoolkit
依赖项,因为它们可以在没有 GPU 的情况下使用。
硬件要求#
NVIDIA 在 2006 年发布了用于 GPU 编程的 CUDA API,自那时以来发布的所有新 NVIDIA GPU 均具有 CUDA 功能,而与市场无关。虽然过去 10 年发布的任何 NVIDIA GPU 在技术上都可以与 Anaconda 配合使用,但以下是机器学习,特别是模型训练用例的最佳选择
Tesla P100 或 V100
Titan RTX
GeForce RTX 3050
各种最新的 Quadro 型号
部署的模型并不总是需要 GPU。当部署的模型需要 GPU 时,还有其他 Tesla GPU 型号比训练更适合推理,例如 Tesla P4、P40 和 T4。
云和本地数据中心部署需要 Tesla 卡,而 GeForce、Quadro 和 Titan 选项适用于工作站。
大多数用户将拥有 Intel 或 AMD 64 位 CPU。Anaconda 建议 CPU 内存至少是 GPU 内存的两到四倍,并且至少有 4 个 CPU 核心来支持模型训练前的数据准备。IBM POWER 8/9 系统也有数量有限的具有 GPU 支持的 Anaconda 软件包。
软件要求#
CUDA 的最佳性能和用户体验是在 Linux 系统上。Windows 也受支持。自 2014 年以来,没有发布过配备 NVIDIA GPU 的 Apple 计算机,因此它们通常缺乏机器学习应用程序的内存,并且仅支持 GPU 上的 Numba。
在 Windows 上使用 WSL 安装 Linux
Windows Subsystem for Linux (WSL) 允许 Windows 用户安装 Linux 发行版并运行 Linux 应用程序、使用 Linux 命令行工具,以及更轻松地与 Linux 优先框架(直接在 Windows 上)进行交互。通过 Anaconda 提供的几个启用 GPU 的软件包要么仅适用于 Linux,要么主要针对 Linux 环境进行了优化。WSL 可以为 Windows 用户提供一种访问这些依赖于 Linux 的软件包的潜在方法。
注意
虽然 WSL 可用于访问启用 GPU 的软件包,但 Anaconda 官方不支持此工作流程。选择此方法的风险由用户自行承担。对于那些特别关注在 Windows 上使用 GPU 支持的 PyTorch 的用户:Anaconda 正在积极开发具有 CUDA 支持的 PyTorch 的原生 Windows 版本,该版本将在即将发布的版本中提供。
要在 WSL 上运行 CUDA 并安装 Linux,请按照NVIDIA 的 CUDA on WSL 用户指南中的步骤操作。您可以在Microsoft 的 WSL 文档中找到有关安装和使用 WSL 的更多信息。
安装完成后,启动 WSL,并按照 Linux 说明安装Anaconda Distribution或Miniconda。请注意,即使您已经在 Windows 上安装了 Anaconda 或 Miniconda,这也需要全新安装,并且您需要复制要在 Linux 子系统中使用的任何环境。
Anaconda 要求用户已安装最新的 NVIDIA 驱动程序,该驱动程序满足下表中的版本要求。Anaconda 不需要安装 CUDA SDK。
Ubuntu 和其他一些 Linux 发行版附带了用于 NVIDIA GPU 的第三方开源驱动程序 Nouveau。CUDA 需要将 Nouveau 驱动程序替换为官方闭源 NVIDIA 驱动程序。
所有其他 CUDA 库都作为 conda 软件包提供。
启用 GPU 的软件包是针对特定版本的 CUDA 构建的。当前支持的版本包括 CUDA 11.8、12.0、12.1 和 12.2。NVIDIA 驱动程序设计为向后兼容旧版本的 CUDA,因此具有 NVIDIA 驱动程序版本 525.60.13 的系统可以支持 CUDA 12.0 软件包及更早版本。因此,如果用户未使用最新的 NVIDIA 驱动程序,他们可能需要通过选择其环境中 cudatoolkit
conda 软件包的版本来手动选择特定的 CUDA 版本。要选择 cudatoolkit
版本,请将诸如 cudatoolkit=12.1
之类的选择器添加到版本规范中。
所需的 NVIDIA 驱动程序版本,摘自NVIDIA CUDA Toolkit 发行说明
CUDA 版本 |
Linux x86_64 驱动程序版本 |
Windows x86_64 驱动程序版本 |
---|---|---|
CUDA 11.8.x |
>= 450.80.02 |
>= 452.39 |
CUDA 12.0.x |
>= 525.60.13 |
>= 527.41 |
CUDA 12.1.x |
>= 525.60.13 |
>= 527.41 |
CUDA 12.2.x |
>= 525.60.13 |
>= 527.41 |
有时,特定的 GPU 硬件代系具有最低 CUDA 版本。截至 2018 年 8 月 27 日,唯一相关的约束是 Tesla V100 和 Titan V(使用“Volta”GPU 架构)需要 CUDA 9 或更高版本。
可用软件包#
TensorFlow#
TensorFlow 是一个通用的机器学习库,但在深度学习应用程序中最受欢迎。Anaconda 中 tensorflow
软件包有三个受支持的变体,其中一个是 NVIDIA GPU 版本。这通过安装元软件包 tensorflow-gpu
来选择。
conda install tensorflow-gpu
其他软件包(如 Keras)依赖于通用的 tensorflow
软件包名称,并将使用已安装的任何 TensorFlow 版本。这使得在环境中切换变体变得简单明了。
PyTorch#
PyTorch 是另一个专注于深度学习的机器学习库。PyTorch 在运行时检测 GPU 的可用性,因此用户无需安装不同的软件包即可获得 GPU 支持。
conda install pytorch
Caffe(仅限 Linux)#
Caffe 是最早流行的深度学习库之一。
conda install caffe-gpu
Chainer/CuPy#
Chainer 是一个深度学习库,它使用 NumPy 或 CuPy 进行计算。
conda install chainer
Chainer 的配套项目 CuPy 是 NumPy API 的 GPU 加速克隆,可以用作 NumPy 的直接替代品,只需对用户代码进行少量更改。安装 CuPy 后,Chainer 将被 GPU 加速。CuPy 也可以单独用于通用数组计算。
conda install cupy
XGBoost(仅限 Windows/Linux)#
XGBoost 是一个机器学习库,它实现了梯度提升决策树。几种形式的树训练已通过 GPU 加速。
conda install py-xgboost-gpu
MXNet(仅限 Linux)#
MXNet 是一个由各种行业合作伙伴(最著名的是 Amazon)支持的机器学习库。与 TensorFlow 类似,它有三个变体,其中 GPU 变体由 mxnet-gpu
元软件包选择。
conda install mxnet-gpu
Numba#
Numba 是 Python 函数的通用 JIT 编译器。当 cudatoolkit
软件包存在时,它提供了一种以纯 Python 语法实现自定义 GPU 算法的方法。
conda install numba cudatoolkit
Enterprise 中的 GPU 支持#
当集群具有包含 GPU 的资源配置文件时,可以在数据科学和 AI 工作台项目中使用启用 GPU 的 conda 软件包。有关更多详细信息,请参阅Workbench 常见问题解答的 GPU 支持部分。