CUTLASS 3.5.0 (#1411)

This commit is contained in:
Vijay Thakkar
2024-03-19 17:51:04 -04:00
committed by GitHub
parent ffa34e7075
commit 629f4653c3
468 changed files with 48729 additions and 7252 deletions
@@ -158,8 +158,8 @@ using DispositionMap = std::map<library::Provider, Disposition>;
// Print vector for the report
template <typename T>
std::ostream& operator<< (std::ostream& out, const std::vector<T>& v) {
for(int i = 0; i < v.size(); ++i) {
out << to_string(v[i], true) << (i+1 != v.size() ? "," : "");
for (size_t i = 0; i < v.size(); ++i) {
out << to_string(v[i], true) << (i + 1u != v.size() ? "," : "");
}
return out;
}
@@ -29,7 +29,7 @@
*
**************************************************************************************************/
/* \file
\brief Defines a math function
\brief Gemm Profiler
*/
#pragma once
@@ -67,23 +67,23 @@ public:
/// Problem structure obtained from problem space
struct GemmProblem {
cutlass::library::GemmUniversalMode mode;
cutlass::library::GemmUniversalMode mode{library::GemmUniversalMode::kGemm};
int64_t m;
int64_t n;
int64_t k;
int64_t lda;
int64_t ldb;
int64_t ldc;
int64_t m{16};
int64_t n{16};
int64_t k{16};
int64_t lda{0};
int64_t ldb{0};
int64_t ldc{0};
std::vector<uint8_t> alpha;
std::vector<uint8_t> beta;
cutlass::library::SplitKMode split_k_mode;
int split_k_slices;
int batch_count;
cutlass::library::SplitKMode split_k_mode{library::SplitKMode::kNone};
int split_k_slices{1};
int batch_count{1};
cutlass::library::RasterOrder raster_order;
cutlass::library::RasterOrder raster_order{cutlass::library::RasterOrder::kHeuristic};
// gemm with parallel interleaved reduction
// gemm epilogue (alpha, beta) = (1.0, 0.0)
// reduction epilogue (alpha, beta) = (GemmProblem::alpha, GemmProblem::beta)
@@ -94,18 +94,6 @@ public:
// Methods
//
GemmProblem():
mode(library::GemmUniversalMode::kGemm),
m(16),
n(16),
k(16),
lda(0),
ldb(0),
ldc(0),
split_k_slices(1),
batch_count(1),
raster_order(cutlass::library::RasterOrder::kHeuristic){ }
/// Parses the problem
Status parse(
library::GemmDescription const &operation_desc,
@@ -128,15 +116,15 @@ public:
/// Workspace used
struct GemmWorkspace {
DeviceAllocation *A;
DeviceAllocation *B;
DeviceAllocation *C;
DeviceAllocation *Computed;
DeviceAllocation *Reference;
DeviceAllocation *A{nullptr};
DeviceAllocation *B{nullptr};
DeviceAllocation *C{nullptr};
DeviceAllocation *Computed{nullptr};
DeviceAllocation *Reference{nullptr};
/// Number of copies of the problem workspace which are visited sequentially during
/// profiling to avoid camping in the last level cache.
int problem_count;
int problem_count{1};
library::GemmUniversalConfiguration configuration;
library::GemmUniversalArguments arguments;
@@ -153,13 +141,6 @@ public:
/// Buffer used for the cutlass reduction operations' host workspace
std::vector<uint8_t> reduction_host_workspace;
//
// Methods
//
GemmWorkspace():
A(nullptr), B(nullptr), C(nullptr), Computed(nullptr), Reference(nullptr), problem_count(1) { }
};
protected: