Commit Graph

2269 Commits

Author SHA1 Message Date
Ville Pietilä
cde8844ee0 Create invoker through the CK builder. 2025-10-03 13:02:21 +00:00
Ville Pietilä
95f86d723f Add missing concepts and PODs for DeviceGroupedConvFwdMultipleABD_Xdl_CShuffle_V3 kernel. 2025-10-03 12:29:41 +00:00
Ville Pietilä
e94d76de53 Create re-usable assets. 2025-10-03 10:43:28 +00:00
Ville Pietilä
0570ea48c0 Use CK builder to create kernel instance. 2025-10-03 10:30:41 +00:00
Ville Pietilä
9f39a171aa Skeleton for builder example. 2025-10-03 09:02:24 +00:00
Ville Pietilä
36a321f12e Fix some copy-pasta typos. 2025-10-03 07:10:48 +00:00
Ville Pietilä
fd3fb6af92 Rename bwd test file. 2025-10-03 07:07:31 +00:00
Ville Pietilä
ff1ad9acaf Add build instructions to builder Readme. 2025-10-03 07:03:32 +00:00
John Shumway
59de7d5848 Update README.md to align with the Algorithm concept. 2025-10-02 00:51:13 +00:00
John Shumway
667db96ce1 Add placeholder README.md file 2025-10-01 14:24:39 +00:00
John Shumway
d9febb413f 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-09-30 17:11:39 +00:00
John Shumway
cc86608690 Add StringEqWithDiff matcher. 2025-09-30 16:30:15 +00:00
John Shumway
0af3803a3c Enable gmock in gtest.cmake. 2025-09-30 14:07:38 +00:00
John Shumway
9cc8100783 Add documentation to conv_signature.hpp. 2025-09-25 15:37:47 +00:00
John Shumway
bacffa5b90 Add color to inlineDiff test util. 2025-09-23 15:38:27 +00:00
John Shumway
46a8a53dc7 Add testing utils. 2025-09-19 15:40:24 +00:00
John Shumway
d5a350c51d 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-09-19 12:03:40 +00:00
John Shumway
053d73ae7c Format file and enable gmock. 2025-09-18 22:38:40 +00:00
John Shumway
e33bed58a4 Add test_conv_bwd_instances.cpp.
Just one instance so far, only setting up test code.
2025-09-18 17:50:34 +00:00
John Shumway
76b2b6980d Rename test_conv_fwd_instances.cpp. 2025-09-18 17:24:48 +00:00
John Shumway
7a3066f7d7 Clean up factory for backwards convolutions.
Adds some comments and simplifies the block transfer settings by splitting into more funcctions.
2025-09-18 05:12:20 +00:00
John Shumway
dd0318e0ab 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-09-17 13:17:19 +00:00
John Shumway
0e5e514140 Improve bulder_utils.
Move unsupported_data_type to more general UnsupportedEnumValue.

Also add a comment to exaplain the template deduction guide for StringLiteral.
2025-09-14 14:33:48 +00:00
John Shumway
aac746e780 Fix naming style of all signature enums.
Some of these enum values were CamelCase when they should have been CONSTANT_CASE.
2025-09-14 14:25:47 +00:00
John Shumway
f4c11b6d22 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-09-14 14:16:40 +00:00
John Shumway
fe6140353f 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-09-14 14:03:35 +00:00
John Shumway
63fc483c1e 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-09-14 00:14:55 +00:00
John Shumway
b36f26cb55 Rename Factory template. 2025-09-13 22:31:08 +00:00
John Shumway
c10e6abfc3 Fix capitalization of Builder::Factory type. 2025-09-13 22:28:51 +00:00
John Shumway
f9a5f8b8ac 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-09-13 22:25:22 +00:00
John Shumway
4350f65b03 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-09-13 14:00:49 +00:00
John Shumway
114b1d55c3 Add missing files. 2025-09-13 13:47:41 +00:00
John Shumway
19c573fb70 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-09-08 19:56:33 +00:00
John Shumway
d85ba0965b Update some more concept names. 2025-09-07 19:35:54 +00:00
John Shumway
f61b64374e Describe the convolution instances tests.
This test is rather complicated, so it's important to provide more context to the reader.
2025-09-07 19:28:17 +00:00
John Shumway
7a76499313 Update concept names.
Concepts should represent semantic categories.

Use "Descriptor" suffix and "Specifies" prefix.
2025-09-07 18:40:33 +00:00
John Shumway
9670567f76 Use set_thread_cluster_dims helper.
This simplifies our instantiation test.
2025-09-06 17:12:26 +00:00
John Shumway
1a417c12b3 Add an alias to make enum more readable. 2025-09-06 16:51:23 +00:00
John Shumway
2fee665612 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-09-06 16:46:57 +00:00
John Shumway
c5f67bc87c Add all device_grouped_conv_fwd_xdl_bf16_comp_instances 2025-09-05 23:46:09 +00:00
John Shumway
032774448c Add block GEMM pipeline version to builder. 2025-09-05 23:14:02 +00:00
John Shumway
ade741ae61 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-09-05 22:30:00 +00:00
John Shumway
03f4beda5f 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-09-05 20:41:32 +00:00
John Shumway
46969bd05d Convert SIGNATURE to non-template type parameter.
No functional changes yet, but this aligns with ALGORITHM and will allow testing different signatures.
2025-09-04 21:31:44 +00:00
John Shumway
d3404a8e6b Add two more instances to tests.
We now have four instances, next we need to add the block GEMM pipeline version.
2025-09-04 14:46:04 +00:00
John Shumway
b70a58fcdd 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-09-04 14:02:34 +00:00
John Shumway
6b83f7e0d9 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-09-04 13:34:22 +00:00
John Shumway
e05879fbd6 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-09-02 23:08:32 +00:00
John Shumway
c3c92f1267 Add test for ak1 and bk1.
These are not easy to access in the instance object, so just test the factory values.
2025-09-02 21:06:16 +00:00
John Shumway
a2e661cd57 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-09-02 17:22:29 +00:00