// CUTLASS v4.5.1 teaching path. Coverage: parser_only, not GPU-observed. #include #include #include #include #include int main() { int const m = 128, n = 128, k = 128; cutlass::device_memory::allocation a(m * k); cutlass::device_memory::allocation b(k * n); cutlass::device_memory::allocation c(m * n); using Gemm = cutlass::gemm::device::Gemm< float, cutlass::layout::RowMajor, float, cutlass::layout::RowMajor, float, cutlass::layout::RowMajor>; Gemm operation; Gemm::Arguments arguments( {m, n, k}, {a.get(), k}, {b.get(), n}, {c.get(), n}, {c.get(), n}, {1.0F, 0.0F}); auto status = operation.can_implement(arguments); if (status != cutlass::Status::kSuccess) return 2; status = operation(arguments); if (status != cutlass::Status::kSuccess) return 3; std::cout << "CUTLASS GEMM launch accepted; numerical receipt still required\n"; return 0; }