确保硬件配置满足深度学习需求:
sudo ubuntu-drivers autoinstall安装最新官方驱动,确保与CUDA版本兼容;nvcc --version验证CUDA安装;pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117),确保CUDA加速生效;sudo apt install libmkl-dev libopenblas-dev),提升CPU计算效率;conda create -n pytorch_env python=3.8),避免库版本冲突。torch.cuda.memory_allocated()(当前分配)、torch.cuda.memory_reserved()(总预留)查看显存状态,torch.cuda.memory_summary()输出详细报告;accumulation_steps=4),模拟更大batch size的同时减少显存占用;torch.utils.checkpoint保存中间层输出,在反向传播时重新计算,以时间换空间(减少显存占用约30%-50%);torch.cuda.amp.autocast()和GradScaler实现混合精度(FP16+FP32),减少显存占用50%且加速训练(需注意数值稳定性);torch.cuda.empty_cache()释放未使用的缓存(如删除不再需要的张量后),避免显存碎片化。DataLoader的num_workers参数(如num_workers=4),利用多线程并行加载数据,减少数据IO等待时间;pin_memory=True将数据预加载到页锁定内存(pinned memory),加速数据传输到GPU(适用于GPU训练);turbojpeg、jpeg4py)处理图像,或通过torchvision.transforms的ToTensor()直接转换格式,避免CPU瓶颈。torch.backends.cudnn.benchmark=True,让cuDNN自动选择最优的卷积算法(提升计算速度约10%-30%);torch.nn.parallel.DistributedDataParallel(DDP)将模型拆分到多个GPU,提升计算效率;torch.jit.script将模型转换为TorchScript格式,减少运行时开销(适用于推理场景)。torch.profiler)分析代码性能,生成算子耗时报告(如sort_by="cuda_time_total"),定位瓶颈(如计算密集型算子、IO等待);nsys profile命令监控GPU利用率、显存带宽等指标,深入分析GPU计算性能。torch.nn.parallel.DistributedDataParallel替代DataParallel,支持多GPU/多节点训练,提升数据吞吐量(比DataParallel更高效);以上策略需根据具体场景(模型大小、数据规模、硬件配置)灵活组合,例如:小型模型可优先使用AMP和梯度累积,大型模型需结合模型并行和DDP。优化过程中建议通过Profiler定期评估效果,避免过度优化。