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:
@@ -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"
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user