1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! Driver-only CUDA host stack shared by speakrs and scriptrs
//!
//! cudakit loads the NVIDIA driver (`libcuda`) at run time through cudarc and never
//! loads the CUDA Runtime (`libcudart`), so a build needs no CUDA toolkit and a
//! process needs only the driver. With the `libraries` feature, and only when the
//! consumer's [`Profile`] allows it, cuBLAS, cuDNN and NVRTC are loaded lazily, and
//! used only after a symbol preflight of the loaded library.
//!
//! It runs on Linux and Windows x86_64. On Windows the driver is `nvcuda.dll` from
//! System32, and the libraries are CUDA 12's or 13's `cublas64_*.dll` and
//! `nvrtc64_*0_0.dll` and cuDNN 9's `cudnn64_9.dll`, found in an absolute `PATH` entry
//! or `%CUDA_PATH%\bin\x64` and `%CUDA_PATH%\bin`, never in the current directory.
//! CI builds and tests the Windows build, but it hasn't run on a GPU yet.
//!
//! - [`Gpu`] owns one context and one stream, the device attributes and the optional
//! library handles
//! - [`Runtime`] adds a module cache for a consumer's [`KernelArea`]s: embedded PTX and
//! exact-architecture cubins, loaded by exact identity ([`ModuleRequest`])
//! - [`DeviceTensor`] is a shaped device buffer
//! - [`Sgemm`] and [`SgemmBatched`] describe row-major cuBLAS products
//! - [`Gpu::capture`] records stream work as a replayable [`Graph`]
//! - `dnn` plans cuDNN convolutions (feature `libraries`)
//! - [`identity`] reads the driver release for persisted tuning identities
//!
//! Kernels are written with cuda-oxide in each consumer's own kernels crate and built
//! offline by `cudakit-build`; see the [guide](https://github.com/avencera/cudakit/blob/master/docs/guide.md)
pub use ;
pub use Conv2d;
pub use DeviceAttributes;
pub use DeviceAttributesBuilder;
pub use ;
pub use ;
pub use Gpu;
pub use Graph;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
/// cudarc, re-exported so consumers use the exact version cudakit was built against
pub use cudarc;