#![cfg_attr(not(feature = "std"), no_std)]
#![warn(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![recursion_limit = "138"]
#[macro_use]
mod macros;
pub mod backend;
pub mod device;
mod ops;
pub mod tensor;
#[cfg(feature = "remote-server")]
pub mod remote_server;
pub use backend::*;
pub use device::*;
pub use tensor::*;
extern crate alloc;
pub mod backends {
#[cfg(feature = "autodiff")]
pub use burn_autodiff as autodiff;
#[cfg(feature = "autodiff")]
pub use burn_autodiff::Autodiff;
#[cfg(feature = "cpu")]
pub use burn_cpu as cpu;
#[cfg(feature = "cpu")]
pub use burn_cpu::Cpu;
#[cfg(feature = "cuda")]
pub use burn_cuda as cuda;
#[cfg(feature = "cuda")]
pub use burn_cuda::Cuda;
#[cfg(feature = "rocm")]
pub use burn_rocm as rocm;
#[cfg(feature = "rocm")]
pub use burn_rocm::Rocm;
#[cfg(feature = "wgpu")]
pub use burn_wgpu as wgpu;
#[cfg(feature = "metal")]
pub use burn_wgpu::Metal;
#[cfg(feature = "vulkan")]
pub use burn_wgpu::Vulkan;
#[cfg(feature = "webgpu")]
pub use burn_wgpu::WebGpu;
#[cfg(feature = "wgpu")]
pub use burn_wgpu::Wgpu;
#[cfg(any(feature = "flex", default_backend))]
pub use burn_flex as flex;
#[cfg(any(feature = "flex", default_backend))]
pub use burn_flex::Flex;
#[cfg(feature = "ndarray")]
pub use burn_ndarray as ndarray;
#[cfg(feature = "ndarray")]
pub use burn_ndarray::NdArray;
#[cfg(feature = "tch")]
pub use burn_tch as libtorch;
#[cfg(feature = "tch")]
pub use burn_tch::LibTorch;
#[cfg(feature = "remote")]
pub use burn_remote as remote;
#[cfg(feature = "remote")]
pub use burn_remote::RemoteBackend as Remote;
pub use super::devices::*;
}
pub mod devices {
#[cfg(feature = "cpu")]
pub use burn_cpu::CpuDevice;
#[cfg(feature = "cuda")]
pub use burn_cuda::CudaDevice;
#[cfg(feature = "rocm")]
pub use burn_rocm::RocmDevice;
#[cfg(feature = "wgpu")]
pub use burn_wgpu::WgpuDevice;
#[cfg(any(feature = "flex", default_backend))]
pub use burn_flex::FlexDevice;
#[cfg(feature = "ndarray")]
pub use burn_ndarray::NdArrayDevice;
#[cfg(feature = "tch")]
pub use burn_tch::LibTorchDevice;
#[cfg(feature = "remote")]
pub use burn_remote::RemoteDevice;
#[cfg(feature = "remote")]
pub use burn_remote::BURN_REMOTE_ALPN;
}