Skip to content

CI check: linux-prebuilt on 0.1.27 (sm_80/86/89/90/120 + PTX) - #2

Closed
architectds wants to merge 2 commits into
mainfrom
pr/linux-prebuilt
Closed

architectds wants to merge 2 commits into
mainfrom
pr/linux-prebuilt

Conversation

@architectds

Copy link
Copy Markdown
Owner

Builds the workflow on the fork before replying on Niko1221#136. Closed once it passes.

…h release

- .github/workflows/linux-prebuilt.yml compiles strata-linux-x64.zip on
  Ubuntu 22.04 with no GPU. It builds the engine and the image encoder
  with CUDA 12.8, sm_80, sm_86 and sm_89 plus PTX, and the CPU code at the
  AVX2 baseline (STRATA_PORTABLE). It writes the BUILD.json get_prebuilt
  reads. A published release gets the zip and its SHA-256 as assets.
  Running it by hand, or a PR that changes the workflow, builds an
  artifact only.
- setup.py uses CUDA 12 on Linux:
  - CUDA 12.8's pip packages, pinned like the CUDA 13 ones (cuBLAS and
    the runtime sit in folders of their own);
  - driver 525 as the minimum;
  - the 12.8 toolkit when a compile has to install one.
  Windows keeps CUDA 13. STRATA_CUDA=12 or 13 picks the other one. A
  prebuilt built with another CUDA major is not used, since it would
  look for libraries setup did not install.
…and CUDA 13

- The workflow builds machine code for sm_80, sm_86, sm_89, sm_90 and
  sm_120, plus PTX for cards newer than those, and writes vision_archs
  into BUILD.json. CUDA 12.8's machine code runs from driver 525, but its
  PTX needs 570: a driver compiles the PTX of CUDA releases up to its
  own. So H100 and RTX 50 now get native code instead of the compute_89
  PTX.
- setup.py counts a card as covered by an engine when the engine has its
  architecture. A newer card counts too, but only when the driver can
  compile that CUDA's PTX (PTX_DRIVER: 12.8 needs 570, 13.0 needs 580).
  get_prebuilt otherwise compiles instead, and says a driver update would
  also do. engine_runs_on (and so ensure_engine_for) and the image
  encoder's vision_archs check use the same rule.
- A compile with a driver below 580 passes over a CUDA 13 toolkit on the
  PC (find_nvcc(below=(13, 0))), and installs 12.8 when there is none,
  because a CUDA 13 build would not run on that driver.
@architectds

Copy link
Copy Markdown
Owner Author

Built in 75 min (run 36639718189): 0.1.27, sm_80/86/89/90/120 + PTX, vision_archs in BUILD.json. Replying on Niko1221#136.

@architectds
architectds deleted the pr/linux-prebuilt branch October 2, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant