description:File a report for ROCm related issues on Linux and Windows. For issues pertaining to documentation or non-bug related, please open a blank issue located below.
title:"[Issue]:"
body:
-type:markdown
attributes:
value:|
Thank you for taking the time to fill out this report!
You can acquire your OS, CPU, GPU (for filling out this report) with the following commands:
description:What GPU(s) did you encounter the issue on (you can select multiple GPUs from the list)
multiple:true
options:
-AMD Instinct MI300X
-AMD Instinct MI300A
-AMD Instinct MI300
-AMD Instinct MI250X
-AMD Instinct MI250
-AMD Instinct MI210
-AMD Instinct MI100
-AMD Instinct MI50
-AMD Instinct MI25
-AMD Radeon Pro V620
-AMD Radeon Pro VII
-AMD Radeon RX 7900 XTX
-AMD Radeon VII
-AMD Radeon Pro W7900
-AMD Radeon Pro W7800
-AMD Radeon Pro W6800
-AMD Radeon Pro W6600
-AMD Radeon Pro W5500
-AMD Radeon RX 7900 XT
-AMD Radeon RX 7600
-AMD Radeon RX 6950 XT
-AMD Radeon RX 6900 XT
-AMD Radeon RX 6800 XT
-AMD Radeon RX 6800
-AMD Radeon RX 6750
-AMD Radeon RX 6700 XT
-AMD Radeon RX 6700
-AMD Radeon RX 6650 XT
-AMD Radeon RX 6600 XT
-AMD Radeon RX 6600
-Other
validations:
required:true
-type:input
attributes:
label:Other
description:If you selected Other, please specify
-type:dropdown
attributes:
label:ROCm Version
description:What version(s) of ROCm did you encounter the issue on?
multiple:true
options:
-ROCm 6.0.0
-ROCm 5.7.1
-ROCm 5.7.0
-ROCm 5.6.1
-ROCm 5.6.0
-ROCm 5.5.1
-ROCm 5.5.0
validations:
required:true
-type:dropdown
attributes:
label:ROCm Component
description:(Optional) If this issue relates to a specific ROCm component, it can be mentioned here.
multiple:true
options:
-Other
-AMD Common Language Runtime
-AMD MIGraphX
-AMD System Management Interface
-amdgpu KCL/autoconf
-amdgpu Kernel-mode GPU Driver
-amdgpu-install
-AOMP
-AOMP Extras
-AqlProfile
-build-infra
-chelsio
-clang-ocl
-Composable Kernel
-dkms
-docker / ROCm-docker
-flang
-gpuburn
-half
-HIP
-HIP Examples
-hipBLAS
-hipBLASLt
-HIPCC
-hipCUB
-hip-examples-private
-hipFFT
-hipfort
-HIPIFY
-hipRAND
-hipSOLVER
-hipSPARSE
-hipSPARSELt
-hipTensor
-hip-tests
-HSA Runtime
-infrastructure
-jenkins-utils
-libdrm
-Linux BPI packaging framework
-llvm-project
-Mesa
-meta
-MIOpen
-MIVisionX
-ml-framework-ci
-MLSEQA_TestRepo
-OpenCL API C++ Bindings
-OpenCL API Headers
-OpenCL Conformance Test Suite
-OpenCL ICD Loader
-perftest-p2p
-prototype
-RCCL
-rccl-rdma-sharp-plugins
-rocALUTION
-rocBLAS
-ROCdbgapi
-ROCdebug-agent
-rocFFT
-ROCgdb
-ROCK
-ROCm Documentation/Website
-ROCm Data Center Tool
-ROCm Examples
-ROCm for Windows
-ROCm Performance Primitives
-ROCm System Management Interface Library
-ROCm Thrust
-ROCm Validation Suite
-rocm_bandwidth_test
-rocm-cmake
-rocm-core
-rocm-docs-core
-rocminfo
-rocMLIR
-rocmtools
-rocPRIM
-rocprofiler
-rocRAND
-ROCR-Runtime
-rocSOLVER
-rocSPARSE
-roctracer
-ROCT-Thunk-Interface
-rocWMMA
-Tensile
-umr
-ibv_rc_pingpong-amd
-mellanox
-mpitest
-Pytorch
-Tensorflow
-APEX
-torchvision
-Magma
-type:textarea
attributes:
label:Steps to Reproduce
description:(Optional) Detailed steps to reproduce the issue.
validations:
required:false
-type:textarea
attributes:
label:(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
description:The output of rocminfo --support could help to better address the problem.
validations:
required:false
-type:textarea
attributes:
label:Additional Information
description:(Optional) Any additional information that is relevant, e.g. relevant environment variables, dockerfiles, log files, dmesg output (on Linux), etc.
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++.
sh -c"echo deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] $DEB_ROCM_REPO focal main > /etc/apt/sources.list.d/rocm.list"&&\
sh -c'echo deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/$ROCMVERSION/ubuntu focal main > /etc/apt/sources.list.d/amdgpu.list';\
sh -c'echo deb [arch=amd64 trusted=yes] http://compute-artifactory.amd.com/artifactory/list/rocm-release-archive-20.04-deb/ 5.7 rel-19 > /etc/apt/sources.list.d/rocm-build.list'&&\
sh -c'echo deb [arch=amd64 trusted=yes] http://compute-artifactory.amd.com/artifactory/list/rocm-release-archive-20.04-deb/ 6.0.1 rel-95 > /etc/apt/sources.list.d/rocm-build.list'&&\
amdgpu-repo --amdgpu-build=1704947;\
fi
RUN sh -c"echo deb http://mirrors.kernel.org/ubuntu focal main universe | tee -a /etc/apt/sources.list"
description:"Force building docker image (default: false), set to true if docker image needs to be updated.")
string(
name:'ROCMVERSION',
defaultValue:'5.6',
description:'Specify which ROCM version to use: 5.6 (default).')
defaultValue:'6.0',
description:'Specify which ROCM version to use: 6.0 (default).')
string(
name:'COMPILER_VERSION',
defaultValue:'',
description:'Specify which version of compiler to use: release, amd-stg-open, or leave blank (default).')
description:'Specify which version of compiler to use: release, amd-staging, amd-mainline-open, or leave blank (default).')
string(
name:'COMPILER_COMMIT',
defaultValue:'',
description:'Specify which commit of compiler branch to use: leave blank to use the latest commit, or use 5541927df00eabd6a110180170eca7785d436ee3 (default) commit of amd-stg-open branch.')
description:'Specify which commit of compiler branch to use: leave blank to use the latest commit (default), or use some specific commit of llvm-project branch.')
string(
name:'BUILD_COMPILER',
defaultValue:'hipcc',
description:'Specify whether to build CK with hipcc (default) or with clang.')
defaultValue:'clang',
description:'Specify whether to build CK with hipcc or with clang (default).')
booleanParam(
name:"RUN_FULL_QA",
defaultValue:false,
description:"Select whether to run small set of performance tests (default) or full QA")
booleanParam(
name:"DL_KERNELS",
defaultValue:false,
description:"Select whether to build DL kernels (default: OFF)")
booleanParam(
name:"hipTensor_test",
defaultValue:true,
description:"Use the CK build to verify hipTensor build and tests (default: ON)")
string(
name:'hipTensor_branch',
defaultValue:'mainline',
description:'Specify which branch of hipTensor to use (default: mainline)')
booleanParam(
name:"USE_SCCACHE",
defaultValue:true,
description:"Use the sccache for building CK (default: ON)")
booleanParam(
name:"RUN_CPPCHECK",
defaultValue:false,
description:"Run the cppcheck static analysis (default: OFF)")
booleanParam(
name:"RUN_PERFORMANCE_TESTS",
defaultValue:false,
description:"Run the performance tests (default: OFF)")
The Composable Kernel (CK) library provides a programming model for writing performance-critical
kernels for machine learning workloads across multiple architectures (GPUs, CPUs, etc.). The CK library
uses general purpose kernel languages, such as HIP C++.
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 uses two concepts to achieve performance portability and code maintainability:
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".
* Algorithm complexity reduction for complex machine learning (ML) operators. This uses an innovative
technique called *Tensor Coordinate Transformation*.
You may need to clean up the build folder and repeat the cmake and make steps in order to take
advantage of the sccache during subsequent builds.
## Using CK as pre-built kernel library
Instructions for using CK as a pre-built kernel library are under[client_example](/client_example)
You can find instructions for using CK as a pre-built kernel library in[client_example](/client_example).
## Contributing
## Contributing to CK
When you contribute to Composable Kernel, make sure to run `clang-format` on all the changed files. We highly recommend using git hooks that are managed by the `pre-commit` framework. To install hooks, run:
When you contribute to CK, make sure you run `clang-format` on all changed files. We highly
recommend using git hooks that are managed by the `pre-commit` framework. To install hooks, run:
```bash
sudo script/install_precommit.sh
```
This way, `pre-commit` will add the appropriate hooks to your local repository and automatically run `clang-format` (and possibly additional checks) before any commit is created.
With this approach, `pre-commit` adds the appropriate hooks to your local repository and
automatically runs `clang-format` (and possibly additional checks) before any commit is created.
If you need to uninstall hooks from the repository, you can do so by running the following command:
...
...
@@ -141,14 +190,5 @@ If you need to uninstall hooks from the repository, you can do so by running the
script/uninstall_precommit.sh
```
If for any reason, you need to temporarily disable precommit hooks, you can add the `--no-verify` option to the `git commit` command.
## Caveat
### Kernel Timing and Verification
CK's own kernel timer will warn up kernel once, and then run it multiple times
to get average kernel time. For some kernels that use atomic add, this will cause
output buffer to be accumulated multiple times, causing verification failure.
To work around it, do not use CK's own timer and do verification at the same time.
CK's own timer and verification in each example and ckProfiler can be enabled or
disabled from command line.
If you need to temporarily disable pre-commit hooks, you can add the `--no-verify` option to the