-
Notifications
You must be signed in to change notification settings - Fork 149
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
Why there existed "KernelLanguage: Source" in vega20*.yaml under rocBLAS/library/src/blas3/Tensile/Logic/asm_full #1131
Comments
@hanjiemicro, thanks for your question. Yes, vega20*.yaml are generally where assembly kernels for the vega 20 (gfx906) are found. However, we do punt some corner (or not-so-corner) cases to Tensile-generated source kernels. For instance, when m, n or k is odd, for half precision, we let our compiler do the heavy-lifting. Whenever we do that, we grouped the source kernels with the assembly kernels. There is no requirement that vega20*.yaml can only include assembly kernels. (BTW, if you're using ROCm 3.5, there shouldn't be hcc as part of the distribution anymore; only HIP-Clang based hipcc is supplied) |
Thanks for your feedback. Acutally I tried to modified some kernels' KernelLanugage from "Source" to "Assembly" in vega20_sgemm*.yaml, it worked and dumped assembly kernels. Could you help to explain the corner case further? |
As @zaliu mentioned, for some cases where the assembly kernel does not return a good performance, we use source kernels. The corner cases are usually very small sizes. |
What is the expected behavior
KernelLanguage: Whether kernels should be written in source code (HIP, OpenCL) or assembly (gfx803, gfx900, ...).
What actually happens
Environment
The text was updated successfully, but these errors were encountered: