bgemm_tunable Class — pytorch Architecture
Architecture documentation for the bgemm_tunable class in CUDABlas.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/cuda/CUDABlas.cpp lines 918–961
template <typename Dtype, typename C_Dtype = Dtype>
inline void bgemm_tunable(CUDABLAS_BGEMM_ARGTYPES_AND_C_DTYPE(Dtype, C_Dtype)) {
tunable::GemmStridedBatchedParams<Dtype> params;
params.transa = transa;
params.transb = transb;
params.m = m;
params.n = n;
params.k = k;
params.alpha = alpha;
params.a = a;
params.lda = lda;
params.stride_a = stridea;
params.b = b;
params.ldb = ldb;
params.stride_b = strideb;
params.beta = beta;
params.c = c;
params.ldc = ldc;
params.stride_c = stridec;
params.batch = num_batches;
bool transa_ = ((transa != 'n') && (transa != 'N'));
bool transb_ = ((transb != 'n') && (transb != 'N'));
if (transa_ && transb_) {
static tunable::GemmStridedBatchedTunableOp<Dtype, tunable::BlasOp::T, tunable::BlasOp::T> bgemm{};
bgemm(¶ms);
}
else if (transa_ && !transb_) {
static tunable::GemmStridedBatchedTunableOp<Dtype, tunable::BlasOp::T, tunable::BlasOp::N> bgemm{};
bgemm(¶ms);
}
else if (!transa_ && transb_) {
static tunable::GemmStridedBatchedTunableOp<Dtype, tunable::BlasOp::N, tunable::BlasOp::T> bgemm{};
bgemm(¶ms);
}
else if (!transa_ && !transb_) {
static tunable::GemmStridedBatchedTunableOp<Dtype, tunable::BlasOp::N, tunable::BlasOp::N> bgemm{};
bgemm(¶ms);
}
else {
TORCH_CHECK(false, "unreachable");
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free