rocm/composable_kernelComposable Kernel(简称CK)是一款高性能计算内核开发库,旨在为开发者提供模块化、可组合的构建块,用于构建针对多硬件架构(如NVIDIA GPU、AMD GPU等)优化的计算内核。该Docker镜像基于CK库构建,提供预配置的、一致的开发与运行环境,旨在简化依赖管理、消除环境差异,支持开发者快速上手CK库的使用、内核开发、测试及部署。
Composable Kernel镜像托管于Docker Hub或GitHub Container Registry,可通过以下命令拉取:
bash# 拉取最新版(默认架构,如CUDA) docker pull composablekernel:latest # 拉取指定版本(如v1.2.0) docker pull composablekernel:v1.2.0 # 拉取特定架构版本(如ROCm支持) docker pull composablekernel:rocm-latest
镜像标签说明:
latest:最新稳定版,默认适配主流架构(如CUDA);v<x.y.z>:指定CK版本(如v1.2.0);cuda-<version>/rocm-<version>:指定底层计算栈版本(如cuda-12.1、rocm-5.6)。
bash# 启动交互式终端,挂载当前目录至容器内/workspace(用于代码持久化) docker run -it --rm \ --name ck-dev-env \ -v $(pwd):/workspace \ # 挂载本地代码目录 composablekernel:latest \ /bin/bash
若需使用GPU加速,需在运行时添加硬件访问参数:
NVIDIA GPU(需安装nvidia-docker):
bashdocker run -it --rm \ --gpus all \ # 映射所有GPU设备 -v $(pwd):/workspace \ composablekernel:cuda-12.1 \ /bin/bash
AMD GPU(ROCm):
bashdocker run -it --rm \ --device /dev/kfd \ # 访问AMD GPU设备 --device /dev/dri \ -v $(pwd):/workspace \ composablekernel:rocm-5.6 \ /bin/bash
容器支持通过环境变量自定义运行时行为,常用变量如下:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
CK_VERSION | 指定容器内CK库版本(需镜像支持多版本) | 镜像内置版本 |
CMAKE_BUILD_TYPE | 编译类型(Release/Debug/RelWithDebInfo) | Release |
WORKSPACE | 工作目录路径 | /workspace |
CUDA_HOME | CUDA安装路径(CUDA镜像) | /usr/local/cuda |
ROCM_HOME | ROCm安装路径(ROCm镜像) | /opt/rocm |
使用示例:指定Debug模式编译
bashdocker run -it --rm \ -e CMAKE_BUILD_TYPE=Debug \ composablekernel:latest \ /bin/bash
容器内默认包含CK示例代码(路径:/opt/composablekernel/examples),可直接编译验证环境:
bash# 进入容器后执行 cd /opt/composablekernel/examples/01_simple_gemm mkdir build && cd build cmake .. make -j$(nproc) # 运行编译后的示例(需GPU支持) ./simple_gemm
将本地CK项目挂载至容器,进行自定义内核开发:
bash# 本地主机执行(挂载当前项目目录至容器/workspace) docker run -it --rm \ --gpus all \ -v $(pwd):/workspace \ composablekernel:latest \ /bin/bash # 容器内编译本地代码 cd /workspace mkdir build && cd build cmake .. -DCMAKE_PREFIX_PATH=/opt/composablekernel make -j$(nproc)
bash# 拉取并启动支持CUDA 12.1的CK开发环境,挂载代码目录并保留容器(--rm改为--name持久化) docker run -it --name ck-dev-cuda12 \ --gpus all \ -v /path/to/local/code:/workspace \ -v /path/to/datasets:/datasets \ # 挂载数据集 composablekernel:cuda-12.1 \ /bin/bash
创建docker-compose.yml配置文件,定义持久化开发环境:
yamlversion: '3' services: ck-dev: image: composablekernel:latest container_name: ck-dev-env runtime: nvidia # NVIDIA GPU需添加(依赖nvidia-docker) environment: - CMAKE_BUILD_TYPE=Release - WORKSPACE=/workspace volumes: - ./local_code:/workspace # 本地代码目录 - ./datasets:/datasets # 数据集目录 - ./ck_cache:/root/.cache # 缓存目录持久化 tty: true # 保持终端连接
启动服务:
bashdocker-compose up -d # 后台启动 docker-compose exec ck-dev /bin/bash # 进入容器
-v参数挂载本地目录保存代码、编译产物及数据。--cpus参数)和内存,避免资源限制影响测试结果。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务