指定任务资源:分数 gpu
Specifying Task Resources: Fractional gpu
有没有办法指定任务的小数 gpu 要求?在 Dask 网页的 example 中,它指定了单个 GPU。
from distributed import Client
client = Client('scheduler:8786')
data = [client.submit(load, fn) for fn in filenames]
processed = [client.submit(process, d, resources={'GPU': 1}) for d in data]
final = client.submit(aggregate, processed, resources={'MEMORY': 70e9})
给小模型分配一个GPU会很浪费
Ray库有doing this的方法。
是的,允许部分资源。
一般来说,资源是任意单位的,所以如果你用“GPU=2”或者一些“foo=10”实例化调度器,调度器会在任务分配时跟踪这些资源,但调度器不会真正知道(或关心)“GPU”或“foo”是什么。提交任务时可以传入{"GPU": 0.25}
,调度器会分配多个分配给GPU worker的任务,比如告诉调度器每个worker有"foo=10"
,那么调度器会要求每个worker 运行 同时提交最多十个任务{"foo":1}
。
有没有办法指定任务的小数 gpu 要求?在 Dask 网页的 example 中,它指定了单个 GPU。
from distributed import Client
client = Client('scheduler:8786')
data = [client.submit(load, fn) for fn in filenames]
processed = [client.submit(process, d, resources={'GPU': 1}) for d in data]
final = client.submit(aggregate, processed, resources={'MEMORY': 70e9})
给小模型分配一个GPU会很浪费
Ray库有doing this的方法。
是的,允许部分资源。
一般来说,资源是任意单位的,所以如果你用“GPU=2”或者一些“foo=10”实例化调度器,调度器会在任务分配时跟踪这些资源,但调度器不会真正知道(或关心)“GPU”或“foo”是什么。提交任务时可以传入{"GPU": 0.25}
,调度器会分配多个分配给GPU worker的任务,比如告诉调度器每个worker有"foo=10"
,那么调度器会要求每个worker 运行 同时提交最多十个任务{"foo":1}
。