简要回答
CUDA 是 NVIDIA 的 GPU 并行计算平台;PyTorch 内置 CUDA 后端,将张量和算子放到 GPU 上加速训练,通过 tensor.to("cuda") 和 cuda 设备管理使用。
标准回答
一、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)
面试里不要只停在公式或名词,可以补 CUDA 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。
四、注意
需安装与 PyTorch 版本匹配的 CUDA 驱动;多卡用 cuda:0、DistributedDataParallel;torch.backends.cudnn.benchmark = True 可优化固定输入尺寸的卷积。
CPU 训练仅适合小实验;深度学习 工业化几乎依赖 GPU/TPU。AMD 用 ROCm,Apple 用 MPS 后端。
回答思路
【定义】用一句话说清「什么是 CUDA?它与 PyTorch 有何关系」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:有 GPU 却忘记 .to(device) 导致训练仍在 CPU;混淆 CUDA 版本与 cuDNN 版本;多卡 DataParallel 瓶颈未改用 DDP。
追问
追问 1:PyTorch 安装的 CUDA 版本和系统驱动关系?
PyTorch wheel 自带特定 CUDA runtime;系统 NVIDIA 驱动须 ≥ 该版本要求。驱动过旧会无法初始化 GPU;可用 nvidia-smi 查看驱动版本。
追问 2:多 GPU 训练有哪些方式?
DataParallel(简单但效率低)、DistributedDataParallel(推荐,每进程一卡)、FSDP 大模型分片。需 launch 多进程并设 MASTER_ADDR/PORT。
追问 3:cuDNN 是什么?
NVIDIA 深度神经网络库,提供卷积、RNN、Normalization 等 GPU 实现。PyTorch 默认调用 cuDNN;确定性训练可设 cudnn.deterministic=True 略损速度。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
