Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[microNPU][3] Plan generation for the cascader #9890

Merged
merged 4 commits into from
Feb 3, 2022

Conversation

mbaret
Copy link
Contributor

@mbaret mbaret commented Jan 10, 2022

RFC: apache/tvm-rfcs#37
Issue: #9429

The cascader creates 'Plans' which describe how to schedule subgraphs. As part of the cascading algorithm, it's necessary to explore a large variety of Plans which are Pareto optimal (in terms of memory usage and performance). This is done by the Plan generation algorithm.

This commit adds the TensorConfig and Plan data structures which hold information on how to schedule the tensors/operators. Additionally, it includes functions to calculate Pareto frontiers which are used to cull sub-optimal Plans.

Copy link
Contributor

@manupak manupak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broadly looks good!.

I noticed that we dont have docstrings for some python functions/classes/objects that calls into C++ version that is well documented. However, it feels better to write a short summary there and with a forward pointer to detailed description.

@mbaret mbaret force-pushed the ethosu-cascader-6 branch from 59dd0ec to 91e522b Compare February 2, 2022 15:33
@mbaret
Copy link
Contributor Author

mbaret commented Feb 2, 2022

I've added docs to all the functions/classes that are meant to be used/access via Python, and marked those functions which are used only for testing as private.

Copy link
Contributor

@manupak manupak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mbaret . LGTM!

The cascader creates 'Plans' which describe how
to schedule subgraphs. As part of the cascading
algorithm, it's necessary to explore a large
variety of Plans which are Pareto optimal (in
terms of memory usage and performance). This is
done by the Plan generation algorithm.

This commit adds the TensorConfig and Plan data
structures which hold information on how to schedule
the tensors/operators. Additionally, it includes
functions to calculate Pareto frontiers which are
used to cull sub-optimal Plans.

Change-Id: Ia358b2a1b29bd810df4441027752ced75812ad4e
Change-Id: If4e083a3c96af75a8ffa72510704818d21a477d9
Change-Id: I831137f8235665bc20ab4c060cc7049ffd48088a
Change-Id: Ifbe97eb33b1ef313710f24c687a8155421a3c195
@mbaret mbaret force-pushed the ethosu-cascader-6 branch from 91e522b to 1a0df5c Compare February 3, 2022 13:34
@manupak manupak merged commit f2b7e82 into apache:main Feb 3, 2022
@manupak
Copy link
Contributor

manupak commented Feb 3, 2022

Thanks @mbaret . This is merged now!

mbs-octoml pushed a commit to mbs-octoml/mbs-tvm that referenced this pull request Feb 5, 2022
* [microNPU][3] Plan generation for the cascader

The cascader creates 'Plans' which describe how
to schedule subgraphs. As part of the cascading
algorithm, it's necessary to explore a large
variety of Plans which are Pareto optimal (in
terms of memory usage and performance). This is
done by the Plan generation algorithm.

This commit adds the TensorConfig and Plan data
structures which hold information on how to schedule
the tensors/operators. Additionally, it includes
functions to calculate Pareto frontiers which are
used to cull sub-optimal Plans.

Change-Id: Ia358b2a1b29bd810df4441027752ced75812ad4e

* Fixes to lint/test

Change-Id: If4e083a3c96af75a8ffa72510704818d21a477d9

* Improve python docs

Change-Id: I831137f8235665bc20ab4c060cc7049ffd48088a

* Fix enum hashing issue with old gcc

Change-Id: Ifbe97eb33b1ef313710f24c687a8155421a3c195
ylc pushed a commit to ylc/tvm that referenced this pull request Feb 16, 2022
* [microNPU][3] Plan generation for the cascader

The cascader creates 'Plans' which describe how
to schedule subgraphs. As part of the cascading
algorithm, it's necessary to explore a large
variety of Plans which are Pareto optimal (in
terms of memory usage and performance). This is
done by the Plan generation algorithm.

This commit adds the TensorConfig and Plan data
structures which hold information on how to schedule
the tensors/operators. Additionally, it includes
functions to calculate Pareto frontiers which are
used to cull sub-optimal Plans.

Change-Id: Ia358b2a1b29bd810df4441027752ced75812ad4e

* Fixes to lint/test

Change-Id: If4e083a3c96af75a8ffa72510704818d21a477d9

* Improve python docs

Change-Id: I831137f8235665bc20ab4c060cc7049ffd48088a

* Fix enum hashing issue with old gcc

Change-Id: Ifbe97eb33b1ef313710f24c687a8155421a3c195
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants