

2025年,NVIDIA推出CUDA 13.1版本,其中最引人注目的创新是NVIDIA CUDA Tile(简称Cutile)。这一技术标志着自2006年CUDA平台诞生以来最大的技术突破,通过引入基于Tile的虚拟指令集,为GPU并行编程开辟了全新维度。
传统CUDA采用单指令多线程(SIMT)模型,开发者需精细控制线程执行细节以实现高性能。这种模式虽赋予最大灵活性,但跨架构优化成本高昂。Cutile通过Tile-based编程范式重构了这一逻辑——开发者只需定义数据块(Tile)及计算逻辑,编译器与运行时系统将自动处理元素级执行细节。这种抽象化设计使代码天然兼容当前及未来的Tensor Core架构,包括第三代Tensor Core的动态稀疏性支持和第四代Tensor Core的混合精度计算能力。
cuTile Python代码是什么样子?
以下示例展示了向量加法——这是CUDA中典型的入门内核,但此处采用了cuTile进行基于分块的编程。该示例利用一维分块(tile)实现两个一维向量的相加。
本示例体现了cuTile内核的通用结构:
具体到本例:内核从向量a和b加载分块,生成名为a_tile和b_tile的分块。这两个分块相加后形成第三个分块(命名为result)。最后一步,内核将结果分块存储到输出向量c中。
# SPDX-FileCopyrightText: Copyright (c) <2025> NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
"""
Example demonstrating simple vector addition.
Shows how to perform elementwise operations on vectors.
"""
import cupy as cp
import numpy as np
import cuda.tile as ct
@ct.kernel
def vector_add(a, b, c, tile_size: ct.Constant[int]):
# Get the 1D pid
pid = ct.bid(0)
# Load input tiles
a_tile = ct.load(a, index=(pid,), shape=(tile_size,))
b_tile = ct.load(b, index=(pid,), shape=(tile_size,))
# Perform elementwise addition
result = a_tile + b_tile
# Store result
ct.store(c, index=(pid, ), tile=result)
def test():
# Create input data
vector_size = 2**12
tile_size = 2**4
grid = (ct.cdiv(vector_size, tile_size), 1, 1)
a = cp.random.uniform(-1, 1, vector_size)
b = cp.random.uniform(-1, 1, vector_size)
c = cp.zeros_like(a)
# Launch kernel
ct.launch(cp.cuda.get_current_stream(),
grid, # 1D grid of processors
vector_add,
(a, b, c, tile_size))
# Copy to host only to compare
a_np = cp.asnumpy(a)
b_np = cp.asnumpy(b)
c_np = cp.asnumpy(c)
# Verify results
expected = a_np + b_np
np.testing.assert_array_almost_equal(c_np, expected)
print("✓ vector_add_example passed!")
if __name__ == "__main__":
test()如下面所示,在命令行中运行此命令。如果一切设置正确,测试将输出示例已通过的信息。
$ python3 samples/quickstart/VectorAdd_quickstart.py
✓ vector_add_example passed!如需运行更多cuTile Python示例,可直接调用这些示例来运行:
$ python3 samples/FFT.py
# output not shown您还可以使用pytest来运行所有示例:
$ pytest samples
========================= test session starts =========================
platform linux -- Python 3.12.3, pytest-9.0.1, pluggy-1.6.0
rootdir: /home/ascudiero/sw/cutile-python
configfile: pytest.ini
collected 6 items
samples/test_samples.py ...... [100%]
========================= 6 passed in 30.74s ==========================运行cuTile Python的条件是什么?
NVIDIA cuTile Python官方手册里写得很明白:

问题来了,什么样的GPU卡计算能力是10.X或者12.X的呢?
让我们来查一下查:

我们发现了什么?最新版本的Jetson Thor以计算能力11.0,完美地错过了cuTile。甚至连NVIDIA H100和H200,这样浓眉大眼的芯片,也完美错过....
但是NVIDIA GB10系统的用户可以拍手了!
手里有50系列GPU卡的用户也可以松一口气了!
不管怎么说,这种设计哲学与CUDA-X数学库、CUTLASS高性能计算库形成互补,构建起从底层硬件抽象到高层算法优化的完整生态。随着AI工作负载持续向多模态、大参数方向发展,Cutile代表的Tile-based编程范式将成为释放下一代GPU算力的关键技术支柱。