pub struct TensorInputsCompilationArg<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine>where
Tensor<Vector<Q::T, Q::N>>: LaunchArg,
Tensor<Vector<K::T, K::N>>: LaunchArg,
Tensor<Vector<V::T, V::N>>: LaunchArg,
ComptimeOption<Tensor<Vector<M::T, M::N>>>: LaunchArg,{
pub query: <Tensor<Vector<Q::T, Q::N>> as LaunchArg>::CompilationArg,
pub key: <Tensor<Vector<K::T, K::N>> as LaunchArg>::CompilationArg,
pub value: <Tensor<Vector<V::T, V::N>> as LaunchArg>::CompilationArg,
pub mask: <ComptimeOption<Tensor<Vector<M::T, M::N>>> as LaunchArg>::CompilationArg,
}Fields§
§query: <Tensor<Vector<Q::T, Q::N>> as LaunchArg>::CompilationArg§key: <Tensor<Vector<K::T, K::N>> as LaunchArg>::CompilationArg§value: <Tensor<Vector<V::T, V::N>> as LaunchArg>::CompilationArg§mask: <ComptimeOption<Tensor<Vector<M::T, M::N>>> as LaunchArg>::CompilationArgTrait Implementations§
Source§impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Clone for TensorInputsCompilationArg<Q, K, V, M>
impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Clone for TensorInputsCompilationArg<Q, K, V, M>
Source§impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Debug for TensorInputsCompilationArg<Q, K, V, M>
impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Debug for TensorInputsCompilationArg<Q, K, V, M>
impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Eq for TensorInputsCompilationArg<Q, K, V, M>
Source§impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Hash for TensorInputsCompilationArg<Q, K, V, M>
impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> Hash for TensorInputsCompilationArg<Q, K, V, M>
Source§impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> PartialEq for TensorInputsCompilationArg<Q, K, V, M>
impl<Q: FloatLine, K: FloatLine, V: FloatLine, M: NumericLine> PartialEq for TensorInputsCompilationArg<Q, K, V, M>
Auto Trait Implementations§
impl<Q, K, V, M> !Freeze for TensorInputsCompilationArg<Q, K, V, M>
impl<Q, K, V, M> !RefUnwindSafe for TensorInputsCompilationArg<Q, K, V, M>
impl<Q, K, V, M> !Unpin for TensorInputsCompilationArg<Q, K, V, M>
impl<Q, K, V, M> !UnsafeUnpin for TensorInputsCompilationArg<Q, K, V, M>
impl<Q, K, V, M> !UnwindSafe for TensorInputsCompilationArg<Q, K, V, M>
impl<Q, K, V, M> Send for TensorInputsCompilationArg<Q, K, V, M>where
<Tensor<Vector<<Q as FloatLine>::T, <Q as FloatLine>::N>> as LaunchArg>::CompilationArg: Send,
<Tensor<Vector<<K as FloatLine>::T, <K as FloatLine>::N>> as LaunchArg>::CompilationArg: Send,
<Tensor<Vector<<V as FloatLine>::T, <V as FloatLine>::N>> as LaunchArg>::CompilationArg: Send,
<ComptimeOption<Tensor<Vector<<M as NumericLine>::T, <M as NumericLine>::N>>> as LaunchArg>::CompilationArg: Send,
impl<Q, K, V, M> Sync for TensorInputsCompilationArg<Q, K, V, M>where
<Tensor<Vector<<Q as FloatLine>::T, <Q as FloatLine>::N>> as LaunchArg>::CompilationArg: Sync,
<Tensor<Vector<<K as FloatLine>::T, <K as FloatLine>::N>> as LaunchArg>::CompilationArg: Sync,
<Tensor<Vector<<V as FloatLine>::T, <V as FloatLine>::N>> as LaunchArg>::CompilationArg: Sync,
<ComptimeOption<Tensor<Vector<<M as NumericLine>::T, <M as NumericLine>::N>>> as LaunchArg>::CompilationArg: Sync,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Compilation args should be the same even with different element types. However, it isn’t
possible to enforce it with the type system. So, we make the compilation args serializable
and dynamically cast them. Read more
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.