NVlabs/CuTe

Reference implementation and examples of the CuTe Layout representation and algebra.

解决的问题

PyCuTe 提供了 NVIDIA CUTLASS 3.x 中使用的分层布局与张量代数的纯 Python 实现。开发者无需 GPU 或原始 CuTe 库所需的 C++ 环境,即可学习复杂代数、原型化新的数据转换,并生成测试向量。

工作原理

核心上,PyCuTe 将 Layout 定义为一个函数,使用 Shape(定义域)和 Stride(映射逻辑)将坐标映射为偏移量。它实现了丰富的代数操作,如 coalesce、composition、logical_divide(分块)和 logical_product(重复),用于操作这些布局。同时支持 F2(XOR-swizzle)步长以处理共享内存银行冲突。通过将 Layout 与 Accessor(如指针)配对,即可创建 Tensor,用于读取或写入数据。

适用人群

专为从事 GPU 张量计算的开发者和研究人员设计,也适合希望在 Python 中原型化布局变换的 CUTLASS 用户,以及研究分层张量布局数学基础的人士。

特色亮点

  • 纯 Python 实现:核心代数无需 GPU 或 CUDA 依赖。
  • 布局代数:完整实现 composition、complement、nullspace 等操作,支持复杂的分块与分区。
  • 可视化工具:内置支持将布局渲染为 ASCII 表格、彩色 SVG 或 LaTeX/PDF,用于可视化数据移动和银行冲突。
  • 参考实现:作为 C++ CuTe 库和 CuTe DSL 的忠实 Python 对应实现。

相关

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