动态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。