Changeset View
Changeset View
Standalone View
Standalone View
mlir/include/mlir/Dialect/NVGPU/NVGPU.td
Show First 20 Lines • Show All 180 Lines • ▼ Show 20 Lines | def NVGPU_DeviceAsyncCreateGroupOp : NVGPU_Op<"device_async_create_group", []> { | ||||
This is meant to be used with `gpu.device_async_wait` to synchronize copies | This is meant to be used with `gpu.device_async_wait` to synchronize copies | ||||
as explained in those ops descriptions. | as explained in those ops descriptions. | ||||
Groups are executed in the order they are created. | Groups are executed in the order they are created. | ||||
Example: | Example: | ||||
```mlir | ```mlir | ||||
%0 = gpu.device_async_create_group | %0 = gpu.device_async_create_group(%cp0) | ||||
``` | ``` | ||||
}]; | }]; | ||||
let results = (outs NVGPU_DeviceAsyncToken:$asyncToken); | let results = (outs NVGPU_DeviceAsyncToken:$asyncToken); | ||||
let arguments = (ins Variadic<NVGPU_DeviceAsyncToken>:$inputTokens); | let arguments = (ins Variadic<NVGPU_DeviceAsyncToken>:$inputTokens); | ||||
let assemblyFormat = [{ | let assemblyFormat = [{ | ||||
$inputTokens attr-dict | `(` $inputTokens `)` attr-dict | ||||
}]; | }]; | ||||
} | } | ||||
def NVGPU_DeviceAsyncWaitOp : NVGPU_Op<"device_async_wait", []> { | def NVGPU_DeviceAsyncWaitOp : NVGPU_Op<"device_async_wait", []> { | ||||
let summary = "Wait for async gpu ops to complete."; | let summary = "Wait for async gpu ops to complete."; | ||||
let description = [{ | let description = [{ | ||||
The `gpu.device_async_wait` op will block the execution thread until the group | The `gpu.device_async_wait` op will block the execution thread until the group | ||||
associated with the source token is fully completed. | associated with the source token is fully completed. | ||||
Show All 17 Lines |