TosaToLinalg: Allow to skip the TOSA validation pass (#91742)
Allow to skip running the TOSA validation pass when spec conformance is not required.
This commit is contained in:
parent
ea238974e1
commit
ecce5ccdd5
@ -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".
|
||||
|
||||
@ -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());
|
||||
@ -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());
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user