You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. nvvm.griddepcontrol.wait
1. nvvm.griddepcontrol.launch_dependents
They are related to FDL and same concept. This PR unifies both ops into a single one.
Causes the executing thread to wait until all prerequisite grids in flight
3011
+
If the $kind attribute is set to `wait`, the instruction, it causes the
3012
+
executing thread to wait until all prerequisite grids in flight
3003
3013
have completed and all the memory operations from the prerequisite grids
3004
3014
are performed and made visible to the current grid.
3005
3015
3016
+
When the $kind is launch_dependents, it signals that specific dependents
3017
+
the runtime system designated to react to this instruction can be scheduled
3018
+
as soon as all other CTAs in the grid issue the same instruction or have
3019
+
completed.
3006
3020
3007
3021
[For more information, see PTX ISA](https://docs.nvidia.com/cuda/parallel-thread-execution/#parallel-synchronization-and-communication-instructions-griddepcontrol)
Signals that specific dependents the runtime system designated to react to
3017
-
this instruction can be scheduled as soon as all other CTAs in the grid
3018
-
issue the same instruction or have completed.
3024
+
let arguments = (ins FDLKindAttr:$kind);
3019
3025
3026
+
let assemblyFormat = "$kind attr-dict";
3020
3027
3021
-
[For more information, see PTX ISA](https://docs.nvidia.com/cuda/parallel-thread-execution/#parallel-synchronization-and-communication-instructions-griddepcontrol)
3028
+
string llvmBuilder = [{
3029
+
llvm::Intrinsic::ID id;
3030
+
switch ($kind) {
3031
+
case NVVM::FDLKind::wait:
3032
+
id = llvm::Intrinsic::nvvm_griddepcontrol_wait;
3033
+
break;
3034
+
case NVVM::FDLKind::launch_dependents:
3035
+
id = llvm::Intrinsic::nvvm_griddepcontrol_launch_dependents;
0 commit comments