Buckets:
| import os | |
| from pathlib import Path | |
| import subprocess | |
| import sys | |
| REPO_ROOT = Path(__file__).resolve().parents[1] | |
| def test_paper_launcher_exports_repo_root_for_training_imports(tmp_path: Path) -> None: | |
| """torchrun must see top-level ``data`` and ``modeling`` packages.""" | |
| bin_dir = tmp_path / "bin" | |
| bin_dir.mkdir() | |
| torchrun = bin_dir / "torchrun" | |
| torchrun.write_text( | |
| f"#!{sys.executable}\n" | |
| "import os\n" | |
| "import sys\n" | |
| "from pathlib import Path\n" | |
| "source_root = Path(os.environ['EXPECTED_SOURCE_ROOT']).resolve()\n" | |
| "assert source_root in [Path(item).resolve() for item in sys.path if item]\n" | |
| "assert os.environ['PYTORCH_CUDA_ALLOC_CONF'] == " | |
| "'expandable_segments:True'\n" | |
| "prefetch_index = sys.argv.index('--backward_prefetch')\n" | |
| "assert sys.argv[prefetch_index + 1] == " | |
| "os.environ['EXPECTED_BACKWARD_PREFETCH']\n" | |
| "assert Path(os.environ['WANDB_DIR']).resolve() == " | |
| "Path(os.environ['OUTPUT_DIR'], 'logs').resolve()\n" | |
| "assert Path(os.environ['WANDB_DIR']).is_dir()\n", | |
| encoding="utf-8", | |
| ) | |
| torchrun.chmod(0o755) | |
| empty_pythonpath = tmp_path / "empty-pythonpath" | |
| empty_pythonpath.mkdir() | |
| env = os.environ.copy() | |
| env.pop("PYTORCH_CUDA_ALLOC_CONF", None) | |
| env.update( | |
| { | |
| "BACKWARD_PREFETCH": "BACKWARD_POST", | |
| "EXPECTED_BACKWARD_PREFETCH": "BACKWARD_POST", | |
| "OUTPUT_DIR": str(tmp_path / "output"), | |
| "EXPECTED_SOURCE_ROOT": str(REPO_ROOT), | |
| "PATH": f"{bin_dir}{os.pathsep}{env['PATH']}", | |
| "PYTHONPATH": str(empty_pythonpath), | |
| "STOP_AFTER_STEPS": "1", | |
| } | |
| ) | |
| result = subprocess.run( | |
| ["bash", str(REPO_ROOT / "scripts/train_thinkmorph_paper_4gpu.sh")], | |
| cwd=tmp_path, | |
| env=env, | |
| capture_output=True, | |
| text=True, | |
| timeout=30, | |
| ) | |
| assert result.returncode == 0, result.stderr | |
Xet Storage Details
- Size:
- 2 kB
- Xet hash:
- 43eebb9e957dcc293ddd3428f5a85b1e9cbc116c970788639b1138c18396762f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.