torch.compiler.set_enable_guard_collectives#
- torch.compiler.set_enable_guard_collectives(enabled)[source]#
启用 collectives 以在 guard 评估期间跨 rank 同步行为。这开销很大:每次进入编译代码区域时,我们都必须发出 collective,即使没有 rank 实际需要编译。这可以通过确保我们永远不会出现一个 rank 开始重新编译而其他 rank 不编译的情况来帮助防止 NCCL 挂起;这尤其适用于 enable_compiler_collectives,在这种情况下,这种情况会立即导致挂起(因为所有 rank 同时编译才能运行 compiler collectives 是必需的)。与 compiler collectives 一样,您只能在 SPMD 程序上运行此操作,否则会导致挂起。请注意,只有当有编译代码需要 guard 时,才会发出 guard collective;如果这是我们首次遇到一个 frame 或 frame 被跳过,我们不会发出 collectives。
返回 previously enabled 的设置。