每次在服务器上配置环境都需要考虑 Pytorch 版本 / CUDA 版本 / GPU 驱动版本等诸多因素,因为 ⌈ \lceil ⌈Pytorch 只能下载指定 CUDA 版本的库 ⌋ \rfloor ⌋、 ⌈ \lceil ⌈GPU 只能使用特定版本的驱动 ⌋ \rfloor ⌋、 ⌈ \lceil ⌈GPU 有最高支持的 CUDA 版本限制 ⌋ \rfloor ⌋ 等等,本文在此梳理相关要素。
目录
- [一. 硬 / 软件环境](#一. 硬 / 软件环境)
-
- [1. GPU](#1. GPU)
- [2. GPU 驱动](#2. GPU 驱动)
- [3. CUDA](#3. CUDA)
- [4. Python](#4. Python)
- [5. Pytorch](#5. Pytorch)
- [6. Anaconda](#6. Anaconda)
- [二. Pytorch 安装](#二. Pytorch 安装)
一. 硬 / 软件环境
项目开发之前,需要检查计算机的硬 / 软件环境,包括 GPU、驱动、CUDA、Python、Pytorch、Anaconda 等。
1. GPU
GPU(Graphics Processing Unit,图形处理单元)是一种专门设计用于处理图形和图像数据的处理器,它是计算机中用于实时渲染图形、处理图像、执行计算密集型任务的关键组件之一。GPU 最初是为了图形渲染而设计的,但是随着技术的发展,它们的功能被拓展到了其他领域,如科学计算、人工智能和深度学习等。GPU 的并行处理能力使得它们在执行大规模并行计算任务时表现出色。
- 在图形处理方面,GPU负责处理三维图形数据,并将其转换为二维图像,然后输出到显示器上。它们通常配备了大量的专用图形处理核心,这些核心可以同时处理多个图形元素,如顶点、像素和纹理等,以实现快速的图形渲染和图像处理。
- 在科学计算和深度学习方面,GPU 的并行计算能力使其成为处理大规模数据集和复杂算法的理想选择。许多科学计算和机器学习任务可以通过 GPU 并行计算来加速处理速度,因为 GPU 可以同时执行大量相似的计算任务。
在所有工作开始之前,先检查计算机的 GPU 情况:
- 如果是本地,右击 "此电脑" -> 属性 -> 高级系统设置 -> 硬件 -> 设备管理器,如果 "显示适配器" 下有 NVIDIA 字样,就说明有 NVIDIA 显卡(左图),否则就是没有(右图):
也可以在任务管理器 -> 性能 -> GPU 中查看。Windows 系统还可以使用wmic path win32_videocontroller get caption
命令查看显卡信息; - 如果是服务器(一般默认 Linux 系统),可以直接使用
nvidia-smi
命令查看显卡的标号和型号:
2. GPU 驱动
GPU 驱动(Graphics Processing Unit Driver,图形处理单元驱动程序)是负责在操作系统和图形处理单元之间进行通信和协调的软件,主要功能包括:硬件控制、性能优化、兼容性支持、错误修复、功能扩展等。GPU 驱动程序通常由显卡制造商提供,例如 NVIDIA、AMD、Intel 等,用户可以从它们的官方网站或通过操作系统的自动更新功能获取最新的驱动程序。
GPU 驱动版本可以直接使用 nvidia-smi
命令查看:
想要知道合适的 GPU 驱动版本,可以访问 http://www.nvidia.com/Download/index.aspx 查询:
3. CUDA
CUDA(Compute Unified Device Architecture,计算统一设备架构)是由 NVIDIA 开发的并行计算平台和编程模型,旨在利用 NVIDIA GPU 的并行计算能力进行通用目的的计算。CUDA 使开发人员能够利用 GPU 的大量并行处理核心来加速计算任务,从而在科学计算、深度学习、机器学习、图形处理等领域获得更高的性能和效率。
CUDA 包括以下主要组件:
- CUDA 编程模型:CUDA 提供了一种简单而强大的编程模型,允许开发人员使用类似于 C 语言的 CUDA C 或 CUDA C++ 来编写并行计算任务。CUDA 编程模型使开发人员能够将计算任务分解为多个线程块和线程,并在 GPU 上并行执行这些线程;
- CUDA 运行时:CUDA 运行时是一组库和 API,用于在主机 CPU 和 GPU 之间管理数据传输、内存分配、线程调度等操作。开发人员可以使用 CUDA 运行时来启动 CUDA 核函数(在 GPU 上运行的函数)、分配和释放 GPU 内存、配置 GPU 执行参数等;
- CUDA 工具包:CUDA 工具包包括用于开发、调试和优化 CUDA 应用程序的一系列工具和实用程序。其中包括编译器、调试器、性能分析器、代码优化工具等,这些工具有助于开发人员更高效地利用 GPU 的并行计算能力;
- CUDA 核函数:CUDA 核函数是在 GPU 上并行执行的函数,可以由 CUDA 编程模型中的线程块中的多个线程同时执行。开发人员可以使用 CUDA C 或 CUDA C++ 编写 CUDA 核函数,并通过调用该函数在 GPU 上执行并行计算任务。CUDA C/C++ 语法见 CUDA C/C++ 教程一:加速应用程序。
CUDA 版本可以直接使用 nvcc --version
命令查看:
CUDA 版本会受到 GPU 限制,使用 nvidia-smi
命令可以查看 GPU 最高支持的 CUDA 版本号:
需要注意的是,CUDA 不是独立安装的,而是在安装 Pytorch 时一起安装的。
4. Python
现在一般使用的都是 Python 3.x,可以使用命令 python3 --version
或 python --version
检查版本:
5. Pytorch
Pytorch 分为 CPU 版本和 GPU 版本(+cuxxx
),只有带英伟达显卡的电脑才能安装 GPU 版本。可以使用 python -c "import torch; print(torch.__version__)"
或 python3 -c "import torch; print(torch.__version__)"
指令检查 Pytorch 版本:
6. Anaconda
Anaconda 是一个开源的 Python 和 R 语言的发行版,用于科学计算、数据分析、机器学习和大数据处理等领域。它包含了许多常用的数据科学工具和库,并提供了一个方便的包管理系统,使得用户可以轻松地安装、管理和更新各种数据科学工具和库。
Anaconda 包括以下主要组件:
- Python 和 R:Anaconda 自带 Python 和 R 语言的解释器,并预先安装了许多常用的数据科学包和库。这使得用户可以立即开始在 Python 或 R 中进行数据分析、科学计算和机器学习等任务。
- conda:conda 是 Anaconda 的包管理器和环境管理器。它可以用于安装、升级、删除软件包,并管理不同版本的软件包之间的依赖关系。conda 还允许用户创建、管理和切换不同的环境,以便在同一台机器上同时运行多个不同版本的软件。
- Jupyter Notebook:Jupyter Notebook 是一个交互式的笔记本环境,可以在网页浏览器中创建和共享文档,包括实时代码、可视化图形、文本和其他富媒体内容。
- Spyder:Spyder 是一个基于 Python 的集成开发环境,提供了丰富的编辑器、调试器和其他开发工具,适用于开发和调试 Python 代码。
正因为 Anaconda 集成了 Python、Jupyter Notebook、NumPy、Pandas、Matplotlib 等诸多数据科学工具和库,并且提供了简单易用的环境管理工具,可以轻松地创建、管理和切换不同的 Python 虚拟环境,Anaconda 在项目开发中被广泛使用。安装好 Anaconda 的计算机会自带一个基础环境,后续项目开发时每个项目需要的安装包不同,为了避免冲突,可以为每个项目配置一个虚拟环境,以 避免不同项目之间环境依赖的冲突。
服务器上一般都装有 Anaconda,可以使用 conda --version
命令检查版本:
本地 Windows 上安装 Anaconda 教程参考 2023最新pytorch安装(超详细版)。
虽然 conda 和 pip 都可以安装软件包,但有一些差别:
- 安装位置:
- 通过 pip 安装的 Python 软件包通常会被安装到 Python 解释器的
site-packages
目录下:Linux 中一般在/usr/local/lib/python3.x/site-packages/
下,Windows 中一般在C:\Python3.x\Lib\site-packages\
下;- 通过 conda 安装的 Python 软件包通常会被安装到 conda 环境下特定目录:默认环境一般在
/anaconda3/lib/python3.x/site-packages/
,conda 环境一般在/path/to/your/env/lib/python3.x/site-packages/
;- 软件包来源:
- pip 是 Python 的默认包管理工具,主要用于从 Python Package Index (PyPI) 安装和管理 Python 软件包;
- conda 是 Anaconda 发行版自带的包管理工具,它能够管理包括 Python 软件包在内的任何软件包,并提供了自己的软件仓库;
总的来说,pip 适用于管理 Python 包,而 conda 则更适用于管理整个软件环境。因此大多数情况下,项目开发会 使用 conda 创建虚拟环境 ,然后 使用 pip 安装软件包。
二. Pytorch 安装
-
安装 Pytorch 前,需要使用
pip uninstall torch torchvision
命令卸载之前的版本:
-
Pytorch 的安装需要考虑 GPU 支持的 CUDA 版本,比如上文 GPU 信息提示最高支持 12.2 版本 的 CUDA,就可以安装小于等于 12.2 版本的 CUDA 对应的 Pytorch。去 Pytorch 官网
INSTALL PYTORCH
下查询满足条件的 Pytorch 版本,如果想要安装旧版本的 Pytorch,点击Previous versions of PyTorch
:
-
搜索想要安装的 Pytorch 版本即可,以 1.13.1 为例:
Conda 下的是使用 conda 安装,Wheel 下的是使用 pip 安装;
-
选择符合操作系统和 CUDA 版本的下载指令下载即可:
如果网络问题下载缓慢,可以使用国内镜像:
镜像名 | 镜像地址 -- pytorch, torchvision, torchaudio |
---|---|
清华镜像 | https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/ |
北京外国语大学镜像 | https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/win-64/ |
阿里巴巴镜像 | http://mirrors.aliyun.com/anaconda/cloud/pytorch/win-64/ |
南京大学镜像 | https://mirror.nju.edu.cn/pub/anaconda/cloud/pytorch/win-64/ |