API reference
The namespaces, classes and structs this repository declares.
Namespaces
Classes
SushiBLAS::BLASOpsGives one point of access to the Level 1, 2 and 3 BLAS routines.
SushiBLAS::BlasScalarHolds one scalar argument of a BLAS call as a complex double, on the host.
SushiBLAS::Dispatch::ElementScalarHolds one double parameter as a value of each real and integer element type.
SushiBLAS::Dispatch::GemmEpilogueHolds a GEMM epilogue functor together with the regions it reads and writes.
SushiBLAS::Dispatch::NarrowedOpHolds an element functor with its N scalar parameters narrowed to T; this is what a kernel captures.
SushiBLAS::Dispatch::ScalarBoundHolds an element functor with N scalar parameters not yet narrowed; it stays on the host.
SushiBLAS::ElementwiseOpsRecords element-wise arithmetic and mathematical operations on contiguous tensors.
SushiBLAS::EngineOwns one task graph with its scratch pool, recorder, tensor factory and random stream, and runs the graph.
SushiBLAS::Internal::BlasMetadataBuilds the TaskMetadata of one BLAS task: scalars first, then flags.
SushiBLAS::Internal::KernelPairDispatcherRuns an operation's reference or SYCL kernel under the mode fixed at record time.
SushiBLAS::Internal::StorageKeepAliveHolds one reference to each distinct Storage a recorded task must keep allocated.
SushiBLAS::IOInput/Output operations for Tensors.
SushiBLAS::Kernels::ReferenceSumHolds the running sum of a reference kernel: in double for HALF, FLOAT32 and COMPLEX32, compensated for FLOAT64 and COMPLEX64.
SushiBLAS::Kernels::RunningSolutionHolds the solved elements of a substitution in Accumulator<T> between steps.
SushiBLAS::Level1Records the Level 1 BLAS routines.
SushiBLAS::Level2Records the Level 2 BLAS routines.
SushiBLAS::Level3Records the Level 3 BLAS routines.
SushiBLAS::LogicOpsRecords comparisons, boolean combinations and truth tests of tensors.
SushiBLAS::NonLinearOpsRecords activation functions and their backward passes on contiguous tensors.
SushiBLAS::OperandSetCollects the tensors one task touches: their regions and the storage they live in.
SushiBLAS::RandomOpsRecords random fills of tensors, drawing from one random stream.
SushiBLAS::Reduce::CompensatedComplexSumHolds a complex running sum as two CompensatedSum, one per component.
SushiBLAS::Reduce::CompensatedSumHolds a running sum that carries Neumaier's correction term.
SushiBLAS::Reduce::ExactSumHolds a running sum over a type whose addition is exact.
SushiBLAS::Reduce::RunningArgMaxHolds the running (value, index) maximum under the iamax reference kernel's NaN rule.
SushiBLAS::Reduce::RunningMaxHolds a running maximum in the shape the folding seams accumulate in.
SushiBLAS::Reduce::RunningProductHolds a running product, folded in the same fixed order as CompensatedSum.
SushiBLAS::Reduce::ScaledSumOfSquaresHolds a running Euclidean norm that cannot overflow or underflow on the way.
SushiBLAS::ReductionOpsRecords reductions of a tensor into a scalar result tensor or along an axis.
SushiBLAS::RngStreamHolds one counter-based random stream: a seed and an offset counter under one lock.
SushiBLAS::ScratchBufferLeases one device scratch block; the block returns to its pool when the last copy dies.
SushiBLAS::ScratchPoolOwns the shelf of device scratch blocks that ScratchBuffer leases come from.
SushiBLAS::SparseBLASSparse matrix operations.
SushiBLAS::SpatialOpsRecords windowed gathers, windowed reductions and channel-wise broadcasts.
SushiBLAS::StorageA class to manage memory for tensors.
SushiBLAS::TaskHandleIdentifies one task a TaskRecorder recorded, or no task.
SushiBLAS::TaskRecorderRecords tasks on one TaskGraph under one execution mode.
SushiBLAS::TensorFactoryAllocates dense tensors of one default layout from one runtime context.
Structs
SushiBLAS::Core::is_complexDetects whether a type is a
std::complexspecialization.SushiBLAS::Core::is_complex< std::complex< T > >Specialization matching any
std::complex<T>.SushiBLAS::Device::Grid1DHolds the launch geometry of a one-dimensional grid-stride kernel.
SushiBLAS::Device::LocalTileDemandHolds what a kernel that stages a tile in work-group local memory needs from a device.
SushiBLAS::Device::ProfileHolds the device properties a kernel is allowed to dispatch on.
SushiBLAS::Dispatch::ElementTagCarries one element type to a with_element_type arm as a value.
SushiBLAS::Dispatch::MatrixOperandHolds the batch count, matrix size, leading dimension and layout of one operand.
SushiBLAS::Dispatch::ReduceIdentityFinalizeThe finalizer a reduction with nothing to finalize passes.
SushiBLAS::Dispatch::ReduceIdentityTransformThe transform a reduction with nothing to transform passes.
SushiBLAS::Dispatch::ReductionScratchHolds a device buffer a reduction may stage per-work-group partials in.
SushiBLAS::Dispatch::VectorOperandHolds the element count and the distance between consecutive elements of a vector.
SushiBLAS::Kernels::AccumulatorOfNames the type a sum of T is accumulated in: T itself for every type but HALF.
SushiBLAS::Kernels::AccumulatorOf< sycl::half >Accumulates HALF in FLOAT32.
SushiBLAS::Kernels::ChannelBiasEpilogueAdds a per-channel bias to each GEMM output element, in either layout.
SushiBLAS::Kernels::ConjugatedConjugates: the policy of dotc, gerc, hemv, her, her2 and herk.
SushiBLAS::Kernels::GemmIdentityEpilogueStores the computed GEMM element unchanged.
SushiBLAS::Kernels::OperandAccessHolds the row step, the column step and the conjugation of one operand's op(X).
SushiBLAS::Kernels::RealOfNames the real component type of T: T itself for a real type.
SushiBLAS::Kernels::RealOf< std::complex< R > >Names R as the real component type of std::complex<R>.
SushiBLAS::Kernels::ReferenceAccumulatorOfNames the type a reference kernel sums a real T in: double.
SushiBLAS::Kernels::ReferenceAccumulatorOf< std::complex< R > >Sums a complex element in std::complex<double>.
SushiBLAS::Kernels::UnconjugatedLeaves every element as it is: the policy of an unconjugated or symmetric routine.
SushiBLAS::Launch::Shape1DHow one per-element kernel walks its elements.
SushiBLAS::Reduce::AxisPlanThe launch geometry of one segmented reduction.
SushiBLAS::Reduce::AxisSpanHolds where one segmented reduction's inputs and outputs live, in element counts.
SushiBLAS::Reduce::IndexedValuePairs a value with the index it was read from.
SushiBLAS::Reduce::PlanHolds the launch geometry of one reduction.
SushiBLAS::RngPositionHolds the seed and first offset one random task draws from.
SushiBLAS::Spatial::ColumnSpanHolds how an im2col matrix is addressed: a row stride and an element stride.
SushiBLAS::Spatial::ConvGeometryHolds a 2-D sliding window: its size, step, spacing and origin.
SushiBLAS::Spatial::WindowSpanHolds where one spatial operation's input and output live, in element counts.
SushiBLAS::TensorA structure that represents a multi-dimensional array of data.

