1#![cfg_attr(not(feature = "std"), no_std)]
2#![warn(missing_docs)]
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![recursion_limit = "138"]
5
6#[macro_use]
30mod macros;
31
32pub mod backend;
34pub mod device;
36mod ops;
37pub mod tensor;
39
40#[cfg(feature = "remote-server")]
42pub mod remote_server;
43
44pub use backend::*;
45pub use device::*;
46pub use tensor::*;
47
48extern crate alloc;
49
50pub mod backends {
52 #[cfg(feature = "autodiff")]
53 pub use burn_autodiff as autodiff;
54 #[cfg(feature = "autodiff")]
55 pub use burn_autodiff::Autodiff; #[cfg(feature = "cpu")]
58 pub use burn_cpu as cpu;
59 #[cfg(feature = "cpu")]
60 pub use burn_cpu::Cpu;
61 #[cfg(feature = "cuda")]
62 pub use burn_cuda as cuda;
63 #[cfg(feature = "cuda")]
64 pub use burn_cuda::Cuda;
65 #[cfg(feature = "rocm")]
66 pub use burn_rocm as rocm;
67 #[cfg(feature = "rocm")]
68 pub use burn_rocm::Rocm;
69 #[cfg(feature = "wgpu")]
70 pub use burn_wgpu as wgpu;
71 #[cfg(feature = "metal")]
72 pub use burn_wgpu::Metal;
73 #[cfg(feature = "vulkan")]
74 pub use burn_wgpu::Vulkan;
75 #[cfg(feature = "webgpu")]
76 pub use burn_wgpu::WebGpu;
77 #[cfg(feature = "wgpu")]
78 pub use burn_wgpu::Wgpu;
79
80 #[cfg(any(feature = "flex", default_backend))]
81 pub use burn_flex as flex;
82 #[cfg(any(feature = "flex", default_backend))]
83 pub use burn_flex::Flex;
84 #[cfg(feature = "ndarray")]
85 pub use burn_ndarray as ndarray;
86 #[cfg(feature = "ndarray")]
87 pub use burn_ndarray::NdArray;
88 #[cfg(feature = "tch")]
89 pub use burn_tch as libtorch;
90 #[cfg(feature = "tch")]
91 pub use burn_tch::LibTorch;
92
93 #[cfg(feature = "remote")]
94 pub use burn_remote as remote;
95 #[cfg(feature = "remote")]
96 pub use burn_remote::RemoteBackend as Remote;
97
98 pub use super::devices::*;
99}
100
101pub mod devices {
105 #[cfg(feature = "cpu")]
106 pub use burn_cpu::CpuDevice;
107 #[cfg(feature = "cuda")]
108 pub use burn_cuda::CudaDevice;
109 #[cfg(feature = "rocm")]
110 pub use burn_rocm::RocmDevice;
111 #[cfg(feature = "wgpu")]
112 pub use burn_wgpu::WgpuDevice;
113
114 #[cfg(any(feature = "flex", default_backend))]
115 pub use burn_flex::FlexDevice;
116 #[cfg(feature = "ndarray")]
117 pub use burn_ndarray::NdArrayDevice;
118 #[cfg(feature = "tch")]
119 pub use burn_tch::LibTorchDevice;
120
121 #[cfg(feature = "remote")]
122 pub use burn_remote::RemoteDevice;
123
124 #[cfg(feature = "remote")]
125 pub use burn_remote::BURN_REMOTE_ALPN;
126}