index.rst 1.43 KB
Newer Older
Sam Wu's avatar
Sam Wu committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
============================
Composable Kernel User Guide
============================

------------
Introduction
------------

This document contains instructions for installing, using, and contributing to Composable Kernel (CK).

-----------
Methodology
-----------

15
16
17
Composable Kernel (CK) library aims to provide a programming model for writing performance critical
kernels for machine learning workloads across multiple architectures including GPUs, CPUs, etc,
through general purpose kernel languages, like HIP C++.
Sam Wu's avatar
Sam Wu committed
18
19
20
21

CK utilizes two concepts to achieve performance portability and code maintainability:

* A tile-based programming model
22
23
* Algorithm complexity reduction for complex ML operators, using innovative technique we call
  "Tensor Coordinate Transformation".
Sam Wu's avatar
Sam Wu committed
24
25
26
27
28
29
30
31
32
33
34
35
36

.. image:: data/ck_component.png
   :alt: CK Components

--------------
Code Structure
--------------

Current CK library are structured into 4 layers:

* "Templated Tile Operators" layer
* "Templated Kernel and Invoker" layer
* "Instantiated Kernel and Invoker" layer
Bartlomiej Kocot's avatar
Bartlomiej Kocot committed
37
* "Wrapper for tensor transform operations"
Sam Wu's avatar
Sam Wu committed
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
* "Client API" layer

.. image:: data/ck_layer.png
   :alt: CK Layers
   
Documentation Roadmap
^^^^^^^^^^^^^^^^^^^^^
The following is a list of CK documents in the suggested reading order:

.. toctree::
   :maxdepth: 5
   :caption: Contents:
   :numbered:

   tutorial_hello_world
   dockerhub
Bartlomiej Kocot's avatar
Bartlomiej Kocot committed
54
   wrapper
Sam Wu's avatar
Sam Wu committed
55
56
57
   Supported_Primitives_Guide
   API_Reference_Guide
   Contributors_Guide