Ville Pietilä
28221cf01f
Value constraint concept example.
2025-10-15 07:46:47 +00:00
Ville Pietilä
12c812e993
Add signature types to source control.
2025-10-10 13:39:24 +00:00
Ville Pietilä
92a02510bd
Rename conv algorithm.
2025-10-10 13:37:05 +00:00
Ville Pietilä
fe7ed96c2a
Separate types from concepts.
2025-10-10 13:34:57 +00:00
Ville Pietilä
81ac06d29a
Rename conv algorithm assets.
2025-10-10 11:42:22 +00:00
Ville Pietilä
7d14a73740
Disable missing headers error from GTest.
2025-10-10 11:28:13 +00:00
Ville Pietilä
5d4b386e04
Merge remote-tracking branch 'origin/jshumway/convolution-builder' into features/convolution-builder
2025-10-10 10:48:42 +00:00
John Shumway
4247f7f4d4
Clean up description and tree formatter.
2025-10-08 01:16:15 +00:00
John Shumway
753c61aa0f
Add conv_traits.
2025-10-07 21:54:53 +00:00
John Shumway
fe5fbcbc64
Extract TreeFormatter from Description class.
...
Description class was cluttered with hard-coded formatting, so we remove and generalize the formatting, simplifying the Description::detailed() method.
2025-10-07 15:43:13 +00:00
John Shumway
f8838d7b38
Refactored Descriptor to not be a template class.
...
This PR makes a describe<Builder> factory that is templated, then everything else is not templated.
2025-10-06 21:14:57 +00:00
John Shumway
d4a4861a3c
Clean up conv_description.cpp.
...
Move some of toString functions to where the builder signature enums are located.
2025-10-06 19:50:13 +00:00
John Shumway
1d866cb75a
Add tests for reflection::Description.
2025-10-06 13:04:27 +00:00
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
22b5da468f
Update README.md to align with the Algorithm concept.
2025-10-05 17:30:25 +00:00
John Shumway
816be4c417
Add placeholder README.md file
2025-10-05 17:30:25 +00:00
John Shumway
2d5311107f
Fix and document the inlineDiff function.
...
The original version from CoPilot was broken and difficult to fix. I worked with Cline AI to fix the algorithms and also add a lot of description to the implementation.
2025-10-05 17:30:25 +00:00
John Shumway
089b5c6ffa
Add StringEqWithDiff matcher.
2025-10-05 17:30:25 +00:00
John Shumway
86240357d4
Enable gmock in gtest.cmake.
2025-10-05 17:30:25 +00:00
John Shumway
2093e4e5b9
Add documentation to conv_signature.hpp.
2025-10-05 17:30:25 +00:00
John Shumway
a30c9c362c
Add color to inlineDiff test util.
2025-10-05 17:30:25 +00:00
John Shumway
a40e1e7692
Add testing utils.
2025-10-05 17:30:25 +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
b4bb2bf317
Format file and enable gmock.
2025-10-05 17:30:25 +00:00
John Shumway
9f65631f00
Add test_conv_bwd_instances.cpp.
...
Just one instance so far, only setting up test code.
2025-10-05 17:30:25 +00:00
John Shumway
8b29be6785
Rename test_conv_fwd_instances.cpp.
2025-10-05 17:30:25 +00:00
John Shumway
5878c32c14
Clean up factory for backwards convolutions.
...
Adds some comments and simplifies the block transfer settings by splitting into more funcctions.
2025-10-05 17:30:25 +00:00
John Shumway
1adb40d5c8
Add backward instance to the builder.
...
The factory still needs to be cleaned up, but since I finally have the
code building and all the test passing, this is a good time to commit.
There is a lot of generalization in this commit to handle backwards
convolutions.
2025-10-05 17:30:25 +00:00
John Shumway
2890584ef1
Improve bulder_utils.
...
Move unsupported_data_type to more general UnsupportedEnumValue.
Also add a comment to exaplain the template deduction guide for StringLiteral.
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
33721db424
Add a 3D kernel instatiation.
...
Had to add a new layout enum for 3D. We should see if we can simpify that with 2D/3D logic.
2025-10-05 17:30:25 +00:00
John Shumway
1bc0a1281d
Rename Factory template.
2025-10-05 17:30:25 +00:00
John Shumway
934cea8511
Fix capitalization of Builder::Factory type.
2025-10-05 17:30:25 +00:00
John Shumway
79f179c1a8
Add support and tests for different type.
...
We were just defaulting the types to FP16, but now we update to support BF16 and FP32 also. Test the types on the factory since we cannot easily check the kernel. Also add some better compile time error messages.
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
432e29026c
Add missing files.
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
32b4b27031
Describe the convolution instances tests.
...
This test is rather complicated, so it's important to provide more context to the reader.
2025-10-05 17:30:25 +00:00
John Shumway
afbc4223ae
Update concept names.
...
Concepts should represent semantic categories.
Use "Descriptor" suffix and "Specifies" prefix.
2025-10-05 17:30:25 +00:00
John Shumway
00741a7266
Use set_thread_cluster_dims helper.
...
This simplifies our instantiation test.
2025-10-05 17:30:25 +00:00
John Shumway
1f986b9192
Add an alias to make enum more readable.
2025-10-05 17:30:25 +00:00
John Shumway
8b540c8df1
Use a set_submatrix helper.
...
We want to simplify the test of lots of instances, so adding a helper to make the test and instantiation details more clear.
2025-10-05 17:30:25 +00:00
John Shumway
5da397b9ec
Add all device_grouped_conv_fwd_xdl_bf16_comp_instances
2025-10-05 17:30:25 +00:00
John Shumway
cd1c1e0aff
Add block GEMM pipeline version to builder.
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
3c020eb507
Update builder_utils.hpp.
...
This commit moves sequence_util to more general builder_utils, adds unit testss, and converts ToSequence to better match standard library conventions.
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