# NVGPUOps ### `nvgpu.cluster_id` (triton::nvgpu::ClusterCTAIdOp) Syntax: ``` operation ::= `nvgpu.cluster_id` attr-dict ``` Traits: `AlwaysSpeculatableImplTrait` Interfaces: `ConditionallySpeculatable`, `InferTypeOpInterface`, `NoMemoryEffect (MemoryEffectOpInterface)` Effects: `MemoryEffects::Effect{}` #### Results: | Result | Description | | :----: | ----------- | | `result` | 32-bit signless integer | ### `nvgpu.ld_acquire` (triton::nvgpu::LoadAcquireOp) Syntax: ``` operation ::= `nvgpu.ld_acquire` $sem `,` $scope `,` $addr (`,` $mask^)? attr-dict `:` functional-type($addr, $result) ``` Interfaces: `MemoryEffectOpInterface (MemoryEffectOpInterface)` Effects: `MemoryEffects::Effect{MemoryEffects::Read on ::mlir::SideEffects::DefaultResource}` #### Attributes:
AttributeMLIR TypeDescription
sem::mlir::triton::nvgpu::MemSemanticAttrallowed 32-bit signless integer cases: 1, 2, 3, 4
scope::mlir::triton::nvgpu::MemSyncScopeAttrallowed 32-bit signless integer cases: 1, 2, 3
#### Operands: | Operand | Description | | :-----: | ----------- | | `addr` | LLVM pointer in address space 1 | | `mask` | 1-bit signless integer | #### Results: | Result | Description | | :----: | ----------- | | `result` | floating-point or integer | ### `nvgpu.tensor_memory_base` (triton::nvgpu::TensorMemoryBaseAddress) Syntax: ``` operation ::= `nvgpu.tensor_memory_base` attr-dict ``` Op to represent base address of tensor memory in a kernel. This is used to simplify lowering from TritonGPU to LLVM. Traits: `AlwaysSpeculatableImplTrait` Interfaces: `ConditionallySpeculatable`, `InferTypeOpInterface`, `NoMemoryEffect (MemoryEffectOpInterface)` Effects: `MemoryEffects::Effect{}` #### Results: | Result | Description | | :----: | ----------- | | `result` | LLVM pointer in address space 6 | ### `nvgpu.wgmma` (triton::nvgpu::WGMMAOp) Syntax: ``` operation ::= `nvgpu.wgmma` $opA `,` $opB `,` $useC (`,` $opC^)? attr-dict `:` functional-type(operands, $res) ``` #### Attributes:
AttributeMLIR TypeDescription
m::mlir::IntegerAttr32-bit signless integer attribute
n::mlir::IntegerAttr32-bit signless integer attribute
k::mlir::IntegerAttr32-bit signless integer attribute
eltTypeC::mlir::triton::nvgpu::WGMMAEltTypeAttrwgmma operand type, either 's8', 's32', 'e4m3', 'e5m2', 'f16', 'bf16', 'tf32', or 'f32'
eltTypeA::mlir::triton::nvgpu::WGMMAEltTypeAttrwgmma operand type, either 's8', 's32', 'e4m3', 'e5m2', 'f16', 'bf16', 'tf32', or 'f32'
eltTypeB::mlir::triton::nvgpu::WGMMAEltTypeAttrwgmma operand type, either 's8', 's32', 'e4m3', 'e5m2', 'f16', 'bf16', 'tf32', or 'f32'
layoutA::mlir::triton::nvgpu::WGMMALayoutAttrwgmma layout, either 'row' or 'col'
layoutB::mlir::triton::nvgpu::WGMMALayoutAttrwgmma layout, either 'row' or 'col'
#### Operands: | Operand | Description | | :-----: | ----------- | | `opA` | wgmma operand A/B type | | `opB` | wgmma operand A/B type | | `useC` | 1-bit signless integer | | `opC` | LLVM structure type | #### Results: | Result | Description | | :----: | ----------- | | `res` | LLVM structure type | ### `nvgpu.wgmma_wait_group` (triton::nvgpu::WGMMAWaitGroupOp) Syntax: ``` operation ::= `nvgpu.wgmma_wait_group` $input attr-dict `:` type($input) ``` Interfaces: `InferTypeOpInterface` #### Attributes:
AttributeMLIR TypeDescription
pendings::mlir::IntegerAttr32-bit signless integer attribute
#### Operands: | Operand | Description | | :-----: | ----------- | | `input` | LLVM structure type | #### Results: | Result | Description | | :----: | ----------- | | `output` | LLVM structure type | ### `nvgpu.warp_id` (triton::nvgpu::WarpIdOp) Syntax: ``` operation ::= `nvgpu.warp_id` attr-dict ``` Traits: `AlwaysSpeculatableImplTrait` Interfaces: `ConditionallySpeculatable`, `InferTypeOpInterface`, `NoMemoryEffect (MemoryEffectOpInterface)` Effects: `MemoryEffects::Effect{}` #### Results: | Result | Description | | :----: | ----------- | | `result` | 32-bit signless integer |