Files
Maxfield AllisonandTheIrritainer 21d16bae36 build(docker): add ARM64 and DGX Spark container builds (#263)
* build(docker): add ARM64 and DGX Spark container builds

The quickstart image builds natively on ARM64, and a DGX Spark override selects
ARM64 with CUDA 13.0. PyTorch and the Python base image become build arguments,
with torch pinned at 2.14.0, so a new torch release cannot change the image
under an unrelated PR.

PyTorch's ARM64 CUDA 13.0 wheels depend on cuSPARSELt 0.8.0 (torch 2.11) or
0.8.1 (torch 2.14), whose wheels declare an SBSA tag that pip check rejects.
docker/check_torch.py checks the library is ELF64 AArch64 and loads it before
correcting only that tag and its RECORD hash. Any other version that carries
the same tag fails the build.

CI runs the smoke job on native AMD64 and ARM64 runners and builds the Spark
image without a GPU to check its CUDA libraries load.

Co-authored-by: TheIrritainer <theirritainer@gmail.com>

* docs(docker): credit the cuSPARSELt finding by handle

* build(docker): run laya-serve on DGX Spark

#234 added laya-serve as its own service, so the Spark override repeats the
ARM64, CUDA 13.0 and GPU settings for it, and its build takes the pinned torch
version. The workflow validates the HTTP plus Spark combination, and the Spark
additions sit apart from the other jobs so later workflow changes merge cleanly.

Co-authored-by: TheIrritainer <theirritainer@gmail.com>

---------

Co-authored-by: TheIrritainer <theirritainer@gmail.com>
2026-09-23 23:16:17 +05:30
..