mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-07-18 09:38:17 +00:00
=?UTF-8?q?feat:=20[CK=20TILE]=20Unification=20Work=20?= =?UTF-8?q?=E2=80=93=20Add=20WMMA=20Scale=20Mixed=20Types=20Support=20(#80?= =?UTF-8?q?20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Motivation This PR adds mixed data types and mixed scale types support in scale WMMA specialisations. ## Technical Details - Replaced `ScaleDataTypeToFlag_v` with `PackedDataTypeToFlag_v` and adjusted WMMA scale selector to the way as MFMA one. - Simplified scale_gfx125.hpp with macros. - Added WMMA scale specialisations with mixed data types and scale types. - Introduced `is_legal_combination` to restrict which combinations of ADataType/BDataType/ScaleAValueType/ScaleBValueType the `exec()` can be instantiated. - Pleased the compiler on gfx1250 emulator to make compilation working. ## Test Plan All the new wrappers were added to the test suite in test_amdgcn_mma_layout.inc. ## Test Result Test should pass. ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests. close #8949
ck_tile/core
ck_tile/core contains every basic functions and structures to create a GPU kernel using ck_tile. User should only include ck_tile/core.hpp this single header to use all the functionality. Everything is under ck_tile namespace. The coding style under this folder should be similar to std (snake_case for structure/function, Camel for template types...)
algorithm/
coordinate transform and some other reusable algorithm
arch/
contains some basic device building block like mma, buffer addressing, etc...
container/
contains basic container data structure, array/sequence/tuple/...
numeric/
data type, and data type related math
tensor/
tensor descriptors and tile level API
utility/
other utility function for both host/device