语言 API
类型
表示一个 N 维的值或指针数组。 |
|
表示 Gluon IR 中共享内存分配的句柄。 |
|
编程模型
返回当前程序实例在给定 |
|
返回在给定 |
|
返回执行当前上下文的 warp 数量(包括在 warp 专用区域中的数量)。 |
|
返回当前内核中的 CTA 数量。 |
|
创建 warp 专用执行区域,在 warp 之间分配工作。 |
|
插入栅栏以同步 CTA 内或跨集群的线程。 |
创建操作
为具有给定元素类型、形状和布局的张量分配共享内存。 |
|
使用指定的布局生成一个范围在 [start, end) 的序列张量。 |
|
将张量转换为给定的 |
|
创建一个填充了标量值的张量,并具有指定的形状、数据类型和布局。 |
|
创建一个与给定张量属性相同、并填充了指定值的张量。 |
|
创建一个填充零的张量。 |
|
创建一个与给定张量属性相同、并填充零的张量。 |
|
布局操作
使用 ld.shared/st.shared 指令从共享内存描述符读取或写入分布式张量时,计算每个指令的 wavefront 产生的 bank 冲突数。 |
|
将张量转换为不同的分布式布局。 |
|
将具有 AutoLayout 的张量设置为具体布局。 |
|
形状操作
尝试将两个给定的块广播为兼容的公共形状。 |
|
通过插入新的长度为 1 的维度来扩展张量的形状。 |
|
在一个新的次要维度上连接给定的张量。 |
|
在张量上映射标量函数。 |
|
置换张量的维度。 |
|
返回 |
|
返回一个与输入元素数量相同但形状不同的张量。 |
|
沿最后一个维度将张量一分为二,该维度的大小必须为 2。 |
内存操作
返回一个张量,其值是从 pointer 定义的内存位置加载的。 |
|
将一个张量存入 pointer 定义的内存位置。 |
原子操作
在 |
|
在 |
|
在 |
|
在 |
|
在 |
|
在 |
|
在 |
|
在 |
线性代数操作
索引操作
沿给定维度从张量中收集(gather)数据。 |
|
根据 |
数学操作
计算 |
|
计算 |
|
计算 |
|
将输入张量 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
将张量从 fp4 (e2m1) 提升转换为另一种浮点类型。 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
归约操作
沿提供的 |
|
返回 |
|
返回 |
|
返回 |
|
返回 |
|
返回 |
扫描操作
沿提供的 |
|
计算一维整数张量的直方图。 |
布局类
表示一种块状布局,将张量分布在线程、warp 和 CTA 之间。 |
|
表示点积运算操作数的布局。 |
|
表示一种线性分布式布局,在寄存器、lane、warp 和 block 级别具有显式基准。 |
|
表示用于 NVIDIA MMA(张量核心)操作的布局。 |
|
表示适用于 NVIDIA MMA 操作的共享内存布局。 |
|
表示访问共享内存的布局。 |
|
表示通过显式 LinearLayout 定义的共享内存布局。 |
|
表示对应于沿一个维度切片分布式张量的布局。 |
|
表示一种通用的重排(swizzled)共享内存布局。 |
迭代器
永远向上计数的迭代器。 |
内联汇编
对张量执行内联汇编。 |
编译器提示与调试
允许编译器假定 |
|
让编译器知道 |
|
让编译器知道 |
|
让编译器知道 |
|
在编译时断言条件。 |
|
在编译时打印值。 |
|
在运行时从设备端断言条件。 |
|
在运行时从设备端打印值。 |