@@ -84,6 +84,8 @@ public:
|
||||
int batch_count{1};
|
||||
|
||||
cutlass::library::RasterOrder raster_order{cutlass::library::RasterOrder::kHeuristic};
|
||||
int swizzle_size{1};
|
||||
|
||||
// gemm with parallel interleaved reduction
|
||||
// gemm epilogue (alpha, beta) = (1.0, 0.0)
|
||||
// reduction epilogue (alpha, beta) = (GemmProblem::alpha, GemmProblem::beta)
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Library(CommandLine const &cmdline);
|
||||
explicit Library(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Device(CommandLine const &cmdline);
|
||||
explicit Device(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -128,7 +128,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Initialization(CommandLine const &cmdline);
|
||||
explicit Initialization(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -170,7 +170,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Verification(CommandLine const &cmdline);
|
||||
explicit Verification(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -186,22 +186,26 @@ public:
|
||||
struct Profiling {
|
||||
|
||||
/// Number of workspaces to rotate through to avoid cache-resident working sets
|
||||
int workspace_count;
|
||||
int workspace_count{0};
|
||||
|
||||
/// Number of iterations to warmup each kernel prior to profiling
|
||||
int warmup_iterations;
|
||||
int warmup_iterations{10};
|
||||
|
||||
/// Number of iterations to profile each kernel - if 0, kernels are launched up to the profiling duration
|
||||
int iterations;
|
||||
int iterations{100};
|
||||
|
||||
/// Number of ms to sleep between profiling periods (ms)
|
||||
int sleep_duration;
|
||||
int sleep_duration{50};
|
||||
|
||||
/// If true, profiling is actually conducted.
|
||||
bool enabled;
|
||||
bool enabled{true};
|
||||
|
||||
/// If true, profiling returns an error code if no kernels are found to match the filters.
|
||||
bool error_on_no_match = false;
|
||||
bool error_on_no_match{false};
|
||||
|
||||
/// If true, profiling returns an error code if no kernel are profiled
|
||||
// Sometimes the kernel matches but failed to profile (e.g. can_implement() error)
|
||||
bool error_if_nothing_is_profiled{false};
|
||||
|
||||
/// List of providers of each functionality to be profiled
|
||||
ProviderVector providers;
|
||||
@@ -210,7 +214,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Profiling(CommandLine const &cmdline);
|
||||
explicit Profiling(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -255,7 +259,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
Report(CommandLine const &cmdline);
|
||||
explicit Report(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -277,7 +281,7 @@ public:
|
||||
// Methods
|
||||
//
|
||||
|
||||
About(CommandLine const &cmdline);
|
||||
explicit About(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out, int indent = 0) const;
|
||||
@@ -320,7 +324,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Options(CommandLine const &cmdline);
|
||||
explicit Options(CommandLine const &cmdline);
|
||||
|
||||
void print_usage(std::ostream &out) const;
|
||||
void print_options(std::ostream &out) const;
|
||||
|
||||
@@ -256,7 +256,7 @@ struct ScalarArgument : public KernelArgument {
|
||||
virtual std::ostream &print(std::ostream &out) const;
|
||||
};
|
||||
|
||||
using ValueCollection = std::vector<std::string>;
|
||||
using ValueCollection = std::vector<decltype(ScalarValue::value)>;
|
||||
|
||||
/// Abstract base class to iterate over values within arguments
|
||||
struct ScalarValueIterator : public KernelArgument::ValueIterator {
|
||||
@@ -271,7 +271,7 @@ struct ScalarArgument : public KernelArgument {
|
||||
// Methods
|
||||
//
|
||||
|
||||
ScalarValueIterator(ScalarArgument const *argument = nullptr);
|
||||
explicit ScalarValueIterator(ScalarArgument const *argument = nullptr);
|
||||
|
||||
virtual void operator++();
|
||||
virtual bool operator==(ValueIterator const &it) const;
|
||||
@@ -292,7 +292,7 @@ struct ScalarArgument : public KernelArgument {
|
||||
//
|
||||
|
||||
/// Default ctor
|
||||
ScalarArgument(
|
||||
explicit ScalarArgument(
|
||||
ArgumentDescription const *description
|
||||
):
|
||||
KernelArgument(description) { }
|
||||
@@ -632,7 +632,7 @@ struct TensorArgument : public KernelArgument {
|
||||
// Methods
|
||||
//
|
||||
|
||||
TensorValueIterator(TensorArgument const *argument_);
|
||||
explicit TensorValueIterator(TensorArgument const *argument_);
|
||||
|
||||
virtual void operator++();
|
||||
virtual bool operator==(ValueIterator const &it) const;
|
||||
@@ -649,7 +649,7 @@ struct TensorArgument : public KernelArgument {
|
||||
//
|
||||
|
||||
/// Default ctor
|
||||
TensorArgument(
|
||||
explicit TensorArgument(
|
||||
ArgumentDescription const *description
|
||||
):
|
||||
KernelArgument(description) { }
|
||||
@@ -690,7 +690,7 @@ struct EnumeratedTypeArgument : public KernelArgument {
|
||||
virtual std::ostream &print(std::ostream &out) const;
|
||||
};
|
||||
|
||||
using ValueCollection = std::vector<std::string>;
|
||||
using ValueCollection = std::vector<decltype(EnumeratedTypeValue::element)>;
|
||||
|
||||
/// Abstract base class to iterate over values within arguments
|
||||
struct EnumeratedTypeValueIterator : public KernelArgument::ValueIterator {
|
||||
@@ -705,7 +705,7 @@ struct EnumeratedTypeArgument : public KernelArgument {
|
||||
// Methods
|
||||
//
|
||||
|
||||
EnumeratedTypeValueIterator(EnumeratedTypeArgument const *argument_ = nullptr);
|
||||
explicit EnumeratedTypeValueIterator(EnumeratedTypeArgument const *argument_ = nullptr);
|
||||
|
||||
virtual void operator++();
|
||||
virtual bool operator==(ValueIterator const &it) const;
|
||||
@@ -725,7 +725,7 @@ struct EnumeratedTypeArgument : public KernelArgument {
|
||||
//
|
||||
|
||||
/// Default ctor
|
||||
EnumeratedTypeArgument(ArgumentDescription const *description):
|
||||
explicit EnumeratedTypeArgument(ArgumentDescription const *description):
|
||||
KernelArgument(description) {}
|
||||
|
||||
virtual bool not_null() const {
|
||||
@@ -819,7 +819,7 @@ public:
|
||||
//
|
||||
|
||||
/// Default ctor
|
||||
ProblemSpace() {}
|
||||
ProblemSpace() = default;
|
||||
|
||||
/// Constructs a problem space from a vector of arguments. This vector must outlive
|
||||
/// the ProblemSpace object, which stores pointers to objects within the
|
||||
|
||||
Reference in New Issue
Block a user