abstract: 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 progarmming languages, like HIP C++.
CK team works closely with Meta [AITemplate](https://github.com/facebookincubator/AITemplate) team ([Bing Xu](https://github.com/antinucleon), [Hao Lu](https://github.com/hlu1), [Ying Zhang](https://github.com/ipiszy), etc). Most of the lucrative graph optimization opportunities in ML models were identified by AITemplate team, and we also co-designed many high performance fused kernels for AMD GPUs. Without this collaboration, CK would not reach its current potential.
description:"Force building docker image (default: false), set to true if docker image needs to be updated.")
string(
name:'ROCMVERSION',
defaultValue:'5.3',
description:'Specify which ROCM version to use: 5.2.3, or 5.3 (default), etc.')
string(
name:'COMPILER_VERSION',
defaultValue:'release',
description:'Specify which version of compiler to use: ck-9110, release (default), or amd-stg-open.')
string(
name:'COMPILER_COMMIT',
defaultValue:'',
description:'Specify which commit of compiler branch to use: leave empty to use the latest commit (default), or use 8a82e4eb7ba28521ba9a9424a0315a8a16590424 commit of amd-stg-open branch.')
string(
name:'BUILD_COMPILER',
defaultValue:'hipcc',
description:'Specify whether to build CK with hipcc (default) or with clang.')
booleanParam(
name:"RUN_FULL_QA",
defaultValue:false,
description:"Select whether to run small set of performance tests (default) or full QA")
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 portability and code maintainability:
* A tile-based programming model
* Algorithm complexity reduction for complex ML operators, using innovative technique we call "Tensor Coordinate Transformation".