Skip to main content

动态GPU分配

Enterprise Feature

此功能在ClearML企业版计划下可用。

ClearML企业服务器支持基于队列属性的GPU动态分配。 代理可以根据队列所需的GPU数量从不同队列中启动多个任务。

dynamic-gpus 允许根据队列属性动态分配GPU。 要配置队列的GPU数量,请使用--gpus标志指定活动的GPU,并使用--queue标志指定队列名称和GPU数量:

clearml-agent daemon --dynamic-gpus --gpus 0-2 --queue dual_gpus=2 single_gpu=1 --docker 
Docker mode

确保包含--docker标志,因为动态GPU分配仅在Docker模式中支持。

示例

假设一个服务器有三个队列:

  • dual_gpu
  • quad_gpu
  • opportunistic

一个代理可以在多个GPU上运行(例如:8个GPU,--gpus 0-7),然后附加到配置为使用一定数量资源运行的多个队列:

clearml-agent daemon --dynamic-gpus --gpus 0-7 --queue quad_gpu=4 dual_gpu=2 --docker 

代理现在可以根据配置到队列的GPU数量从不同的队列中启动多个任务。 代理将从quad_gpu队列中选取一个任务,使用GPU 0-3并启动它。然后它将从dual_gpu 队列中选取一个任务,再次寻找可用的GPU并在GPU 4-5上启动。

分配GPU的另一个选项:

clearml-agent daemon --dynamic-gpus --gpus 0-7 --queue dual=2 opportunistic=1-4 --docker 

请注意,为opportunistic队列指定了GPU的最小值和最大值。这意味着代理将从opportunistic队列中提取任务,并根据可用性(即当前未被其他代理使用的GPU)分配最多4个GPU。