modelscope 指定显卡推理

我有八张显卡,使用modelscope推理的时候,怎么指定特定的那一张显卡进行推理呢

基于new bing的编写:
在使用 ModelScope 进行模型推理时,可以使用 CUDA_VISIBLE_DEVICES 环境变量来指定在哪张显卡上运行推理任务。CUDA_VISIBLE_DEVICES 变量接受一个逗号分隔的 GPU ID 列表,用于指定可以使用的 GPU 设备。

例如,如果您希望在第一张和第三张显卡上运行推理任务,您可以使用以下命令:


CUDA_VISIBLE_DEVICES=0,2 python inference.py

其中 "inference.py" 是你的推理脚本名称。在上面的示例中,您指定了CUDA_VISIBLE_DEVICES环境变量为 "0,2" ,这意味着只有第一张和第三张显卡会被使用。

请注意,此方法只适用于基于 CUDA 的 GPU 设备。如果您的机器上有不同类型的 GPU 设备,您需要指定使用特定类型的设备的程序或库。

参考代码:

import tensorrt as trt  
  
# 创建 TensorRT 推理引擎  
builder = trt.Builder(logger=trt.Logger(severity=trt.Logger.WARNING))  
network = builder.create_network()  
  
# 构建 TensorRT 推理引擎的输入和输出  
input_shape = (3, 224, 224)  
output_shape = (1000,)  
input_name = "input"  
output_name = "output"  
  
input_type = trt.float32  
output_type = trt.float32  
  
input_tensor = network.add_input(name=input_name, dtype=input_type, shape=input_shape)  
output_tensor = network.add_output(name=output_name, dtype=output_type, shape=output_shape)  
  
# 将八张显卡中的某一张设为当前使用的显卡  
device = 3  # 例如,使用第四张显卡  
network.mark_output(output_tensor)  
builder.max_batch_size = 1  
builder.max_workspace_size = 1 << 30  
engine = builder.build_cuda_engine(network)  
engine.set_device(device)  
engine.create_execution_context()  
  
# 在推理时使用指定的显卡  
inputs = {input_name: data}  
outputs = [output_name]  
result = engine.execute(inputs=inputs, outputs=outputs)

使其只使用某一张特定显卡:


CUDA_VISIBLE_DEVICES=1 python train.py

可以使用CUDA_VISIBLE_DEVICES环境变量来指定特定的显卡进行推理。假设要使用第二张和第三张显卡进行推理,可以在终端中使用以下命令:

CUDA_VISIBLE_DEVICES=1,2 python your_model.py

其中,CUDA_VISIBLE_DEVICES的值为0表示第一张显卡,1表示第二张显卡,以此类推。在上述命令中,设置CUDA_VISIBLE_DEVICES值为1,2,表示使用第二张和第三张显卡进行推理。

在使用 ModelScope 进行推理时,你可以通过设置环境变量来指定特定的显卡进行推理。具体的步骤如下:

打开终端或命令提示符。

设置 CUDA_VISIBLE_DEVICES 环境变量来指定要使用的显卡。例如,如果你想使用第一张显卡,可以执行以下命令:

在 Linux 或 macOS 上:
bash
Copy code
export CUDA_VISIBLE_DEVICES=0
在 Windows 上:
bash
Copy code
set CUDA_VISIBLE_DEVICES=0
这将限制 ModelScope 在推理过程中只使用指定的显卡。

在同一个终端或命令提示符中运行 ModelScope 进行推理。

cuda(0) 指定第一张显卡,以此类推。如果你的模型比较大,需要多张显卡进行,可以将数据划分为多个,分别用不同的显卡进行操作,加快执行的速度,比如:

img

通过环境变量、命令行参数、代码和配置文件四种方式