0. 教程目标
这篇教程面向刚开始做 AI 开发、模型部署、GPU 服务器配置的新手,系统串联以下核心组件:

组件 | 一句话理解 | 英伟达显卡真正执行大规模并行计算的硬件显卡驱动操作系统控制显卡的底层软件CUDA让程序使用 NVIDIA GPU 做通用计算的平台cuDNNNVIDIA 专门为深度学习优化的加速库PyTorch常用深度学习框架,训练和部署模型TensorFlow常用深度学习框架,训练和部署模型Transformers封装大模型、NLP、多模态模型的上层模型库Docker 容器隔离部署环境,方便迁移和上线Python 版本AI 框架和模型代码运行的语言环境基础
整体主线:
硬件 GPU↓NVIDIA 显卡驱动↓CUDA / cuDNN↓PyTorch / TensorFlow↓Transformers / 业务模型代码↓API 服务 / Web 服务 / 推理服务 / 训练任务
1. 英伟达显卡:AI 计算的硬件基础
英伟达显卡,也就是 NVIDIA GPU,是 AI 开发中负责大量矩阵运算、张量计算、并行计算的硬件。
普通 CPU 擅长处理复杂逻辑,例如系统调度、文件读写、业务代码执行。GPU 擅长同时处理大量简单但重复的计算,例如矩阵乘法、卷积、注意力机制计算。
1.1 为什么 AI 需要 GPU
场景 | CPU | GPU | 小脚本、普通业务逻辑合适不一定需要大规模矩阵计算慢快深度学习训练通常很慢主力选择大模型推理可运行但性能差常用选择图像、语音、多模态模型慢明显加速
1.2 常见 NVIDIA 显卡类型
类型 | 示例 | 常见用途 | 消费级显卡RTX 3060、RTX 4090学习、实验、小规模部署数据中心显卡T4、A10、A100、H100生产部署、训练、大模型推理边缘设备 GPUJetson 系列机器人、边缘 AI
1.3 新手需要记住
- 显卡是硬件本体。
- 不是有显卡就一定能被 AI 程序使用。
- 还需要驱动、CUDA、深度学习框架共同配合。
- 模型是否真的跑在 GPU 上,需要通过命令和代码验证。
2. 显卡驱动:操作系统和 GPU 的桥梁
显卡驱动是操作系统和 NVIDIA GPU 沟通的底层软件。
可以把驱动理解成“操作系统控制显卡的翻译官”。没有驱动,系统可能识别不到显卡;驱动版本不合适,CUDA 或 PyTorch 可能无法使用 GPU。
2.1 检查驱动是否安装成功
nvidia-smi
正常情况下会看到类似信息:
+---------------------------------------------------------------------------------------+| NVIDIA-SMI 535.xx Driver Version: 535.xx CUDA Version: 12.2 || GPUName Persistence-M | Bus-IdDisp.A | Volatile Uncorr. ECC || 0NVIDIA A10 Off | 00000000:00:1E.0 Off | 0 |+---------------------------------------------------------------------------------------+
重点字段:
字段 | 含义 | Driver Version当前宿主机安装的 NVIDIA 驱动版本CUDA Version当前驱动最高支持的 CUDA Runtime 版本GPU Name显卡型号Memory-Usage显存占用情况GPU-UtilGPU 计算利用率
2.2 一个非常容易误解的点
nvidia-smi 里显示的 CUDA Version,不代表你已经安装了 CUDA Toolkit。
它只表示:
当前显卡驱动最高兼容到哪个 CUDA 版本。
例如 nvidia-smi 显示 CUDA Version: 12.2,只能说明驱动支持 CUDA 12.2 及以下兼容范围内的 CUDA 程序,不代表系统里已经安装了 /usr/local/cuda-12.2。
3. CUDA:让程序使用 NVIDIA GPU 的计算平台
CUDA 是 NVIDIA 提供的 GPU 通用计算平台。
可以这样理解:
显卡 = 工人显卡驱动 = 管理工人的底层系统CUDA = 让程序给工人派活的工具体系
3.1 CUDA 通常包含什么
组成 | 作用 | CUDA Driver API驱动层接口CUDA Runtime程序运行时需要的 CUDA 组件CUDA Toolkit编译 CUDA 程序的工具包nvccCUDA 编译器CUDA LibrariescuBLAS、cuFFT、cuRAND 等数学库
3.2 检查是否安装 CUDA Toolkit
nvcc --version
也可以检查目录:
ls /usr/local/
可能看到:
cudacuda-11.8cuda-12.1
3.3 新手注意事项
- 训练或推理不一定要求系统安装完整 CUDA Toolkit。
- 使用 PyTorch 官方 pip/conda 包时,很多 CUDA Runtime 和 cuDNN 已经随框架包一起提供。
- 如果需要编译 CUDA 扩展,例如自定义算子、flash-attention、deepspeed、xformers,通常需要本机有 CUDA Toolkit 和
nvcc。 - 驱动版本必须足够新,才能运行对应 CUDA 版本构建出来的程序。
4. cuDNN:深度学习专用 GPU 加速库
cuDNN 是 NVIDIA 为深度学习专门优化的 GPU 加速库。
它基于 CUDA,但比 CUDA 更贴近深度学习场景。
CUDA = GPU 通用计算平台cuDNN = 深度学习专用加速库
4.1 cuDNN 加速的典型操作
操作 | 常见模型场景 | 卷积CNN、图像分类、目标检测RNN/LSTM传统序列模型BatchNorm图像模型、深度网络激活函数神经网络基础操作部分注意力相关操作Transformer 模型中的底层计算
4.2 新手需要记住
- cuDNN 通常不直接由业务代码调用。
- PyTorch、TensorFlow 会在底层自动调用 cuDNN。
- cuDNN 版本需要和 CUDA、深度学习框架匹配。
- 如果 cuDNN 不匹配,可能出现模型无法启动、GPU 不可用、运行时报动态库错误等问题。
5. Python 版本:AI 项目的语言环境基础
Python 是绝大多数 AI 项目的主要开发语言。
PyTorch、TensorFlow、Transformers、FastAPI、Flask、vLLM 等都运行在 Python 环境中。
5.1 Python 版本为什么重要
原因 | 说明 | 框架兼容PyTorch、TensorFlow 对 Python 版本有要求依赖兼容numpy、opencv、pydantic 等库也有版本限制部署稳定性生产环境通常不要盲目追最新 Python复现环境不同 Python 版本可能导致依赖解析不同
5.2 常见建议
场景 | 推荐 Python | 新项目Python 3.10 或 3.11老项目维护跟随原项目版本TensorFlow 项目严格查 TensorFlow 对 Python 的支持PyTorch 项目通常 3.9、3.10、3.11 较稳大模型部署优先参考 vLLM、Transformers、PyTorch 官方要求
5.3 创建 Conda 环境
conda create -n ai-gpu python=3.10 -yconda activate ai-gpu
检查 Python 版本和路径:
python --versionwhich pythonwhich pip
新手常见错误是系统有多个 Python,结果包安装到了 A 环境,运行却用了 B 环境。
6. PyTorch:常用深度学习框架
PyTorch 是目前 AI 训练和推理中非常常用的深度学习框架。
6.1 PyTorch 负责什么
能力 | 说明 | 张量计算类似 numpy,但支持 GPU自动求导训练神经网络时自动计算梯度神经网络模块提供 Linear、Conv、Attention 等组件GPU 调度自动把张量和模型放到 GPU 上计算模型保存加载支持训练和部署流程
6.2 安装 PyTorch GPU 版本
安装 PyTorch 时最重要的是选对 CUDA 版本。
示例:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
这里的 cu121 表示这个 PyTorch 包是为 CUDA 12.1 构建的。
常见 PyTorch 包类型:
包类型 | 含义 | cpu只能用 CPUcu118支持 CUDA 11.8cu121支持 CUDA 12.1cu124支持 CUDA 12.4
6.3 检查 PyTorch 是否识别 GPU
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'no cuda')"
更完整的验证代码:
import torchprint("PyTorch 版本:", torch.__version__)print("CUDA 是否可用:", torch.cuda.is_available())if torch.cuda.is_available():device
郑重声明:本站发布内容宗旨在传播更多信息,仅提供查阅,与本站立场无关,不拥有所有权,不承担相关法律责任。不具有任何效益,仅供参考。如果需要专业知识建议,请咨询相关专业人士。如有侵权请联系邮箱。一经查实,立即删除!