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