如何优雅的抢占别人的显卡?

简介: 如何优雅的抢占别人的显卡?

先祝大家圣诞快乐,周末玩的开心。

但开心的同时也别忘了把模型训起来哦,通常一训就要好几天,不如花个几分钟先运行起来,周末结束不就能直接收菜了嘛!

但当你兴高采烈登上服务器,一看显卡全部被占满,这你总不能一直盯着别人的程序跑结束,然后赶紧跑你的程序吧,那岂不是要累死。

所以,我给大家写了一个抢占GPU的脚本,只需要花几秒钟运行一下就可以关机去玩了,卷死别人!

有人可能会说,网上抢占的脚本多的是啊,你这有啥区别?区别就是,我这是C++写的,给你也编译好了,不像Python还需要装各种包,我这可以直接运行,非常方便,此外功能也比较人性化。

做人留一线,日后好相见,记得给别人留两张卡,做的别太绝了!

抢占脚本说明

脚本我已经开源了:

https://github.com/godweiyang/GrabGPU

你也可以直接下载下面这个可执行文件:

https://github.com/godweiyang/GrabGPU/blob/master/grab_gpu

目前这个脚本可以指定如下参数:

  • 抢占的显存大小。如果空闲的显存超过这个大小,就抢占成功,否则无限循环抢占。
  • 占有的时间。如果抢占到了,你想占有的时间。如果运行你自己的程序,这个参数无效。
  • 显卡ID。支持多卡,你想抢占哪几张卡。
  • 你自己程序的执行脚本路径(可选)。你可以选择抢占到显卡后,执行你自己的程序,例如模型训练代码。你也可以不指定,这样默认使用我提供的程序,一直把卡占着,别人也用不了。

实际应用举例

举两个实际场景中的例子。

第一个场景,你实验室服务器有8张32GB显存的显卡,但是都被人占满了,你想等他运行完就立刻占住跑你自己的程序gpu.sh,那么可以直接执行下面命令:

./grab_gpu 31 24 -1 gpu.sh

这里有四个参数,31表示每张卡要抢占31GB,24表示抢到后占有24小时(在运行自己程序脚本时无效),-1表示抢占全部8张显卡,gpu.sh是你程序的执行脚本。

第二个场景,你现在也没啥程序想跑的,但就想在服务器空闲的时候占住显卡,防止别人抢了,那你可以执行下面命令:

./grab_gpu 31 24 -1

和第一个场景区别就是没有run.sh了,这时就会执行我提供的默认CUDA程序,显卡利用率会保持在较高水平,同时执行一段时间还会休眠几秒钟,给服务器也喘口气。注意这时候24这个参数就有作用了,占有24小时后会自动停止,释放所有显卡。


源码编译

如果想进一步做定制,满足自己的需求,可以去看看源码并做修改:

https://github.com/godweiyang/GrabGPU

编译命令也很简单:

nvcc grab_gpu.cu -o grab_gpu
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
异构计算
显卡风扇不转导致GPU占用100%
显卡风扇不转导致GPU占用100%
401 0
我的电脑的cpu、cpu核数
我的电脑的cpu、cpu核数
185 0
|
人工智能 大数据 5G
服务器显卡直通和GPU问题分析
服务器显卡直通和GPU问题分析
服务器显卡直通和GPU问题分析
|
机器学习/深度学习 并行计算 TensorFlow
不再让CPU和总线拖后腿:Exafunction让GPU跑的更快!
不再让CPU和总线拖后腿:Exafunction让GPU跑的更快!
150 0
|
Linux 虚拟化 机器学习/深度学习
查看CPU是否支持虚拟化
查看CPU是否支持虚拟化一、Windows平台:使用小工具securable。 用户需要查看的也就是截图中的Hardware Virtualization选项。前面3种情况很简单: NO:CPU不支持 Yes:CPU支持,赶快去将BIOS里的VT开关设为Enabled吧 Locked ON:CPU支持,且BIOS已经打开该功能 Locked OFF:BIOS当前禁用了虚拟化技术,但是不确定CPU本身是否支持。
1629 0
|
人工智能 5G 芯片
芯片里的CPU、GPU、NPU是什么,它们是如何工作的
芯片里的CPU、GPU、NPU是什么,它们是如何工作的
787 0
芯片里的CPU、GPU、NPU是什么,它们是如何工作的

热门文章

最新文章