pub struct GemmRequest<T: GemmSupported> {}Expand description
Typed cuBLAS gemm request: C = α·op(A)·op(B) + β·C.
lda/ldb/ldc follow cuBLAS’s column-major convention (see
cuBLAS docs). For the no-transpose case, lda = m, ldb = k,
ldc = m.
§Capability marker compile-fail
T: GemmSupported gates the dtype matrix. cuBLAS does not
support i64 gemm, so building a GemmRequest::<i64> is rejected
at compile time:
ⓘ
// Fails: i64 does not implement `GemmSupported`.
let _req = GemmRequest::<i64> {
a, b, c,
m: 1, n: 1, k: 1,
alpha: 1, beta: 0,
trans_a: cublasOperation_t::CUBLAS_OP_N,
trans_b: cublasOperation_t::CUBLAS_OP_N,
lda: 1, ldb: 1, ldc: 1,
reply: tx,
};Fields§
§a: GpuRef<T>§b: GpuRef<T>§c: GpuRef<T>§m: i32§n: i32§k: i32§alpha: T§beta: T§trans_a: cublasOperation_t§trans_b: cublasOperation_t§lda: i32§ldb: i32§ldc: i32§reply: Sender<Result<(), GpuError>>Implementations§
Source§impl<T> GemmRequest<T>
impl<T> GemmRequest<T>
Sourcepub fn into_msg(self) -> BlasMsg
pub fn into_msg(self) -> BlasMsg
Box-and-wrap into a crate::kernel::BlasMsg::Gemm variant.
Trait Implementations§
Source§impl GemmDispatch for GemmRequest<f32>
impl GemmDispatch for GemmRequest<f32>
Source§impl GemmDispatch for GemmRequest<f64>
impl GemmDispatch for GemmRequest<f64>
Auto Trait Implementations§
impl<T> Freeze for GemmRequest<T>where
T: Freeze,
impl<T> !RefUnwindSafe for GemmRequest<T>
impl<T> Send for GemmRequest<T>
impl<T> Sync for GemmRequest<T>
impl<T> Unpin for GemmRequest<T>where
T: Unpin,
impl<T> UnsafeUnpin for GemmRequest<T>where
T: UnsafeUnpin,
impl<T> !UnwindSafe for GemmRequest<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more