查看和指定GPU服务器显卡训练模型

本文介绍了如何使用nvidia-smi命令查看GPU信息,包括型号、温度、使用率等,并展示了如何用Python的torch.cuda库检测和选择GPU,以及通过设置环境变量CUDA_VISIBLE_DEVICES来指定使用特定GPU进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查看显卡

nvidia-smi

1

GPU:GPU 编号;与实际编号不一定一致
Name:GPU 型号;
Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态;
Fan:风扇转速,从0到100%之间变动;
Temp:温度,单位是摄氏度;
Perf:性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12)。
Pwr:Usage/Cap:能耗;
Memory Usage:显存使用率;
Bus-Id:涉及GPU总线的东西
Disp.A:Display Active,表示GPU的显示是否初始化;
Volatile GPU-Util:浮动的GPU利用率;
Uncorr. ECC:Error Correcting Code,错误检查与纠正;
Compute M:compute mode,计算模式

2.间隔查看GPU使用情况

间隔10s刷新信息

watch -n 10 nvidia-smi

间隔5s刷新信息

watch -n 5 nvidia-smi

3.查看当前显卡信息

通过nvidia-smi查看的显卡排序不一定是正确的。可能使用到Torch的以下函数确定当前显卡。
torch.cuda.is_available() # 判断GPU是否可用
torch.cuda.device_count() # 查看可用GPU数量
torch.cuda.current_device() # 当前设备的索引,从0开始
torch.cuda.get_device_name(0) # 返回GPU名字

根据上面的信息,我这里有4个GPU。

>>> import torch
>>> torch.cuda.device_count()
4
>>> torch.cuda.current_device()
0
>>> torch.cuda.get_device_name(0)
'NVIDIA TITAN V'
>>> torch.cuda.get_device_name(1)
'NVIDIA TITAN V'
>>> torch.cuda.get_device_name(2)
'Tesla V100S-PCIE-32GB'
>>> torch.cuda.get_device_name(3)
'Tesla V100S-PCIE-32GB'

4. 使用os指定使用的显卡

上面查询到4个可用GPU信息,但是我们想指定在某张或者某几张显卡上训练网络。
(1)使用os.environ指定要使用的显卡:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = '2,3'

把os.environ[‘CUDA_VISIBLE_DEVICES’]='2,3’放在所有访问GPU的代码之前,否则设置不生效。
假设原来有4张卡,编号为0的是主卡,现在编号为2的是主卡,且每张显卡的默认标号为[0,1]。
(2)将网络放到指定GPU上训练

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = Model()
 
if torch.cuda.device_count() > 1:
    model = nn.DataParallel(model, device_ids=[0,1])
model.to(device)

device_ids=[0,1]里面的0指的是4张显卡里面的第三张,1表示第四张。

### 配置阿里云GPU服务器用于深度学习模型训练 #### 选择合适的GPU实例规格 在启动项目之前,需评估所需资源并选择适合的GPU实例规格。这取决于具体应用场景中的数据量大小以及所选算法复杂程度[^2]。 #### 创建ECS实例 登录到阿里云官网后,在ECS产品页面点击创建实例按钮进入向导界面;按照提示依次填写地域、网络类型等基本信息,并挑选已选定好的GPU配置项完成实例构建过程。 #### 安全组设置 为了保障远程访问的安全性,需要合理规划安全策略来允许SSH连接及其他必要的端口开放。通常情况下只需放通TCP协议下的22号端口即可满足基本需求。 #### 远程连接至新购得之主机节点 借助于诸如PuTTY这类工具实现Linux系统的命令行交互环境搭建工作,输入公网IP地址及相关认证信息成功登陆目标机器之后便能开展后续部署活动了。 #### 安装依赖软件包与框架库文件 确保操作系统处于最新状态后再安装CUDA Toolkit及cuDNN SDK组件,它们是支持NVIDIA硬件加速功能不可或缺的一部分。接着依据个人喜好下载PyTorch/TensorFlow其中一个版本作为主要开发平台[^1]。 ```bash sudo apt-get update && sudo apt-get upgrade -y wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` #### 数据准备阶段 将本地的数据集上传到OSS对象存储服务当中去,再编写一段Python脚本调用SDK接口读取这些二进制流加载入内存供程序调用处理。 #### 编写训练代码逻辑部分 基于前面提到过的开源框架设计神经网络结构定义损失函数优化器参数初始化等一系列准备工作完成后就可以正式开启一轮又一轮迭代更新权重直至收敛为止。 #### 启动分布式多卡并行运算模式(可选项) 如果单张显卡无法承载整个任务负载,则考虑采用Horovod或者DeepSpeed这样的第三方插件辅助实现跨设备间高效通信协作机制从而达到充分利用集群内所有可用算力的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值