pub mod dispatch;
pub mod envelope;
pub mod record;
#[cfg(feature = "cublaslt")]
pub use dispatch::{BlasLtDispatch, BlasLtDispatchCtx};
#[cfg(feature = "nccl")]
pub use dispatch::{CollectiveDispatch, CollectiveDispatchCtx};
#[cfg(feature = "cudnn")]
pub use dispatch::{CudnnDispatch, CudnnDispatchCtx};
pub use dispatch::{
DevSliceArg, GemmDispatchCtx, NvrtcDispatchCtx, NvrtcLaunchDispatch, RngDispatch, ScalarArg,
};
#[cfg(feature = "cufft")]
pub use dispatch::{FftDispatch, FftDispatchCtx};
#[cfg(feature = "cusparse")]
pub use dispatch::{SendSparseHandle, SparseDispatch, SparseDispatchCtx, SparseOp};
#[cfg(feature = "cutensor")]
pub use dispatch::{TensorDispatch, TensorDispatchCtx, WorkspacePool};
pub mod blas;
pub use blas::{
AsumRequest, AxpyRequest, BlasActor, BlasMsg, CopyRequest, DotRequest, GeamRequest,
GemmRequest, GemmStridedBatchedRequest, GemvRequest, GerRequest, IamaxRequest, IaminRequest,
Nrm2Request, RotRequest, ScalRequest, SwapRequest, SyrkRequest, TrsmRequest,
};
#[cfg(feature = "cudnn")]
pub mod cudnn;
#[cfg(feature = "cudnn")]
pub use cudnn::{
ActivationFwdRequest, ActivationKind, ActivationRequest, AttentionMask, AttentionParams,
BatchNormRequest, ConvBwdDataRequest, ConvBwdFilterRequest, ConvDescParams, ConvForwardRequest,
ConvFwdRequest, ConvParams, CudnnActor, CudnnMsg, DropoutFwdRequest, EpilogueKind,
GroupNormRequest, InstanceNormRequest, LayerNormRequest, LrnFwdRequest, LrnParams,
MultiHeadAttnBwdRequest, MultiHeadAttnFwdRequest, NormBwdRequest, NormMode, NormPhase,
PoolBwdRequest, PoolFwdRequest, PoolMode, PoolParams, RnnBwdRequest, RnnDirection,
RnnFwdRequest, RnnMode, RnnParams, SoftmaxFwdRequest, SoftmaxMode, SoftmaxRequest,
TensorLayout,
};
#[cfg(feature = "cufft")]
pub mod fft;
#[cfg(feature = "cufft")]
pub use fft::{
FftActor, FftCallbackKind, FftDirection, FftKind, FftMsg, FftPlan, FftPlanMany, FftRequest,
PlanKey,
};
#[cfg(feature = "curand")]
pub mod rng;
#[cfg(feature = "curand")]
pub use rng::{Distribution, FillRequest, RngActor, RngGeneratorKind, RngMsg};
#[cfg(feature = "cusolver")]
pub mod solver;
#[cfg(feature = "cusolver")]
pub use solver::{
CholeskyRequest, GesvdjBatchedRequest, GetrfBatchedRequest, HegvdRequest, LuRequest,
LuSolveRequest, PotrfBatchedRequest, QrRequest, SolverActor, SolverDispatch, SolverMsg,
SvdRequest, SyevdRequest, SygvdRequest, Uplo,
};
#[cfg(all(feature = "cusolver", feature = "cusolver-sp"))]
pub use solver::{SparseCholeskyRequest, SparseLuRequest, SparseQrRequest};
#[cfg(feature = "cublaslt")]
pub mod blas_lt;
#[cfg(feature = "cublaslt")]
pub use blas_lt::{
Activation, BlasLtActor, BlasLtMsg, Epilogue, HeuristicCacheRef, MatmulRequest, ScaleSet,
WorkspacePool as BlasLtWorkspacePool,
};
#[cfg(feature = "nvrtc")]
pub mod nvrtc;
#[cfg(feature = "nvrtc")]
pub use nvrtc::{KernelArg, KernelHandle, NvrtcActor, NvrtcMsg, NvrtcOpts};
#[cfg(feature = "nccl")]
pub mod collective;
#[cfg(feature = "nccl")]
pub use collective::{
AllGatherRequest, AllReduceRequest, AllToAllRequest, AllToAllvRequest, BroadcastRequest,
CollectiveActor, CollectiveMsg, GroupGuard, NcclCapabilities, NcclReduceSupported, PreMulSumOp,
RecvRequest, ReduceOp, ReduceRequest, ReduceScatterRequest, SendRequest,
};
#[cfg(feature = "cusparse")]
mod sparse;
#[cfg(feature = "cusparse")]
pub use sparse::{CsrMatrix, SparseActor, SparseMsg};
#[cfg(feature = "cutensor")]
pub mod tensor;
#[cfg(feature = "cutensor")]
pub use tensor::{
ComputeDesc, ContractRequest, ElementwiseBinaryRequest, ElementwiseTrinaryRequest, OperandSpec,
PermutationRequest, ReductionRequest, TensorActor, TensorMsg, TensorSpec,
};