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

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

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

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

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

所以,我给大家写了一个抢占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盲盒。
相关文章
|
2月前
|
存储 固态存储 测试技术
|
4月前
|
虚拟化
minos 2.5 中断虚拟化——vGIC
这一节开始讲述真正的中断虚拟化,首先来看硬件方面的虚拟化。前文 minos 2.3 中断虚拟化——GICv2 管理 主要讲述 GICv2 的 Distributor 和 CPU Interface,在 Hypervisor 存在的情况下,它们都是为 Hypervisor 服务的。现在有了 vm,vm 里面的内核也需要操作 GIC,怎么办?我们模拟一个 GIC 设备给 vm 使用。
66 5
minos 2.5 中断虚拟化——vGIC
|
4月前
|
Linux 虚拟化
minos 2.4 中断虚拟化——中断子系统
前面讲述了 minos 对 GICv2 的一些配置和管理,这一节再往上走一走,看看 minos 的中断子系统
44 3
|
5月前
|
传感器 安全 vr&ar
什么是 Intel CPU 的 PROCHOT 信号
什么是 Intel CPU 的 PROCHOT 信号
|
11月前
我的电脑的cpu、cpu核数
我的电脑的cpu、cpu核数
118 0
|
机器学习/深度学习 并行计算 TensorFlow
不再让CPU和总线拖后腿:Exafunction让GPU跑的更快!
不再让CPU和总线拖后腿:Exafunction让GPU跑的更快!
128 0
|
芯片
Win系统 - 为什么处理器选择英特尔,超线程又是什么?
Win系统 - 为什么处理器选择英特尔,超线程又是什么?
147 0
Win系统 - 为什么处理器选择英特尔,超线程又是什么?
|
异构计算
显卡风扇不转导致GPU占用100%
显卡风扇不转导致GPU占用100%
366 0