Open ScottTodd opened 3 months ago
Can also draw on code from https://github.com/nod-ai/rocm-gemm-benchmark/. That has test case generators and checked in .mlir files.
Current plan (cc @erman-gurses ):
Finding lots to clean up while refactoring the matmul tests. Debating starting fresh or cleaning up in-place.
Notes/ideas:
infer_acc_type
helper function and make all calls into the generator fully explicit about what data types they want to use for the LHS, RHS, and accumulatoriree_generated_e2e_runner_test
or writing something new (pytest?). Start with manual testing and see what is needed from the build system / test runner. Compiler and runtime flagfiles could be used instead of plumbing strings through CMake functions 🤔 _matmul.mlir
and _calls.mlir
into a single file for each test case? One entry function to run arbitrary inputs -> outputs, a second function to run with generated inputs and checking provided by the test module? Check optional symbol resolution...
Could start with what already exists, including the C++ binaries files and CMake build system:
Or... run the generator scripts and jump straight to a prototype replacement test runner (pytest? other cmake functions?)
The test generators seem to be using mostly upstream dialects (e.g.
linalg.conv_2d_nchw_fchw
). The build system usage does some fancy things with flags though... should watch out for layering in there. For example:See this related thread on Discord: https://discord.com/channels/689900678990135345/1270451599231156266