-
Notifications
You must be signed in to change notification settings - Fork 973
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
Conditions for Running brgemm_convolution_fwd_t and jit_avx512_common_convolution_fwd_t in oneDNN #1934
Comments
Hi @deepeshfujitsu,
The first criteria is the order of implementations in this list. Each data type + prop_kind bucket has it predefined: the order goes from top to bottom. The next level of criteria is internal implementation knowledge that can consider tons of condition, including but not limited to user primitive settings, blocking parameters for a specific system, features support, etc. All (or most) of those should be visible under Design decisions for frameworks go to framework maintainers as oneDNN is not responsible for those. |
Hi @dzarukin, Thank you for your reply and for suggesting the dispatch flag, which helped me debug the issue preventing the execution of the BRGEMM convolution. I found the relevant function in jit_brgemm_conv_utils.cpp:
In this function, I changed avx2_vnni_2 to avx512_core, and it worked fine for avx512_core. I ran the following BenchDNN test: Command: Output without changing the function:
Output with the change from avx2_vnni_2 to avx512_core:
Could you please clarify why we are only checking for avx2_vnni_2 and not for other ISAs? Thank you! |
Hi, I would like to understand the conditions under which brgemm_convolution_fwd_t and jit_avx512_common_convolution_fwd_t are executed. Specifically, is there any criteria that determine when each of these runs? Additionally, I noticed that in TensorFlow, BRGEMM is used, whereas in PyTorch, JIT is used. Could you explain why BRGEMM is not used in the case of PyTorch?
Thank you!
The text was updated successfully, but these errors were encountered: