v4.2 release. (#2587)

* Fix default cluster callback values to 1 to avoid profiler failure when these values are not set in command line.

* v4.2 release.
This commit is contained in:
Junkai-Wu
2025-08-22 18:11:24 -04:00
committed by GitHub
parent 11cad1f67b
commit a49a78ffef
351 changed files with 28182 additions and 2032 deletions
+56
View File
@@ -550,6 +550,9 @@ void Options::Profiling::print_usage(std::ostream &out) const {
<< " --profiling-enabled=<bool> "
<< " If true, profiling is actually conducted.\n\n"
<< " --enable-best-kernel-for-fixed-shape=<bool> "
<< " If true, iterate through common cluster sizes, raster orders, and swizzle sizes for each kernel.\n\n"
;
}
@@ -593,6 +596,9 @@ Options::Verification::Verification(cutlass::CommandLine const &cmdline) {
if (enabled) {
cmdline.get_cmd_line_argument("verification-required", required, false);
}
else {
required = false;
}
cmdline.get_cmd_line_argument("epsilon", epsilon, 0.05);
@@ -847,6 +853,52 @@ Options::Options(cutlass::CommandLine const &cmdline):
for (std::string line; getline(input, line);) {
operation_names.push_back(line);
}
} else if (cmdline.check_cmd_line_flag("testlist-file")) {
// Problems file is a CSV, where the first column is the kernel name and the rest are the problem arguments
std::string filename;
cmdline.get_cmd_line_argument("testlist-file", filename, {});
std::ifstream input(filename);
if (!input.good()) {
throw std::runtime_error("failed to open: " + filename);
}
std::string line;
std::vector<std::string> col_names;
// Read header line
if (std::getline(input, line)) {
std::stringstream ss(line);
std::string header;
while (std::getline(ss, header, ',')) {
col_names.push_back(header);
}
}
// Read content lines
while (std::getline(input, line)) {
std::stringstream ss(line);
std::string item;
size_t colIdx = 0;
std::string operation_name;
std::unordered_map<std::string, std::string> arguments;
while (std::getline(ss, item, ',')) {
if (!colIdx) {
// First column is operation name
if (operation_problems.find(item) == operation_problems.end()) {
operation_names.push_back(item);
}
operation_name = item;
} else {
if (colIdx < col_names.size()) {
arguments[col_names[colIdx]] = item;
}
}
colIdx++;
}
operation_problems[operation_name].emplace_back(arguments);
}
}
if (cmdline.check_cmd_line_flag("ignore-kernels")) {
@@ -899,6 +951,10 @@ void Options::print_usage(std::ostream &out) const {
<< " --ignore-kernels=<string_list> "
<< " Excludes kernels whose names match anything in this list.\n\n"
<< " --testlist-file=<filename> "
<< " A CSV, where each row is a problem, where the first column is the kernel name and the rest are the problem arguments" << end_of_line
<< " The column names should match cutlass_profiler cmd line arguments. \n\n"
;
//