mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-04-20 06:49:15 +00:00
update document: Readme, contributors, citation, (#463)
* update cmake script * update readme * Update README.md * add citation * add images * Update README.md * update * Update README.md * Update CONTRIBUTORS.md * Update README.md * Update CITATION.cff * Update README.md * Update CITATION.cff
This commit is contained in:
80
README.md
80
README.md
@@ -1,4 +1,43 @@
|
||||
## Docker script
|
||||
# Composable Kernel
|
||||
|
||||
## Methodology
|
||||
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++.
|
||||
|
||||
CK utilizes two concepts to achieve performance portabilatity and code maintainbility:
|
||||
* A tile-based programming model
|
||||
* Algorithm complexity reduction for complex ML operators, using innovative technique we call "Tensor Coordinate Transformation".
|
||||
|
||||

|
||||
|
||||
## Code Structure
|
||||
Current CK library are structured into 4 layers:
|
||||
* "Templated Tile Operators"
|
||||
* "Templated Kernel and Invoker" layer
|
||||
* "Instantiated Kernel and Invoker" layer
|
||||
* "Client API" layer
|
||||
|
||||

|
||||
|
||||
## Contributors
|
||||
The list of developers and contributors is here: [Contributors](/CONTRIBUTORS.md)
|
||||
|
||||
## Citation
|
||||
If you use CK, please use following citations:
|
||||
* CK paper will be freely available on arXiv soon: [Realizing Tensor Operators Using Coordinate Transformations and Tile Based Programming](???)
|
||||
* [CITATION.cff](/CITATION.cff)
|
||||
|
||||
## License
|
||||
CK is released under the MIT license. [License File](/LICENSE)
|
||||
|
||||
|
||||
# Build CK
|
||||
|
||||
## Build docker image
|
||||
```bash
|
||||
DOCKER_BUILDKIT=1 docker build -t ck:latest -f Dockerfile .
|
||||
```
|
||||
|
||||
## Launch docker
|
||||
```bash
|
||||
docker run \
|
||||
-it \
|
||||
@@ -6,47 +45,38 @@ docker run \
|
||||
--group-add sudo \
|
||||
-w /root/workspace \
|
||||
-v ${PATH_TO_LOCAL_WORKSPACE}:/root/workspace \
|
||||
rocm/tensorflow:rocm5.1-tf2.6-dev \
|
||||
ck:latest \
|
||||
/bin/bash
|
||||
```
|
||||
|
||||
# Install newer version of rocm-cmake
|
||||
https://github.com/RadeonOpenCompute/rocm-cmake
|
||||
|
||||
## Build
|
||||
## Build CK
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
```
|
||||
|
||||
```bash
|
||||
# Need to specify target ID, example below is gfx908 and gfx90a
|
||||
cmake \
|
||||
-D BUILD_DEV=OFF \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D CMAKE_CXX_FLAGS=" --offload-arch=gfx908 --offload-arch=gfx90a -O3" \
|
||||
-D CMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc \
|
||||
-D CMAKE_PREFIX_PATH=/opt/rocm \
|
||||
-D CMAKE_INSTALL_PREFIX=${PATH_TO_CK_INSTALL_DIRECTORY} \
|
||||
# Need to specify target ID, example below is for gfx908 and gfx90a
|
||||
cmake \
|
||||
-D CMAKE_PREFIX_PATH=/opt/rocm \
|
||||
-D CMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc \
|
||||
-D CMAKE_CXX_FLAGS="-O3" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D GPU_TARGETS=gfx908;gfx90a \
|
||||
..
|
||||
```
|
||||
|
||||
### Build and Run Examples
|
||||
```bash
|
||||
make -j examples
|
||||
```
|
||||
Instructions for running each individual examples are under ```example/```
|
||||
|
||||
## Tests
|
||||
### Build examples and tests
|
||||
```bash
|
||||
make -j examples tests
|
||||
make test
|
||||
```
|
||||
|
||||
Instructions for running each individual examples are under [example](/example)
|
||||
|
||||
|
||||
## Build ckProfiler
|
||||
```bash
|
||||
make -j ckProfiler
|
||||
```
|
||||
Instructions for running ckProfiler are under ```profiler/```
|
||||
Instructions for running ckProfiler are under [profiler](/profiler)
|
||||
|
||||
## Install CK
|
||||
```bash
|
||||
@@ -54,7 +84,7 @@ make install
|
||||
```
|
||||
|
||||
## Using CK as pre-built kernel library
|
||||
Instructions for using CK as a pre-built kernel library are under ```client_example/```
|
||||
Instructions for using CK as a pre-built kernel library are under [client_example](/client_example)
|
||||
|
||||
## Caveat
|
||||
### Kernel Timing and Verification
|
||||
|
||||
Reference in New Issue
Block a user