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

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

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

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

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

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

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

抢占脚本说明

脚本我已经开源了:

GitHub - godweiyang/GrabGPU: Grab GPU whenever available

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

GrabGPU/grab_gpu at master · godweiyang/GrabGPU

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

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

实际应用举例

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

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

./grab_gpu 31 24 -1 gpu.sh

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

8dced4f9758fe8cd7a1218c698716a87.png

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

./grab_gpu 31 24 -1

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

a5a6b416b1d1bee9f07f828b12965005.png

源码编译

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

github.com/godweiyang/G

编译命令也很简单:

nvcc grab_gpu.cu -o grab_gpu

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法码上来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值