#![warn(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[macro_use]
extern crate derive_new;
extern crate alloc;
pub mod ops;
pub mod kernel;
pub mod tensor;
pub mod element;
use cubecl::{CubeTask, Runtime};
pub use element::{BoolElement, CubeElement, FloatElement, IntElement};
mod backend;
pub use backend::*;
pub use cubecl;
mod tune_key;
pub use tune_key::CubeAutotuneKey;
#[cfg(any(feature = "fusion", test))]
pub mod fusion;
#[cfg(feature = "template")]
pub mod template;
pub trait CubeRuntime: Runtime<Device = Self::CubeDevice, Server = Self::CubeServer> {
type CubeDevice: burn_backend::DeviceOps;
type CubeServer: cubecl::server::ComputeServer<Kernel = Box<dyn CubeTask<Self::Compiler>>>;
}
pub use cubecl::CubeTuneId;