捷徑

計算世界大小範例

這是一個最小的「hello world」風格範例應用程式,它使用 PyTorch Distributed 來計算世界大小。它沒有進行機器學習訓練,但它初始化了處理程序群組並執行了一個單一集體操作(all_reduce),這足以驗證基礎架構和排程器設定。

儘管這個應用程式很簡單,但實際的 compute_world_size() 函式被拆分到一個單獨的子模組(.module.util.compute_world_size)中,作為工作區修補邏輯的端到端測試,該邏輯通常會對整個專案目錄而不是單一檔案進行差異修補。此應用程式還使用 Hydra 設定檔,作為如何在使用 TorchX 啟動的應用程式中使用 Hydra 設定檔的說明性範例。

使用 dist.ddp 內建元件執行它,以作為驗證應用程式,以確保堆疊已正確設定,以進行更嚴重的分散式訓練作業。

import hydra
from omegaconf import DictConfig, OmegaConf
from torch.distributed.elastic.multiprocessing.errors import record
from torchx.examples.apps.compute_world_size.module.util import compute_world_size


@record
def run(cfg: DictConfig) -> None:
    print(OmegaConf.to_yaml(cfg))

    if cfg.main.throws:
        raise RuntimeError(f"raising error because cfg.main.throws={cfg.main.throws}")
    compute_world_size(cfg)


if __name__ == "__main__":
    # use compose API to make this compatible with ipython notebooks
    # need to initialize the config directory as a module to make it
    # not depends on rel path (PWD) or abs path (torchx install dir)
    # see: https://hydra.cc/docs/advanced/jupyter_notebooks/
    with hydra.initialize_config_module(
        config_module="torchx.examples.apps.compute_world_size.config"
    ):
        cfg: DictConfig = hydra.compose(config_name="defaults")
        run(cfg)

腳本總執行時間:(0 分鐘 0.000 秒)

由 Sphinx-Gallery 產生的圖庫

文件

取得 PyTorch 的完整開發人員文件

檢視文件

教學課程

取得針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

檢視資源