CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
57 lines
2.0 KiB
ReStructuredText
57 lines
2.0 KiB
ReStructuredText
.. meta::
|
|
:description: Composable Kernel wrapper
|
|
:keywords: composable kernel, CK, ROCm, API, wrapper
|
|
|
|
.. _wrapper:
|
|
|
|
********************************************************************
|
|
Composable Kernel wrapper
|
|
********************************************************************
|
|
|
|
|
|
The Composable Kernel library provides a lightweight wrapper to simplify the more complex operations.
|
|
|
|
Example:
|
|
|
|
.. code-block:: c
|
|
|
|
const auto shape_4x2x4 = ck::make_tuple(4, ck::make_tuple(2, 4));
|
|
const auto strides_s2x1x8 = ck::make_tuple(2, ck::make_tuple(1, 8));
|
|
const auto layout = ck::wrapper::make_layout(shape_4x2x4, strides_s2x1x8);
|
|
|
|
std::array<ck::index_t, 32> data;
|
|
auto tensor = ck::wrapper::make_tensor<ck::wrapper::MemoryTypeEnum::Generic>(&data[0], layout);
|
|
|
|
for(ck::index_t w = 0; w < size(tensor); w++) {
|
|
tensor(w) = w;
|
|
}
|
|
|
|
// slice() == slice(0, -1) (whole dimension)
|
|
auto tensor_slice = tensor(ck::wrapper::slice(1, 3), ck::make_tuple(ck::wrapper::slice(), ck::wrapper::slice()));
|
|
std::cout << "dims:2,(2,4) strides:2,(1,8)" << std::endl;
|
|
for(ck::index_t h = 0; h < ck::wrapper::size<0>(tensor_slice); h++)
|
|
{
|
|
for(ck::index_t w = 0; w < ck::wrapper::size<1>(tensor_slice); w++)
|
|
{
|
|
std::cout << tensor_slice(h, w) << " ";
|
|
}
|
|
std::cout << std::endl;
|
|
}
|
|
|
|
Output::
|
|
|
|
dims:2,(2,4) strides:2,(1,8)
|
|
1 5 9 13 17 21 25 29
|
|
2 6 10 14 18 22 26 30
|
|
|
|
|
|
Tutorials:
|
|
|
|
* `GEMM tutorial <https://github.com/ROCm/rocm-libraries/tree/develop/projects/composablekernel/client_example/25_wrapper/README.md>`_
|
|
|
|
Advanced examples:
|
|
|
|
* `Image to column <https://github.com/ROCm/rocm-libraries/tree/develop/projects/composablekernel/client_example/25_wrapper/wrapper_img2col.cpp>`_
|
|
* `Basic gemm <https://github.com/ROCm/rocm-libraries/tree/develop/projects/composablekernel/client_example/25_wrapper/wrapper_basic_gemm.cpp>`_
|
|
* `Optimized gemm <https://github.com/ROCm/rocm-libraries/tree/develop/projects/composablekernel/client_example/25_wrapper/wrapper_optimized_gemm.cpp>`_
|