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
69
70
71
72
73
74
//! The runtime API of `CubeCL`: what a kernel author compiles against.
//!
//! A [`Client`](client::Client) reaches a device, a [`Handle`](server::Handle)
//! names memory on it, and a [`CubeKernel`](kernel::CubeKernel) is what a
//! launch hands over. The [`Server`](server::Server) trait is the contract a
//! runtime implements, and everything an implementation needs beyond the
//! contract — memory pools, streams, drivers, the compilation pipeline — lives
//! in `cubecl-server`, so that user code never depends on it.
//!
//! # Error handling
//!
//! A failure belongs to the memory that work left unwritten and travels the
//! dataflow from there: nothing here holds error state beside the buffers.
//! `Taint`, `ErrorGraph`, `Failures` and `ExecuteScope` in `cubecl-server` are
//! the four pieces, and `ERROR_HANDLING.md` at the repository root is the
//! argument for why they are shaped that way — read it before changing any of
//! them.
extern crate std;
extern crate alloc;
extern crate derive_new;
/// Various identifier types used in `CubeCL`.
/// Kernel related traits.
/// Throughput related utilities.
/// Compute client module.
/// The device type of each runtime.
/// Autotune module
/// Memory management value types: reports, configuration and the managed
/// handle. The pools behind them are `cubecl-server`'s.
/// Compute server module.
/// Compute Storage contract.
/// `CubeCL` config module.
pub use benchmark;
/// Logging utilities to be used by a compute server.
/// TMA-related runtime types
/// Compiler trait and related types
/// Running a workload for the compilation and tuning it provokes, without
/// running the workload itself.
/// Runtime trait and related types