mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-17 19:40:04 +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>
[ROCm/composable_kernel commit: a39163814e]
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
|
|
|