| --- |
| license: other |
| license_name: nvidia-cuda-toolkit-eula |
| license_link: https://docs.nvidia.com/cuda/eula/index.html |
| tags: |
| - cuda |
| - cudnn |
| - windows |
| - runtime |
| - animhaven |
| --- |
| |
| # AnimHaven CUDA Runtime |
|
|
| NVIDIA **CUDA Toolkit + cuDNN runtime DLLs** for the AnimHaven app |
| family ([AnimStart](https://github.com/Initnatsnok/animstart), AnimRoom). |
| Distributed separately from the application installers so the base |
| download stays small (~150 MB) and only NVIDIA-GPU users pull these |
| ~2.85 GB of native libraries on demand. |
|
|
| --- |
|
|
| ## What's in this repo |
|
|
| A flat directory of Windows `.dll` files comprising: |
|
|
| | Family | Files | Approx. size | |
| |---|---|---:| |
| | **CUDA Toolkit** | `cublas64_12.dll`, `cublasLt64_12.dll`, `cudart64_12.dll` | ~548 MB | |
| | **cuDNN** | `cudnn*.dll` (engines, graph, ops, heuristic) | ~947 MB | |
| | **CUDA Math** | `cufft64_11.dll`, `cufftw64_11.dll`, `curand64_10.dll` | ~350 MB | |
| | **NVRTC** | `nvJitLink_120_0.dll`, `nvrtc*.dll` | ~262 MB | |
| | **CUDA engine bindings** | `ggml-cuda.dll` (from llama.cpp build), `onnxruntime_providers_cuda.dll` | ~741 MB | |
| | **Total** | ~20 files | **~2.85 GB** | |
|
|
| All files are NVIDIA's redistributable binaries vendored from the CUDA |
| Toolkit installer + cuDNN release. No modifications. |
|
|
| --- |
|
|
| ## Usage |
|
|
| **This repo is consumed by the in-app installer** β you typically don't |
| download it directly. AnimStart's SetupWizard ("GPU acceleration" |
| step) and Settings β Advanced β "GPU acceleration" both pull these |
| files via HuggingFace LFS into `<APPDATA>/AnimHaven/cuda_runtime/`, |
| verify SHA256, and register the directory with the Windows DLL loader |
| via `AddDllDirectoryW`. |
|
|
| The manifest (file paths + sizes + SHA256) is **baked into the |
| AnimStart binary** at compile time via |
| `include_str!("anim-shared/cuda-runtime-manifest.json")`, so the |
| installer has zero network round-trips on top of the file downloads |
| themselves. |
|
|
| ### Direct download (advanced) |
|
|
| If you need to manually populate `cuda_runtime/`, e.g. for offline |
| provisioning of a kiosk machine, clone the repo with Git LFS: |
|
|
| ```bash |
| git lfs install |
| git clone https://huggingface.co/Animhaven/cuda-runtime |
| # Copy contents of cuda-runtime/ to %APPDATA%/AnimHaven/cuda_runtime/ |
| ``` |
|
|
| --- |
|
|
| ## License |
|
|
| The DLLs in this repo are NVIDIA software, redistributed under their |
| respective EULAs: |
|
|
| - **CUDA Toolkit components** (`cublas*.dll`, `cudart*.dll`, `cufft*.dll`, |
| `curand*.dll`, `nvJitLink*.dll`, `nvrtc*.dll`) β covered by the |
| [NVIDIA CUDA Toolkit End User License Agreement](https://docs.nvidia.com/cuda/eula/index.html). |
| - **cuDNN components** (`cudnn*.dll`) β covered by the |
| [NVIDIA cuDNN Software License Agreement](https://docs.nvidia.com/deeplearning/cudnn/sla/index.html). |
| - **`ggml-cuda.dll`** β derived from llama.cpp (MIT) compiled against |
| the CUDA Toolkit. |
| - **`onnxruntime_providers_cuda.dll`** β derived from ONNX Runtime |
| (MIT) compiled against CUDA. |
|
|
| The AnimStart in-app installer surfaces both NVIDIA EULAs as direct |
| links and treats a click on "Install" as user acceptance (Soft-EULA |
| model). The acceptance is persisted per-installation so the dialog |
| doesn't re-prompt. |
|
|
| --- |
|
|
| ## Versioning |
|
|
| The repo tracks a single rolling pack on `main`. When the CUDA Toolkit |
| or cuDNN version changes, the entire pack is re-uploaded β git history |
| preserves prior versions for any downstream clients that pinned a SHA |
| in their manifest. |
|
|
| Current version is encoded in the `manifest.json` baked into the |
| AnimStart binary (field `version`, e.g. `v12.4-cudnn9`). |
|
|
| --- |
|
|
| ## Why this pack instead of asking users to install CUDA? |
|
|
| 1. **One-click UX** β typical users don't know what CUDA Toolkit is or |
| which version AnimStart wants. Installing the full toolkit (~3 GB |
| developer tools they don't need) is wasteful. |
| 2. **Version isolation** β different apps using different CUDA versions |
| conflict in `PATH`. By keeping our copy in `<APPDATA>/AnimHaven/` |
| and registering only for our process, we don't pollute the |
| system-wide DLL search order. |
| 3. **Exact ABI match** β the `ggml-cuda.dll` and |
| `onnxruntime_providers_cuda.dll` shipped here are compiled against |
| the specific CUDA Toolkit version in this repo. A user-supplied |
| different version would either fail to link or produce subtle |
| inference bugs. |
|
|