脚本内指定GPU部署 | XYZ
Post

脚本内指定GPU部署

脚本内指定GPU部署

CUDA设备配置

设置脚本可见的GPU卡号

在脚本开头添加以下代码,以指定脚本可见的GPU卡号范围:

1
2
3
4
import os

# 设置环境变量,只显示4, 5, 6, 7号GPU
os.environ['CUDA_VISIBLE_DEVICES'] = '4,5,6,7'

注意事项

  • 经过上述设置后,对于脚本而言,这四张卡的编号将会是 "0, 1, 2, 3",即根据可见卡重新排列了索引。
  • 在此脚本内的任何GPU部署都不会影响到其他卡,因为此脚本看不到其他卡了。

模型加载示例

以下是使用指定设备映射加载模型的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
from transformers import AutoModelForCausalLM

# 模型路径
model_path = 'path_to_your_model'

# 加载模型,指定数据类型、内存使用优化、信任远程代码,并自动设置设备映射
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True,
    device_map="auto"
)

device_map 参数可以自由设置,不会影响其他人的卡。

附赠

查看GPU进程全名

1
nvidia-smi --query-compute-apps=process\_name --format=csv

查看GPU信息

1
nvidia-smi
This post is licensed under CC BY 4.0 by the author.