标准回答
CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的 GPU 通用并行计算平台,含驱动、运行时、C/C++ 编译器及 cuBLAS、cuDNN 等库。
与 PyTorch 的关系:
- PyTorch 的 torch.cuda 模块封装 CUDA API,在 GPU 上执行 张量 运算
- 核心算子(矩阵乘、卷积)调用 cuBLAS/cuDNN 高度优化
- 训练大模型时 GPU 相对 CPU 可有 10~100× 加速
基本用法:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
x = x.to(device)注意:需安装与 PyTorch 版本匹配的 CUDA 驱动;多卡用 cuda:0、DistributedDataParallel;torch.backends.cudnn.benchmark = True 可优化固定输入尺寸的卷积。
CPU 训练仅适合小实验;深度学习 工业化几乎依赖 GPU/TPU。AMD 用 ROCm,Apple 用 MPS 后端。
常见误区
⚠️ 常见踩坑
有 GPU 却忘记 .to(device) 导致训练仍在 CPU;混淆 CUDA 版本与 cuDNN 版本;多卡 DataParallel 瓶颈未改用 DDP。
追问
追问 1:PyTorch 安装的 CUDA 版本和系统驱动关系?
pip/conda 装的 PyTorch 自带匹配版本的 CUDA 运行时(toolkit),所以本机无需单独装 CUDA toolkit;但仍需系统装有足够新的 NVIDIA 显卡驱动。关系是:驱动需 ≥ 该 CUDA 运行时要求的最低版本(向后兼容),驱动太旧会报 CUDA error。用 nvidia-smi 看驱动支持的最高 CUDA,用 torch.version.cuda 看 PyTorch 绑定的版本。
追问 2:多 GPU 训练有哪些方式?
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具