Skip to content

release: add Linux and native Windows CUDA archives - #26

Merged
Jsewill merged 10 commits into
cuda-onlyfrom
feature/windows-cuda
Sep 10, 2026
Merged

release: add Linux and native Windows CUDA archives#26
Jsewill merged 10 commits into
cuda-onlyfrom
feature/windows-cuda

Conversation

@Jsewill

@Jsewill Jsewill commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Add Linux and native Windows x86-64 CUDA archives with explicit GPU architectures, dependency licenses, source/toolchain metadata, and SHA-256 checksums. Tagged builds create draft releases for hardware qualification.

The Windows port covers private ACLs, concurrent spill I/O and file mapping, preallocation, durable plot/manifest publication, Unicode and extended paths, cryptographic seed generation, and console cancellation. MSVC and the Rust key generator use matching static runtimes. Include NVIDIA's upstream CCCL Windows PTX operand correction for the pinned CUDA 12.9 toolkit.

Supporting changes remove an unused production CLVM dependency and account for CUB's actual scratch requirement in tier admission.

Validation:

  • GitHub-hosted Linux and Windows release jobs passed. Every current PR check passed.
  • The final Linux build passed all 18 CTest tests. Its exact archive passed clean Ubuntu 22.04 runtime checks, all k=22/k=28 tier/spill CPU byte comparisons and full proofs, plus real CLI interruption, key-preserving resume, publication failure/recovery, and parallel CPU plotting. Earlier qualification also covered k=18–28.
  • Native Windows compiled every target with MSVC 19.44 and CUDA 12.9. All 11 host tests passed, including ACLs, concurrent I/O, mapping, large offsets, preallocation, and extended paths.
  • The exact Windows ZIP passed CPU plotting and full proofs, real Ctrl-Break cancellation, saved-key recovery, publication failure/cleanup, parallel workers, and Unicode benchmark output with toolkit libraries removed from PATH. Its PE imports contain only Windows system libraries.

Windows GPU qualification remains pending because no Windows GPU machine was available. Keep this PR draft until that hardware qualification is completed; hosted CPU tests do not establish GPU correctness or performance on Windows.

Linear k scaling underestimated Tiny at k=22: the fixed partition tile and full key capacity peaked at 41.96 MiB against a 16.63 MiB estimate. Scale the table portion by the shared capacity formula and retain the partition allowance so admission and the regression guard use the same estimate.
Only BLS derivation and plot-ID hashing are needed by the FFI. Depend on chia-bls directly and retain chia-protocol as a test oracle for the exact streamable encoding. This removes the unused VM and its static LGPL dependencies from the release dependency graph.
Build explicit Maxwell-through-Blackwell targets with CUDA 12.9.1 on Ubuntu 22.04. Package the executable, source and toolchain metadata, checksums, and dependency licenses through CPack. Test the extracted archive without a development toolkit and keep tagged releases in draft until GPU qualification.
Preserve private file creation, positional spill I/O, durable publication, and cancellation on native Windows. Build the standalone CLI with MSVC and a matching static Rust runtime, and verify the extracted ZIP with real CPU plotting and recovery checks.
The minimal CUDA installer omits EULA.txt. Verify and extract the license from the matching NVIDIA runtime redistribution archive instead. Restore the console code page when the CLI exits.
CUDA 12.9 bundles CCCL headers that use long2 where PTX requires 64-bit operands. Windows long is 32 bits, so Blackwell compilation fails before the plotter can link. Apply the exact upstream fix to a build-local header, following the existing solver patch mechanism, and record it in the package metadata.
@Jsewill
Jsewill marked this pull request as ready for review September 10, 2026 06:34
@Jsewill
Jsewill merged commit 7ca963e into cuda-only Sep 10, 2026
26 checks passed
@Jsewill
Jsewill deleted the feature/windows-cuda branch September 10, 2026 06:41
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