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 对应实现。
相关
- 项目
- 项目
- 项目
- 项目
- 项目