-
Notifications
You must be signed in to change notification settings - Fork 1.1k
gpu: Fix compilation errors in NVIDIA GPUs with cuDNN 8 #952
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
Conversation
Hi @Dr-Noob, thank you for your contribution. We will take this changes to test them internally with both cuDNN v7 and v8 and come back to you with our results. Does it sound good for you? Thanks. |
Great, please let me know if you find any problem or if there is further modification needed |
Hi @Dr-Noob, I've got good news and bad news.
With v7 it dispatched to Saying all that, we will inform you when we promote this PR. I would kindly request you to rebase this PR on top of master (we updated it today and it contains a fix for broken names) and squash the last commit into a second one. I've also left some minor comments for changes. Thank you. |
Hi, I'm not sure if I understand you correctly. I have rebased the PR on top of master and later pushed a new commit with the changes you suggested, but I don't know how to squash my commits. Which commits do you want me to squash? You want to squash commit 1, 2 and 3 (fe6a2b1, f083f0c and 10ced24) into a single commit and then leave the last one (356315f) as the second commit? |
Hi @Dr-Noob, sorry for not being clear. We prefer to have commits that don't break any checks. Currently, commit three "Fix style with clang-format" fixes the issue introduces in commit two "gpu: Choose best suitable algorithm for convolutions". I'm asking to merge commit three into commit two. I'm fine with having rest three logically separated commits. You may use |
A little bit hacky, but I think I did what you requested. I hope it looks better now! |
Thanks for updating, looks good to me. I left one more small comment. Thanks @echeresh for spotting it. |
Whoops...fixed |
Thanks for your contribution! |
Replace previous calls with _v7 counterparts. Improved best algorithm pick up.
Description
The current version does not build with cudDNN 8 since there are some changes in the API. Building with cuDNN 8 results in a failure, as I described in issue #885.
Deprecated calls in cuDNN 8 used in oneDNN:
All of them were replaced by
_v7
calls. They could have been replaced by cuddnFind... counterparts, but because they do not behave in the same way, I decided to use the_v7
functions. API changed, and now cuDNN functions return a list of the possible algorithms to choose instead of returning the fastest one. Therefore, I implemented a simple algorithm to choose the fastest suitable algorithm from the list.Because
_v7
functions build successfully with cuDNN 7, I did not write any conditional to check the version of cuDNN; both cuDNN 7 and 8 builds successfully with the same code.I am unable to run the tests for GPU with an untouched master branch, so I did not include any new test.
Checklist
Code-change submissions
make test
andmake test_benchdnn_*
) pass locally?Bug fixes