-
Notifications
You must be signed in to change notification settings - Fork 163
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
[ENHANCEMENT-osdi2020_artifact branch] Usage of the kernel_db for new networks #208
Comments
Thanks for the report @troore! I will look into it ASAP! (I'm a bot). |
Hi @troore , thank you for your attention. For a new model, you need to inject external kernels (from kernel tuner like TVM or manual implementation) into the kernel DB via scripts if you want to use Rammer to optimize the whole model. Otherwise, NNFusion will use default kernel emitters (e.g., kernels from cuDNN, cuBLAS) and the BlockFusion pass could not work on those emitters due to the lack of kernel source code.
Best regards, |
Hi @xysmlx, Thanks for the clear and detailed explanation. I will take a try and give feedback soon. Thanks, |
Hi, I was following the steps (copied below) to run Rammer on a network that is not in the artifact, but I ran into a problem. I got the autotvm log, but based on this script which helps the codegen, it seems that I also need an op_config file like this in order to get the json file. This is probably a naive question, but do you know how I can get the config file?
Thank you very much for your help! |
Hi, @lilpenguin , you can manually figure out the needed op configs and organize them as the op_config files in the artifact branch. You can also modify the NNFusion to collect these information. I modified the NNFusion as this to collect op_config files for Convolution, Dot and AvgPool operators. |
And note that the SM information in this line needs to be modified according your GPU environment if you want to use the |
Hi nnfusion authors,
I can reproduce the results in the OSDI 2020 Rammer paper. Thanks for your excellent work!
Now I am trying some new networks. Everything goes well except for the tvm part.
My question is: how to use the
kernel_db
?In the
kernel_db
directory, based on the the logs inkernel_db/autotvm_logs
directory, there are some scripts to help generate some json files and insert them into the nnfusion op database.However, for example, in the
Figure11/tvm
directory, it seems that only the logs inkernel_db/autotvm_logs
are used for this part.So it is a bit confusing for me that how to correctly use the op database: for a new network, like ResNet50, should I repeat the "autotvm logs->jsons->op database" steps, then still use the autotvm_logs to run tvm, or I can just use the autotvm_logs?
Another question is, how to obtain the autotvm_logs? Should I use tvm to run its auto-tuing to generate them, or there is some script to help me with this part? I didn't find it.
Thanks,
troore
The text was updated successfully, but these errors were encountered: