Download mindxtrain/deploy/quark.py from PYTHAI/mindXtrain: direct link, hf CLI and curl.
- Browser
- Download file 1.84 kB
-
https://huggingface.co/PYTHAI/mindXtrain/resolve/main/mindxtrain/deploy/quark.py
- Command line
-
hf download hf://PYTHAI/mindXtrain/mindxtrain/deploy/quark.py
-
curl -L -o quark.py https://huggingface.co/PYTHAI/mindXtrain/resolve/main/mindxtrain/deploy/quark.py
1.84 kB
| """AMD Quark quantization — FP8 (E4M3) for MI300X, MXFP4 for MI350X+. | |
| Subprocess wrapper around `python -m amd_quark.quantize`. The actual | |
| amd-quark Python module ships in the rocm/primus container (or the AMD | |
| Developer Cloud image); on a CPU-only dev box it's not installed and the | |
| function returns a clear error pointing the user to the container. | |
| Outputs a vLLM-loadable directory: `config.json`, `*.safetensors` with FP8 | |
| scales, tokenizer files, `generation_config.json`. | |
| """ | |
| from __future__ import annotations | |
| import importlib.util | |
| import shutil | |
| import subprocess | |
| from pathlib import Path | |
| from typing import Literal | |
| def _quark_available() -> bool: | |
| return importlib.util.find_spec("amd_quark") is not None or shutil.which("quark") is not None | |
| def _run_quark(in_dir: Path, out_dir: Path, scheme: Literal["fp8_e4m3", "mxfp4"]) -> Path: | |
| if not _quark_available(): | |
| msg = ( | |
| "amd-quark not installed; run inside the rocm/primus:v26.2 " | |
| "container or install per " | |
| "https://quark.docs.amd.com/. (scheme=" + scheme + ")" | |
| ) | |
| raise RuntimeError(msg) | |
| out_dir.mkdir(parents=True, exist_ok=True) | |
| cmd = [ | |
| "python", | |
| "-m", | |
| "amd_quark.quantize", | |
| "--model_dir", | |
| str(in_dir), | |
| "--output_dir", | |
| str(out_dir), | |
| "--scheme", | |
| scheme, | |
| ] | |
| subprocess.run(cmd, check=True) | |
| return out_dir | |
| def quark_fp8(in_dir: Path, out_dir: Path) -> Path: | |
| """Quantize an HF checkpoint to FP8 E4M3; return out_dir (vLLM-loadable).""" | |
| return _run_quark(in_dir, out_dir, "fp8_e4m3") | |
| def quark_mxfp4(in_dir: Path, out_dir: Path) -> Path: | |
| """Quantize an HF checkpoint to MXFP4 (CDNA 4 / MI350X+); return out_dir.""" | |
| return _run_quark(in_dir, out_dir, "mxfp4") | |
| __all__ = ["quark_fp8", "quark_mxfp4"] | |