mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-11 17:00:18 +00:00
* doc reorg and edits * Update wrapper.rst with changes from PR #1098 * Update docs/dockerhub.rst Co-authored-by: Bartlomiej Wroblewski <bwroblewski10@gmail.com> * Update docs/index.rst Co-authored-by: Bartlomiej Wroblewski <bwroblewski10@gmail.com> * Update docs/what-is-ck.rst Co-authored-by: Bartlomiej Wroblewski <bwroblewski10@gmail.com> * Update docs/what-is-ck.rst Restored to 4 bullets, with additional text for wrapper. Co-authored-by: Bartlomiej Wroblewski <bwroblewski10@gmail.com> * Update docs/Contributors_Guide.rst Co-authored-by: Lisa <lisajdelaney@gmail.com> * Update API_Reference_Guide.rst using sentence case for title * updated index structure per Lisa * separate docker hub and tutorial --------- Co-authored-by: Bartlomiej Wroblewski <bwroblewski10@gmail.com> Co-authored-by: Lisa <lisajdelaney@gmail.com> Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com>
41 lines
1.3 KiB
ReStructuredText
41 lines
1.3 KiB
ReStructuredText
.. meta::
|
|
:description: Composable Kernel documentation and API reference library
|
|
:keywords: composable kernel, CK, ROCm, API, documentation
|
|
|
|
.. _what-is-ck:
|
|
|
|
********************************************************************
|
|
What is the Composable Kernel library
|
|
********************************************************************
|
|
|
|
|
|
Methodology
|
|
===========
|
|
|
|
The Composable Kernel (CK) library provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures including GPUs and CPUs, through general purpose kernel languages like HIP C++.
|
|
|
|
CK utilizes two concepts to achieve performance portability and code maintainability:
|
|
|
|
* A tile-based programming model
|
|
* Algorithm complexity reduction for complex ML operators using an innovative technique called
|
|
"Tensor Coordinate Transformation".
|
|
|
|
.. image:: data/ck_component.png
|
|
:alt: CK Components
|
|
|
|
|
|
Code Structure
|
|
==============
|
|
|
|
The CK library is structured into 4 layers:
|
|
|
|
* "Templated Tile Operators" layer
|
|
* "Templated Kernel and Invoker" layer
|
|
* "Instantiated Kernel and Invoker" layer
|
|
* "Client API" layer
|
|
|
|
It also includes a simple wrapper component used to perform tensor transform operations more easily and with fewer lines of code.
|
|
|
|
.. image:: data/ck_layer.png
|
|
:alt: CK Layers
|
|
|