-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Profile configurations for InnerOuterPersistent scheduler in python f…
…rontend (#3118) # Summary This PR explores auto-tuning a `LayerNormBackward` fusion using the `InnerOuterPersistent` scheduler in the python-frontend. - Create `autotune_persistent.py` to test several parameter configurations then apply `DecisionTreeRegressor` - The selected performance metric is `effective_bandwidth_gbs`. The empirical scheduler selects the configuration that has the highest predicted `effective_bandwidth_gbs`. # Key differences from approach for `Pointwise` scheduler - `vectorize_factor`, `thread_per_block_min`, and `thread_per_block_max` are specified before running `computeHeuristics`. These settings are akin to hyper-parameters used to constrain the generated scheduler parameters. - Create `SchedulerHyperParameters` as an entry in `HeuristicDataCache` to specify these constraints when generating scheduler parameters. # Details 1. Create `struct SchedulerHyperParameters` in `csrc/scheduler/utils.h` 2. Create `HeuristicDataCacheEntry` in `csrc/scheduler/compile_time_info.h` 3. Modify `computeHeuristics` to use hyper-parameter constraints. 4. Expose `SchedulerHyperParameters` in python frontend. 5. Allow user schedulers to define a `HeuristicDataCache` during scheduling. * `ScheduleHyperParameters` contains parameters for `vectorize_factor`, `unroll_factor`, `threads_per_block_min`, and `threads_per_block_max`.
- Loading branch information
Showing
9 changed files
with
590 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.