proto-cuda/nvrtc/worker.cpp serves igneum-miner's worker protocol with nothing installed but the NVIDIA driver: nvcuda.dll and the redistributable nvrtc64_120_0.dll are opened with LoadLibrary (cuda_api.h), the pack's kernel.cu and kernel_bound.cu are handed to NVRTC byte for byte up to the host launch wrappers with program.h and memhard.h as named headers, every pack is self-tested against its vectors.h (cache head, last line, FNV-1a 64, dataset head, last word, 64 samples, 96 vector lanes) before it serves a job, prepare runs on a thread for the hourly swap, and a job on seeds without a pair makes the worker find the miner's pack by seeds.txt and build it. packfile.h (C99) reads a pack directory. fetch-redist.sh verifies and stages the NVIDIA 12.8.93 redistributables and the Khronos headers (THIRD-PARTY.md records URLs, hashes and the EULA clause); build-windows.sh cross-compiles with mingw (static, KERNEL32 + Universal CRT only). emu/: the two libraries as host functions, the pack kernels on host threads, the NVRTC source compared with the pack files; test.sh PASS on the Mac (two real packs, swap, self-heal, 17 sampled hashes equal igneum-pow hash-bound). Not run here: the real NVRTC compile and driver load (RTX 5090 PC). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4.8 KiB
Third-party pieces of the one-click Windows workers
Recorded 4 October 2026. Nothing listed here is committed to this repository; fetch-redist.sh downloads every
file into ~/.cache/igneum/, checks its SHA-256 against the values below and stages it under proto-cuda/nvrtc/redist/
(gitignored). build-windows.sh compiles against the headers; windows-app/make-package.sh ships the two NVRTC DLLs
and the two licence texts in the zip. Nothing else third-party is in the package.
Shipped in the package
| File in the zip | Source | Version | Size (bytes) | SHA-256 |
|---|---|---|---|---|
nvrtc64_120_0.dll |
NVIDIA CUDA redistributable, package cuda_nvrtc (NVIDIA Runtime Compilation Library) |
12.8.93 (CUDA 12.8 Update 1, released 2025-03-06) | 86,728,192 | 02d2d7ef4690bf1a (first 16 hex; the archive's hash is below) |
nvrtc-builtins64_128.dll |
same package | 12.8.93 | 6,356,480 | a7afa2a40cbd3f92 (first 16 hex) |
LICENSE-NVIDIA-CUDA-EULA.txt |
the LICENSE file inside the same archive (NVIDIA Software License Agreement and CUDA Supplement) |
63,021 | e2c71babfd18a8e6 (first 16 hex) |
|
LICENSE-Khronos-OpenCL-Headers.txt |
Khronos OpenCL-Headers LICENSE (Apache License 2.0); the headers themselves are build-only |
v2026.05.29 | 11,358 | cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 |
Archive the two DLLs come from (verified by fetch-redist.sh):
| Archive | URL | SHA-256 (from NVIDIA's redistrib_12.8.1.json) |
|---|---|---|
cuda_nvrtc-windows-x86_64-12.8.93-archive.zip (305,588,898 bytes) |
https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.8.93-archive.zip |
a63302a077f0248a743a1a7caa7dbd80d0fac56c6cfa9c41fa05fac9b7e5eda5 |
The archive also holds nvrtc64_120_0.alt.dll and static libraries; they are not shipped and not used.
Why the two DLLs may be redistributed
The NVIDIA Software License Agreement (the LICENSE file above, section 2.2 "Distribution": "The portions of the SDK that
are distributable under the Agreement are listed in Attachment A") lists in Attachment A, under "NVIDIA Runtime
Compilation Library and Header":
All: nvrtc.h Windows: nvrtc.dll, nvrtc-builtins.dll
and the preamble of Attachment A covers the versioned file names ("including certain variations of these files that have
version number or architecture specific information embedded in the file name"), which is what nvrtc64_120_0.dll and
nvrtc-builtins64_128.dll are. Section 2.1 limits the licence to applications "for use in systems with NVIDIA GPUs",
which is the case: the worker runs on NVIDIA GPUs only. The DLLs are shipped unmodified next to the exe. The licence text
is in the package so the user can read it.
Build-only (compiled against, never shipped)
| File | Source | Version | SHA-256 |
|---|---|---|---|
cuda.h (the driver API header) |
NVIDIA CUDA redistributable, package cuda_cudart, archive cuda_cudart-windows-x86_64-12.8.90-archive.zip (3,037,735 bytes) at https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.8.90-archive.zip, archive SHA-256 4a39058fd8519444a81cfc7ae055d136f48d1a31ffa41ae255b35b2edd61e13b |
12.8.90 | 167e383a3791226c (first 16 hex) |
nvrtc.h |
the cuda_nvrtc archive above (Attachment A lists it as redistributable too) |
12.8.93 | 85d79ff186392c1b (first 16 hex) |
CL/cl.h |
https://raw.githubusercontent.com/KhronosGroup/OpenCL-Headers/v2026.05.29/CL/cl.h |
v2026.05.29 | 16d09614cd7eef73b4094089cc4ce2af777181d3ffe9613473fb6d552234a4d1 |
CL/cl_platform.h |
same tag | b125cece6fe41f2e6690d88b24652c151cb6654da13b42180d69d5bd9ed526d7 |
|
CL/cl_version.h |
same tag | 1e571dd68566330dd066cf778e07909a3cabeb2b969c5578c60f14baba7df1af |
|
CL/cl_ext.h |
same tag (fetched for completeness; host.c includes cl.h only) |
fe8916fd98b739cbc47ecab387bee2d258fa939c1bd2e10415c6f8f8b7055968 |
cuda.h is not in Attachment A, so it is used only to compile the worker on the Mac and is not in the package. The
worker never links a CUDA import library: nvcuda.dll (installed by every NVIDIA driver) and nvrtc64_120_0.dll are
opened with LoadLibrary and their entry points fetched with GetProcAddress (cuda_api.h, worker.cpp). The
OpenCL worker does the same with OpenCL.dll, the Khronos ICD loader that the AMD, NVIDIA and Intel drivers install
(proto-opencl/cl_dynamic.h).
What the user's PC needs
An NVIDIA driver (for the CUDA worker; the driver API is in nvcuda.dll, and the driver must be new enough for
CUDA 12.x) or an AMD, NVIDIA or Intel driver with OpenCL (for the OpenCL worker). Windows 10 or 11 (the exes import
only KERNEL32.dll and the Universal CRT api-ms-win-crt-* libraries, which both carry). No CUDA Toolkit, no Visual
Studio, no SDK.