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

Fix ConvCkIgemmFwdV6r1DlopsNchw solver to reflect that its not dynamic #2325

Merged
merged 1 commit into from
Aug 17, 2023

Conversation

JehandadKhan
Copy link
Collaborator

ConvCkIgemmFwdV6r1DlopsNchw is not dynamic, however the class definition marks it as dynamic. This PR updates the definition so that ConvCkIgemmFwdV6r1DlopsNchw is no longer marked as Dynamic.

@JehandadKhan
Copy link
Collaborator Author

@junliume Please review the urgency label.

@junliume junliume requested a review from zjing14 August 15, 2023 03:09
@JehandadKhan
Copy link
Collaborator Author

@cderb Can you please check if this solver is marked Dynamic in Tuna

@cderb
Copy link
Contributor

cderb commented Aug 15, 2023

@cderb Can you please check if this solver is marked Dynamic in Tuna

Marked as non-dynamic.

@junliume
Copy link
Collaborator

@carlushuang mentioned that this solver might indeed be dynamic

@carlushuang
Copy link
Contributor

This solver will launch 2 kernels. 1st kernel calculate all the descriptors, and store into a workspace. second kernel will have 4 input, A/B/C pointer, and pointer to workspace. So if view it as a whole, this is actually dynamic kernel

@JehandadKhan
Copy link
Collaborator Author

@carlushuang Thanks for the clarification, the compilation of the first kernel for each and every new conv problem means that the compiler will launch and we would have to wait a few seconds before the kernel can launch. I suggest we still mark it as static.

@carlushuang
Copy link
Contributor

@JehandadKhan sure, this make sense. simliar to what compiler will do.

@junliume junliume merged commit 5c6d974 into develop Aug 17, 2023
@JehandadKhan JehandadKhan deleted the jd/fix_v6r1 branch August 17, 2023 19:56
@atamazov
Copy link
Contributor

@carlushuang

This solver will launch 2 kernels. 1st kernel calculate all the descriptors, and store into a workspace. second kernel will have 4 input, A/B/C pointer, and pointer to workspace. So if view it as a whole, this is actually dynamic kernel

@JehandadKhan
the compilation of the first kernel for each and every new conv problem means that the compiler will launch and we would have to wait a few seconds before the kernel can launch. I suggest we still mark it as static.

AFAICS from the source code, the most of convolution parameters are passed to the kernels at run time (not at compile time), therefore the kernels are dynamic. The problem is that tuning config may be different for each problem. But different tuning config means different compilation options, and that is why binary cache miss happens. In other words, it is the tuning which makes the Solver non-dynamic. This is known potential drawback of tuning.

I am writing about this so that we all have a common understanding of this problem. Please do not hesitate to ask if something is unclear or if you not agree.

cderb added a commit that referenced this pull request Sep 18, 2023
* 3D group forward convolution solver (#2286)

* [HotFix] Fix build issue after #2286 (#2328)

* Fix ConvCkIgemmFwdV6r1DlopsNchw solver to reflect that it's not dynamic (#2325)

* Remove target IDs from kdb entries (#2309)

* Dropout: make seed and states_num kernel arguments (#2277)

* [MI250] Adding missing kernel objects (#2329)

* Post-merge fixups: Replace environment variable check with problem config check and reduce lambda capture for Invoker obj (#2305)

* [HotFix][CI] fix HIP tidy issue from #2277 (#2335)

* [HotFix] Update requirements.txt MLIR ignore PATH for Python conda LLD (#2324)

* [NFC] Replace long integers with int64_t and size_t for better compatibility with Windows (#2323)

* Windows compatibility: replace long integers with int64_t and size_t, replace uint with unsigned int, replace long with long long for numbers, proper casting

* Fix formatting

* Fix 3d group forward convolution

* Resolve review comments

* Fix formatting

---------

Co-authored-by: Daming Feng <dmfeng8898@gmail.com>
Co-authored-by: Evgenii Averin <86725875+averinevg@users.noreply.github.com>
Co-authored-by: JD <jahandad@gmail.com>
Co-authored-by: Tal Ben-Nun <tbennun@users.noreply.github.com>
Co-authored-by: amberhassaan <mah@katanagraph.com>
Co-authored-by: Jun Liu <Liu.Jun@amd.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants