logo
11
2
Login

cnb-gpu-cli GPU 分配工具

Runner 打包

  • latest 的版本,下载 cnb-gpu-amd64 和 cnb-gpu-arm64 二进制工具
  • 重命名成 cnb-gpu ,打进 cnbcool/orange-runner 镜像,目录通用性一般放到 /usr/local/bin/ 加 +x 执行权限
  • cnbcool/orange-runner:1.3.0 以后的版本镜像内已支持

使用上线时

  • 在启动 orange-runner 的时候,额外加 --gpus all 的参数。 将 gpu 信息和驱动访问权限给到orange-runner里
  • 配置 /etc/orange-ci/runner-config.json 里的 dockerArgs 参数 "--gpus $(cnb-gpu)"。 如果不是分配一张卡,可以用 "--gpus all"
  • 配置 /etc/orange-ci/runner-config.json 能动态加载,几分钟生效。低峰时验证,或者隔离节点验证
# 占一张卡 docker run --gpus $(cnb-gpu) --rm -it docker.cnb.cool/examples/ecosystem/deepseek/70b:latest docker run --gpus $(cnb-gpu apply) --rm -it docker.cnb.cool/examples/ecosystem/deepseek/70b:latest # 占三张卡 docker run --gpus $(cnb-gpu apply --count 3) --rm -it docker.cnb.cool/examples/ecosystem/deepseek/70b:latest

随机方案测试内容

看了 nvidia docker toolkit的 --gpus 3 参数,不是随机分,跑了两个容器,都是分前三张卡。满足不了需求

测试文件内容: /root/device.sh 需要保证输出结果是带双引号的 "device=GPU-26205551-5441-98c7-d002-a1cf63cf75d3,GPU-a43edd52-be7d-fd9f-286f-fa19e2640523"

#!/usr/bin/env sh echo '"device=GPU-26205551-5441-98c7-d002-a1cf63cf75d3,GPU-a43edd52-be7d-fd9f-286f-fa19e2640523"'

然后命令运行, 可以挂载两个卡

docker run --gpus "$(/root/device.sh)" --rm -it docker.cnb.cool/examples/ecosystem/deepseek/70b:latest # 注意和上面写法,差个单引号,没单引号命令不不认 docker run --gpus '"device=GPU-26205551-5441-98c7-d002-a1cf63cf75d3,GPU-a43edd52-be7d-fd9f-286f-fa19e2640523"' --rm -it docker.cnb.cool/examples/ecosystem/deepseek/70b:latest

About

No description, topics, or website provided.
1.09 MiB
11 forks2 stars6 branches11 TagREADMEOther license
Language
Go82.8%
Markdown11.1%
Shell5.7%
gitignore0.4%