zl程序教程

您现在的位置是:首页 >  其它

当前栏目

如何关闭NVIDIA显卡的CUDA运算功能

如何 功能 关闭 运算 CUDA NVIDIA 显卡
2023-09-11 14:19:19 时间

基本很少有人会想到要关闭NVIDIA显卡的CUDA计算功能,这东西不想用就不跑cuda代码不就可以了吗,但是作为一个深度学习服务器集群的管理者来说,这个功能还是有用处的。前一阵使用实验室的一台服务器的显卡报错,只要是这个显卡满载就会导致服务器死机,从操作系统日志和服务器硬件监控日志来看这个错误是硬件错误,也就是说不是pcie槽的相关部分(供电、芯片等)出现了故障就是这块显卡出现了硬件故障,相关见:实验室服务彻底死机记录——硬件故障——主板pcie槽坏掉或显卡坏掉

 

既然确定好了问题点,那么直接联系厂家不就解决了嘛,毕竟这是硬件问题,但是实际操作起来还是蛮复杂的,首先服务器上跑的有国家级的项目,这个也是各位领导的钱袋子,这个服务器上的数据就是迁移也是需要时间的,争取最小时间损失是必须要考虑的,这时候就有一个神奇的选项,那就是将这个坏掉的显卡的CUDA功能关闭掉,其他显卡依然可以正常运行,这样就可以在保障服务器上的项目依然可以运行的同时一边做备份和迁移一边去和厂家联系硬件维修的事情。

 

 

先给出关闭NVIDIA显卡cuda功能的命令(关闭所有显卡的cuda计算功能):

sudo nvidia-smi  -c 2

 

除了关闭所有显卡的cuda计算功能,我们也可以指定某个显卡关闭cuda计算功能

sudo nvidia-smi -i 0 -c 2
其中,-i 就是指定某个显卡的参数,-i 0,就是关闭0号显卡的cuda计算功能。

 

 

恢复所有显卡的cuda功能:

sudo nvidia-smi  -c 0

如果需要恢复特定显卡的cuda功能,则加:  -i 显卡号,

如:sudo nvidia-smi -i 0 -c 0   就是恢复0号显卡的cuda功能

 

 

==============================

 

 

下面内容源自:

作者:YellowMeta
链接:https://juejin.cn/post/7120533024076202015

-c 设置计算模式

设置目标 GPU 的计算模式。

计算模式标志指示单个或多个计算应用程序是否可以在 GPU 上运行。

0/Default:表示每个设备允许多个上下文。

1/Exclusive_Thread:已弃用,改用 Exclusive_Process

2/Prohibited:表示每台设备不允许使用任何上下文(无计算应用程序)。

3/Exclusive_Process: 表示每个设备只允许一个上下文,一次可从多个线程使用。

有关计算模式的说明,请参阅(GPU 属性)部分。

注意:

需要root权限。

除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。

此操作的效果是立竿见影的。

但它不会在主机重新启动后持续存在。

每次主机重新启动后,计算模式将重置为“DEFAULT”。


 

 

=====================================

 

nvidia-smi,查看当前显卡的计算模式:DEFAULT

 

 

关闭1号显卡的cuda计算功能:

 

 

 

查看1号显卡的计算模式为:Prohibited

 

 

 

在1号显卡上运行cuda代码:无法创建任务,运行失败

 

 

 

 

 

 

通过NVIDIA的nvidia-smi命令我们可以知道显卡上的任务可以分为图形图像任务和计算任务两种,其中图形图形任务类型为Graphic,计算任务类型为compute,缩写分别为G和C,在使用nvidia-smi命令后我们可以通过查看process内容知道不同的进程是属于G类型还是C类型:

 

 

 

 

 

 

 

 

 

 

=====================================

 

参考:

https://www.twblogs.net/a/5ca8603cbd9eee59d3332b72

https://juejin.cn/post/7120533024076202015