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

question about notation of micro kernel's arguments #1288

Closed
chunseoklee opened this issue Feb 10, 2021 · 1 comment
Closed

question about notation of micro kernel's arguments #1288

chunseoklee opened this issue Feb 10, 2021 · 1 comment

Comments

@chunseoklee
Copy link

I have look into micro kernel implementation for personal study.

Due to the lack of documentation, I am little confused about notation.

For example, xnn_qu8_gemm_ukernel_function benchmark in

static void GEMMBenchmark(benchmark::State& state,
xnn_qu8_gemm_ukernel_function gemm,
size_t mr, size_t nr, size_t kr, size_t sr,
benchmark::utils::IsaCheckFunction isa_check = nullptr)

takes mr, nr, kr as arguments.

My question is which is the dimension for fully-connected operation's kernel(weight) ? I think nr*kr is the size of FC's kernel and mr*kr is the size of FC's input. Please let me know if this is incorrect.

Thank you.

@Maratyszcza
Copy link
Contributor

mr*nr are the dimensions of the output tile produced in one invocation of the inner loop of GEMM/IGEMM microkernel call. kr and sr are internal weight packing parameters.

I suggest you read this classical paper of matrix-matrix multiplication to better understand how the GEMM microkernels are organized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants