ray.rllib.algorithms.algorithm_config.AlgorithmConfig.资源#
- AlgorithmConfig.resources(*, num_cpus_for_main_process: int | None = <ray.rllib.utils.from_config._NotProvided object>, num_gpus: int | float | None = <ray.rllib.utils.from_config._NotProvided object>, _fake_gpus: bool | None = <ray.rllib.utils.from_config._NotProvided object>, placement_strategy: str | None = <ray.rllib.utils.from_config._NotProvided object>, num_cpus_per_worker=-1, num_gpus_per_worker=-1, custom_resources_per_worker=-1, num_learner_workers=-1, num_cpus_per_learner_worker=-1, num_gpus_per_learner_worker=-1, local_gpu_idx=-1, num_cpus_for_local_worker=-1) AlgorithmConfig [源代码]#
指定为算法及其 ray 角色/工作者分配的资源。
- 参数:
num_cpus_for_main_process – 为主算法进程分配的CPU数量,该进程运行
Algorithm.training_step()
。注意:这仅在通过 Tune 运行 RLlib 时相关。否则,Algorithm.training_step()
在主程序(驱动程序)中运行。num_gpus – 分配给算法进程的GPU数量。请注意,并非所有算法都能利用GPU。目前仅支持tf-[PPO/IMPALA/DQN/PG]的多GPU。这可以是分数(例如,0.3个GPU)。
_fake_gpus – 在CPU机器上调试(多)GPU功能时设置为True。在这种情况下,GPU塔将由位于CPU上的图形模拟。使用
num_gpus
来测试不同数量的假GPU。placement_strategy – 由
Algorithm.default_resource_request()
返回的放置组工厂的策略。放置组定义了哪些设备(资源)应始终位于同一节点上。例如,一个具有2个EnvRunners和1个Learner(带1个GPU)的算法将请求一个包含以下捆绑包的放置组:[{‘cpu’: 1}, {‘gpu’: 1, ‘cpu’: 1}, {‘cpu’: 1}, {‘cpu’: 1}],其中第一个捆绑包用于本地(主算法)进程,第二个用于1个Learner工作线程,最后两个捆绑包用于两个EnvRunners。这些捆绑包现在可以根据placement_strategy
的值被“放置”在同一节点或不同节点上:’PACK’:将捆绑包尽可能少地打包到节点中。’SPREAD’:尽可能均匀地将捆绑包分布在不同的节点上。’STRICT_PACK’:将捆绑包打包到一个节点中。不允许组跨多个节点。’STRICT_SPREAD’:将捆绑包分布在不同的节点上。
- 返回:
这个更新的 AlgorithmConfig 对象。