1、配置环境
硬件确认
运行nvidia-smi(NVIDIA)或rocm-smi(AMD)检查GPU状态和驱动版本
![]()
安装必要的软件
驱动:从NVIDIA或AMD官网下载并安装最新GPU驱动。
CUDA Toolkit(NVIDIA):安装与你的框架(如TensorFlow、PyTorch)兼容的CUDA和cuDNN版本。例如,PyTorch 2.0可能需要CUDA 11.8。
ROCm(AMD):如果使用AMD GPU,安装ROCm平台(主要支持Linux)。
Python环境:建议使用Anaconda或虚拟环境(如venv)管理Python版本和依赖
2、选择框架
机器学习/深度学习
PyTorch:易于调试,支持动态计算图。安装时选择GPU版本,例如:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
TensorFlow:适合生产环境,安装GPU版本:
pip install tensorflow[and-cuda]
JAX:高性能计算,适合研究场景,需安装对应CUDA版本
3、编写和运行GPU代码
验证GPU可用性:
PyTorch:运行import torch; print(torch.cuda.is_available()),应返回True。
TensorFlow:运行import tensorflow as tf; print(tf.config.list_physical_devices('GPU')),检查GPU列表。
代码优化:
将数据和模型移到GPU:例如,PyTorch中用model.to('cuda')和data.to('cuda')。
使用批量处理(batch processing)最大化GPU并行能力。
避免频繁在CPU和GPU间传输数据,尽量保持计算在GPU上。
调试:如果GPU不可用,检查驱动、CUDA版本、框架兼容性,或查看日志(如CUDA_OUT_OF_MEMORY表示显存不足)。
4、性能优化
显存管理:
使用较小的批次大小(batch size)以适应显存限制。
启用混合精度训练(Mixed Precision Training),如PyTorch的torch.cuda.amp或TensorFlow的tf.keras.mixed_precision。
多GPU支持:
PyTorch:使用torch.nn.DataParallel或torch.distributed。
TensorFlow:使用tf.distribute.Strategy。
并行计算:优化数据加载(如PyTorch的DataLoader设置num_workers)和计算任务分配。
5、监控和管理
工具:
nvidia-smi:实时查看GPU使用率、显存占用和运行进程。
NVTop:更直观的GPU监控工具。
PyTorch Profiler:分析模型性能瓶颈。
资源管理:
关闭不必要的后台进程以释放显存。
在多用户环境中,使用任务调度工具(如SLURM)分配GPU资源。
6、常见问题与解决
CUDA版本不匹配:检查框架要求的CUDA版本,必要时安装多个CUDA版本并用环境变量切换。
显存不足:减少batch size、使用梯度累积(gradient accumulation)或启用模型并行。
驱动问题:更新或重装驱动,确保与操作系统兼容。
7、PyTorch简单GPU代码
import torch
# 检查GPU可用性
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")
# 创建张量并移到GPU
x = torch.randn(1000, 1000).to(device)
y = torch.randn(1000, 1000).to(device)
# 简单矩阵运算
z = torch.matmul(x, y)
print(z.shape)