使用Miniconda/Anaconda创建虚拟环境(如conda create -n pytorch_env python=3.8),避免项目间依赖冲突;通过conda env create -f env.yml(定义name、channels、dependencies)批量管理环境,确保跨机器一致性。若需容器化,可使用Docker(如pytorch/pytorch镜像),保证环境可移植性。
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch),自动解决CUDA/cuDNN依赖;若用pip,需指定与CUDA版本匹配的wheel(如CUDA 11.7对应--extra-index-url https://download.pytorch.org/whl/cu117)。pip install torch torchvision torchaudio。python -c "import torch; print(torch.__version__, torch.cuda.is_available())"验证,确保版本正确且GPU可用。nvidia-smi查看驱动版本),再安装对应CUDA Toolkit(如11.7,通过.run文件或yum安装);配置环境变量(~/.bashrc添加export PATH=/usr/local/cuda/bin:$PATH、export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH)。cudnn*.h到/usr/local/cuda/include,libcudnn*到/usr/local/cuda/lib64,并赋予权限(chmod a+r)。DataLoader的num_workers参数(设为4*num_gpu)启用多进程加载,pin_memory=True加速CPU到GPU的数据传输;将数据集存储在SSD上,减少I/O瓶颈。torch.tensor([1,2], device='cuda')),避免CPU-GPU来回传输;使用torch.from_numpy或torch.as_tensor转换NumPy数组,效率高于torch.Tensor()。torch.cuda.amp.autocast()包裹前向传播,GradScaler()缩放梯度,减少显存占用(约30%)并加速计算(约2-3倍)。DistributedDataParallel(DDP)替代DataParallel(DP),DDP通过多进程通信降低GPU间通信开销,适合多卡/多机训练。optimizer.step()仅在累积次数达到时执行),模拟更大batch size(如accumulation_steps=4相当于batch size×4)。torch.cuda.empty_cache()清理未使用的显存,避免显存碎片化导致的内存泄漏。torch.no_grad()上下文管理器,停止梯度计算,减少内存占用(约50%)。torch.backends.cudnn.benchmark = True,让CuDNN自动选择当前硬件最优的卷积算法,提升卷积运算速度(约10%-20%)。NCHW)使用channels_last格式(tensor.contiguous(memory_format=torch.channels_last)),提高内存访问效率(尤其适合卷积层)。non_blocking=True进行异步数据传输(如data.to(device, non_blocking=True)),重叠数据传输与计算,提升利用率。torch.utils.bottleneck定位代码瓶颈(生成报告指出耗时操作),或torch.profiler分析模型各层耗时(如卷积、矩阵乘法)。sudo yum update -y),安装必要依赖(Development Tools、python3-devel、cmake);若遇依赖冲突,使用yum --setopt=obsoletes=0 install忽略过时包,或通过conda创建隔离环境。nvidia-smi实时查看GPU使用率、显存占用,及时调整训练策略。