ROCm/composable_kernel

[DEPRECATED] Moved to ROCm/rocm-libraries repo. NOTE: develop branch is maintained as a read-only mirror

解决的问题

Composable Kernel (CK) 提供了一种编程模型,用于创建高性能的机器学习工作负载内核。它解决了在不同硬件架构(如各种GPU和CPU)之间保持性能可移植性的同时,保持代码可维护性的挑战。

工作原理

CK 使用 HIP C++ 和两种核心技术概念来实现其目标:

  1. 基于分块的编程模型:将计算组织为块,以优化数据移动和处理。
  2. 张量坐标变换:一种用于降低复杂机器学习算子算法复杂度的技术。

该库分为四个层次:模板化分块操作、模板化内核和调用器、实例化内核和调用器,以及客户端 API。

适用人群

专为需要在多个硬件目标上高效运行的性能关键型 ML 内核开发者设计。

主要亮点

  • 性能可移植性:支持多种 GPU 架构(例如 gfx908、gfx90a、gfx1100)和 CPU。
  • 多层架构:将模板化逻辑与实例化内核分离,以提高可维护性。
  • 广泛的数据类型支持:支持多种精度,包括 fp64、fp32、tf32、fp16、fp8、bf16 和 int8。
  • 集成工具链:包含一个分析器(ckProfiler)和代码生成系统。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目