Commit Graph

19 Commits

Author SHA1 Message Date
John Shumway
f2a0430ce1 Add initial reflection capabilities to the builder.
This PR introduces a Description class as well as ck_tile ConvTraits to add reflection. This is helpful for users, but more critically, it will help us write better tests for the builder. Too many details of the convolutions are hidden or obscured.
2025-10-06 12:00:26 +00:00
John Shumway
7d27c8663a Remove broken gmock and fix inline diff.
We really need to just fix GTest/GMock fo CK. I used copilot to generalize the inlineDiff function for insertions and deletions.
2025-10-05 17:30:25 +00:00
John Shumway
d771863a7d Fix naming style of all signature enums.
Some of these enum values were CamelCase when they should have been CONSTANT_CASE.
2025-10-05 17:30:25 +00:00
John Shumway
9c89f5eaf9 Provide default value for API VERSION.
Create a LATEST_API_VERSION value and use that as the default. This simplifies code that shouldn't depend the API version.
2025-10-05 17:30:25 +00:00
John Shumway
24341a3fb8 Rename layouts to channels first or channels last.
Also add a spatial dimension parameter to layout mapping in the factory to handle different layout enums for 2D and 3D convolutions
2025-10-05 17:30:25 +00:00
John Shumway
5f0c272c9f Simplify Signature by removing constexpr.
The tests used constexpr on fields from an older design. Now that we have const template parameters instead of types, these Signature fields don't need constexpr. This will also make it easier to test different operator signatures.
2025-10-05 17:30:25 +00:00
John Shumway
e4a93ba12a Fix concepts for convolution signature.
We split the concepts to a check on the signature type (ConvSignatureDescriptor) as well as a check on the value (ValidConvSignature).
2025-10-05 17:30:25 +00:00
John Shumway
da140c434b Update some more concept names. 2025-10-05 17:30:25 +00:00
John Shumway
b2f501d5d7 Generalized version to StringLiteral.
With the change, the following can be used for the version parameter:

"0.1.0"  // string literal
constexpr char API_VERSION[] = "0.1.0";
constexpr ckb::StringLiteral API_VERSION = "0.1.0";
2025-10-05 17:30:25 +00:00
John Shumway
0d8724a162 Convert SIGNATURE to non-template type parameter.
No functional changes yet, but this aligns with ALGORITHM and will allow testing different signatures.
2025-10-05 17:30:25 +00:00
John Shumway
70415c2c16 Split builder tests and instance tests.
We have a typed test suite of all the instance we want to create, and also we have simple test of the builder. Split those into two different test suites.
2025-10-05 17:30:25 +00:00
John Shumway
7acd24ef20 Migrate builder instantiation test to a TYPED_TEST_SUITE.
We can now drive the test from a constexpr std::array of TestCases and a ::testing::Types sequence of test indicies.
2025-10-05 17:30:25 +00:00
John Shumway
6a513e1a7f Add block transfer paramters to builder.
These are very hard to test in the kernel class, so just test the values in the factory.
2025-10-05 17:30:25 +00:00
John Shumway
97660c64e5 Add test for ak1 and bk1.
These are not easy to access in the instance object, so just test the factory values.
2025-10-05 17:30:25 +00:00
John Shumway
834f0436a3 Making alorithm a non-type parameter
This simplifies the design by continuing to reduce the number of types and avoidng extra use of constexpr.
2025-10-05 17:30:25 +00:00
John Shumway
f8b790dfd1 Add tuning parameters to builder.
Add support for setting ak1, bk1, m_xdl_per_wave, and n_xdl_per_wave.

Note: It's difficult to test ak1 and bk1, since the values are not stored in the class.
2025-10-05 17:30:25 +00:00
John Shumway
c0f5f5a20e Simplify convolution builder tests.
Move static_assert concept checks out of tests and improve instance test names.
2025-10-05 17:30:25 +00:00
John Shumway
061fb06eef Add thread block info to factory.
Now we can set the thread block size and submatrix shape for the builder.
2025-10-05 17:30:25 +00:00
John Shumway
cee90b800e Fix test files for convolution builder. 2025-10-05 17:30:25 +00:00