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

[AutoTVM] Added Droplet algorithm in TVM #14683

Merged
merged 9 commits into from
Apr 28, 2023
Merged

[AutoTVM] Added Droplet algorithm in TVM #14683

merged 9 commits into from
Apr 28, 2023

Conversation

canesche
Copy link
Contributor

This PR adds the Droplet Search algorithm to AutoTVM. Droplet search
is a variation of the Coordinate Descent Algorithm. It relies on the
empirical observation that the search space formed by typical kernels
contains, within the same convex region, origin (the kernel without
optimizations) and the best kernel configuration.

Droplet search is deployed in the same setting as any other search
algorithm that is implemented in AutoTVM. Droplet search is expected
to run faster than gridSearch, randomSearch, GA, and XGBoost. It tends
to find kernels that are as good as those found by these other
techniques.

A detailed account of the algorithm can be found in this paper:

https://homepages.dcc.ufmg.br/~fernando/publications/papers/DropletSearch.pdf

@tvm-bot
Copy link
Collaborator

tvm-bot commented Apr 20, 2023

Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment.

Generated by tvm-bot

@canesche canesche changed the title Added Droplet algorithm in TVM. Added Droplet algorithm in TVM Apr 20, 2023
@canesche canesche changed the title Added Droplet algorithm in TVM [Unity] Added Droplet algorithm in TVM Apr 20, 2023
@tqchen
Copy link
Member

tqchen commented Apr 21, 2023

Thank you for your contribution, more recently we are moving most of our automation effort toward MetaSchedule, which helps to unify different approaches and can also work as AutoTVM tuning and works for TensorIR.

As a result, it would be great to think about how to make it work for metaschedule. In the meantime, the interface is still compatible so such tuner can be plugged into the existing infra

@Hzfengsy Hzfengsy changed the title [Unity] Added Droplet algorithm in TVM [AutoTVM] Added Droplet algorithm in TVM Apr 24, 2023
Copy link
Contributor

@leandron leandron left a comment

Choose a reason for hiding this comment

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

Hey @canesche, thanks for the PR.

Just noticed this is blocked on an error related to the commit messages guideline (https://tvm.apache.org/docs/contribute/pull_request.html#commit-message-guideline), specifically on the commit titles ending with ., so when you fix that, then we'll have a full CI round and will be able to review it properly.

It would be also good to have some unit testing added in this PR, so that we validate and prevent it breaking in future.

@Icemist
Copy link
Contributor

Icemist commented Apr 24, 2023

Please make sure the different types of indexing work correctly (including multi_filter).
For this make tests similar to test_autotvm_ga_tuner.py, test_autotvm_index_tuner.py, test_autotvm_space.py from tests/python/unittest/ folder.
👍🏻

Copy link
Contributor

@leandron leandron left a comment

Choose a reason for hiding this comment

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

LGTM, thanks @canesche @Icemist. Happy for this PR to be merged once CI is green.

@canesche
Copy link
Contributor Author

Hi @leandron, thanks! I hope to contribute more often to TVM in the future.

@leandron leandron merged commit c254b75 into apache:main Apr 28, 2023
@leandron
Copy link
Contributor

leandron commented Apr 28, 2023

This is now merged. Thanks @canesche @Icemist @tqchen!

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.

5 participants