Skip to content

Commit

Permalink
TosaToLinalg: Allow to skip the TOSA validation pass (#91742)
Browse files Browse the repository at this point in the history
Allow to skip running the TOSA validation pass when spec conformance is
not required.
  • Loading branch information
mgehre-amd authored May 14, 2024
1 parent ea23897 commit ecce5cc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
5 changes: 3 additions & 2 deletions mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ void addTosaToLinalgPasses(
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions =
TosaToLinalgNamedOptions(),
// Note: Default to 'none' level unless otherwise specified.
tosa::TosaValidationOptions const &validationOptions = {
tosa::TosaProfileEnum::Undefined, false, tosa::TosaLevelEnum::None});
std::optional<tosa::TosaValidationOptions> validationOptions =
tosa::TosaValidationOptions{tosa::TosaProfileEnum::Undefined, false,
tosa::TosaLevelEnum::None});

/// Populates TOSA to linalg pipelines
/// Currently, this includes only the "tosa-to-linalg-pipeline".
Expand Down
14 changes: 8 additions & 6 deletions mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ std::unique_ptr<Pass> mlir::tosa::createTosaToLinalg() {
void mlir::tosa::addTosaToLinalgPasses(
OpPassManager &pm, const TosaToLinalgOptions &options,
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions,
tosa::TosaValidationOptions const &validationOptions) {
std::optional<tosa::TosaValidationOptions> validationOptions) {
// Optional decompositions are designed to benefit linalg.
if (!options.disableTosaDecompositions)
pm.addNestedPass<func::FuncOp>(tosa::createTosaOptionalDecompositions());
Expand All @@ -93,7 +93,8 @@ void mlir::tosa::addTosaToLinalgPasses(
pm.addNestedPass<func::FuncOp>(tosa::createTosaLayerwiseConstantFoldPass(
{options.aggressiveReduceConstant}));
pm.addNestedPass<func::FuncOp>(tosa::createTosaMakeBroadcastablePass());
pm.addPass(tosa::createTosaValidation(validationOptions));
if (validationOptions)
pm.addPass(tosa::createTosaValidation(*validationOptions));
pm.addNestedPass<func::FuncOp>(tosa::createTosaToLinalg());
}

Expand All @@ -110,11 +111,12 @@ void mlir::tosa::registerTosaToLinalgPipelines() {
[](OpPassManager &pm) {
TosaToLinalgOptions tosaToLinalgOptions;
TosaToLinalgNamedOptions tosaToLinalgNamedOptions;
TosaValidationOptions validationOptions;
validationOptions.profile = tosa::TosaProfileEnum::BaseInference;
validationOptions.StrictOperationSpecAlignment = true;
validationOptions.level = tosa::TosaLevelEnum::EightK;
tosa::addTosaToLinalgPasses(pm, tosaToLinalgOptions,
tosaToLinalgNamedOptions,
/* validationOptions = */
{tosa::TosaProfileEnum::BaseInference,
/* StrictOperationSpecAlignment = */ true,
tosa::TosaLevelEnum::EightK});
validationOptions);
});
}

0 comments on commit ecce5cc

Please sign in to comment.