-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[MetaSchedule][UX] User Interface for Jupyter Notebook #12866
[MetaSchedule][UX] User Interface for Jupyter Notebook #12866
Conversation
@tvm-bot rerun |
This seems super useful. Do we want to extends this functionality to non-jupyter notebook? Essentially what I have in mind is that we can update the table & process bar and omit all other log info like |
Hi YJ, I think this applies to all the ipython kernel based interface, yet I only tested on jupyter notebook. On the other hand we have progress as percentage available now so I'm not planning to add a progress bar (but definitely doable). IMHO other logs like |
6f74182
to
10ed1f4
Compare
@zxybazh do you have a demo on gist? |
For testing, I used |
uploading an jupyter notebook to gist would be great |
Available here: https://gist.github.com/zxybazh/82665e01e94522deadc0646a428155ce |
Really cool stuff! I'm happy with merging it in! Just a further question, do you think it's possible that we draw a jupyter table like what's done with Pandas DataFrame? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
String task_name = record.task->task_name.value(); | ||
if (using_ipython() && task_name.length() > 23) { | ||
std::string temp = task_name.c_str(); | ||
temp = temp.substr(0, 20) + "..."; | ||
task_name = String(temp); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have alternative ways to print the whole task names? Like if a task name is too long, we can try to print the name in multiple lines.
I’m thinking of this because I just noticed that in your example table, there are several lines with exactly the same prefix.
6 | fused_nn_conv2d_add_... | 231612416 | 2 | 276.8975 | 836.4555 | 1672.9111 | 32 |
7 | fused_nn_conv2d_add_... | 231813120 | 2 | 100.5202 | 2306.1349 | 4612.2697 | 32 |
8 | fused_nn_conv2d_add_... | 115806208 | 1 | 139.2956 | 831.3701 | 831.3701 | 32 |
I think this will cause confusion. So perhaps we should try to resolve this problem? What do you think of this.
Also cc @junrushao
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is indeed not ideal. We may have an extra API that allows us to assemble a pandas dataframe so that it’s more organically integrated with jupyter. I have an idea and will communicate with Xiyou next week
Thanks all for reviewing & we’ll further work on creating dataframe view or other directions to optimize jupyter notebook view in a separate PR. |
* Add features for jupyter notebook. * Fix workload import warnings. * Enable output clearing for cli. * Fix test. * Fix lint. * Change to separate cleaning function.
Previously the tuning process would generate significant amount of logging to screen, which would be troublesome for jupyter notebook usage. This PR proposes several changes to fit in the usage on jupyter: