mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-13 09:45:56 +00:00
94 lines
3.3 KiB
Markdown
94 lines
3.3 KiB
Markdown
## CK docker hub
|
|
|
|
[Docker hub](https://hub.docker.com/r/rocm/composable_kernel)
|
|
|
|
## Why do I need this?
|
|
|
|
To make our lives easier and bring Composable Kernel dependencies together, we recommend using docker images.
|
|
|
|
## So what is Composable Kernel?
|
|
|
|
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++.
|
|
|
|
To get the CK library
|
|
|
|
```
|
|
git clone https://github.com/ROCmSoftwarePlatform/composable_kernel.git
|
|
```
|
|
|
|
run a docker container
|
|
|
|
```
|
|
docker run \
|
|
-it \
|
|
--privileged \
|
|
--group-add sudo \
|
|
-w /root/workspace \
|
|
-v ${PATH_TO_LOCAL_WORKSPACE}:/root/workspace \
|
|
rocm/composable_kernel:ck_ub20.04_rocm5.3_release \
|
|
/bin/bash
|
|
```
|
|
|
|
and build the CK
|
|
|
|
```
|
|
mkdir build && cd build
|
|
|
|
# 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" \
|
|
..
|
|
```
|
|
|
|
and
|
|
|
|
```
|
|
make -j examples tests
|
|
```
|
|
|
|
To run all the test cases including tests and examples run
|
|
|
|
```
|
|
make test
|
|
```
|
|
|
|
We can also run specific examples or tests like
|
|
|
|
```
|
|
./bin/example_gemm_xdl_fp16
|
|
./bin/test_gemm_fp16
|
|
```
|
|
|
|
For more details visit [CK github repo](https://github.com/ROCmSoftwarePlatform/composable_kernel), [CK examples](https://github.com/ROCmSoftwarePlatform/composable_kernel/tree/develop/example), [even more CK examples](https://github.com/ROCmSoftwarePlatform/composable_kernel/tree/develop/client_example).
|
|
|
|
## And what is inside?
|
|
|
|
The docker images have everything you need for running CK including:
|
|
|
|
* [ROCm](https://www.amd.com/en/graphics/servers-solutions-rocm)
|
|
* [CMake](https://cmake.org/)
|
|
* [Compiler](https://github.com/RadeonOpenCompute/llvm-project)
|
|
|
|
## Which image is right for me?
|
|
|
|
Let's take a look at the image naming, for example "ck_ub20.04_rocm5.4_release". The image specs are:
|
|
|
|
* "ck" - made for running Composable Kernel
|
|
* "ub20.04" - based on Ubuntu 20.04
|
|
* "rocm5.4" - ROCm platform version 5.4
|
|
* "release" - compiler version is release
|
|
|
|
So just pick the right image for your project dependencies and you're all set.
|
|
|
|
## DIY starts here
|
|
|
|
If you need to customize a docker image or just can't stop tinkering, feel free to adjust the [Dockerfile](https://github.com/ROCmSoftwarePlatform/composable_kernel/blob/develop/Dockerfile) for your needs.
|
|
|
|
## License
|
|
|
|
CK is released under the MIT [license](https://github.com/ROCmSoftwarePlatform/composable_kernel/blob/develop/LICENSE).
|