|
1 | 1 | import os |
2 | 2 | import platform |
3 | 3 |
|
4 | | - |
5 | | -def _hpcc_toolkit_root() -> str: |
6 | | - """HPCC/MACA install root (cu-bridge, headers). Env vars first; else common container path.""" |
7 | | - for key in ("MACA_PATH", "MACA_HOME", "MACA_ROOT"): |
8 | | - v = os.environ.get(key, "").strip() |
9 | | - if v: |
10 | | - return v |
11 | | - if os.path.isdir("/opt/hpcc"): |
12 | | - return "/opt/hpcc" |
13 | | - return "" |
14 | | - |
15 | | - |
16 | | -def _prepend_path_var(name, prefixes): |
17 | | - """Prepend colon-separated *prefixes* to env var *name* (POSIX).""" |
18 | | - if not prefixes: |
19 | | - return |
20 | | - chunk = ":".join(prefixes) |
21 | | - cur = os.environ.get(name, "") |
22 | | - os.environ[name] = f"{chunk}:{cur}" if cur else chunk |
23 | | - |
24 | | - |
25 | | -def ensure_aten_torch_compiler_includes() -> None: |
26 | | - """If HPCC root is known, prepend cu-bridge + HPCC headers for g++ compiling ATen .cc (c10/cuda).""" |
27 | | - root = _hpcc_toolkit_root() |
28 | | - if not root: |
29 | | - return |
30 | | - dirs = [ |
31 | | - os.path.join(root, "tools", "cu-bridge", "include"), |
32 | | - os.path.join(root, "include", "hcr"), |
33 | | - os.path.join(root, "include"), |
34 | | - ] |
35 | | - for var in ("CPATH", "CPLUS_INCLUDE_PATH", "C_INCLUDE_PATH"): |
36 | | - _prepend_path_var(var, dirs) |
| 4 | +from metax_env import set_env_for_metax_gpu |
37 | 5 |
|
38 | 6 |
|
39 | 7 | def _parse_xmake_cli_flag_values(flags: str): |
@@ -61,20 +29,17 @@ def _truthy_flag_value(v: str) -> bool: |
61 | 29 | return v in ("y", "yes", "true", "1", "on") |
62 | 30 |
|
63 | 31 |
|
64 | | -# xmake.lua GPU / accelerator backends (any of these + aten may compile C++ against torch+cuda-style headers). |
65 | | -_XMAKE_GPU_BACKEND_KEYS = frozenset( |
66 | | - { |
67 | | - "metax-gpu", |
68 | | - } |
69 | | -) |
70 | | - |
71 | | - |
72 | | -def xmake_flags_need_aten_torch_compiler_includes(flags: str) -> bool: |
73 | | - """True when ATen is enabled with any GPU/accelerator backend (install.py / xmake f ...).""" |
| 32 | +def set_env_by_config(flags: str) -> None: |
| 33 | + """Set environment variables for InfiniCore builds with xmake config flags.""" |
74 | 34 | d = _parse_xmake_cli_flag_values(flags) |
75 | | - if not _truthy_flag_value(d.get("aten", "n")): |
76 | | - return False |
77 | | - return any(_truthy_flag_value(d.get(k, "n")) for k in _XMAKE_GPU_BACKEND_KEYS) |
| 35 | + if _truthy_flag_value(d.get("metax-gpu", "n")): |
| 36 | + set_env_for_metax_gpu( |
| 37 | + flags, |
| 38 | + parse_xmake_cli_flag_values=_parse_xmake_cli_flag_values, |
| 39 | + truthy_flag_value=_truthy_flag_value, |
| 40 | + ) |
| 41 | + else: |
| 42 | + pass |
78 | 43 |
|
79 | 44 |
|
80 | 45 | def set_env(): |
|
0 commit comments