Skip to main content
Log in

Mojo function

named_barrier

named_barrier[num_threads: SIMD[int32, 1], id: SIMD[int32, 1] = __init__[__mlir_type.!pop.int_literal](0)]()

Performs a named synchronization barrier at the block level.

This function creates a synchronization point using a specific barrier ID, allowing for multiple independent barriers within a thread block. All threads in the block must execute this function with the same barrier ID and thread count before any thread can proceed past the barrier.

Notes:

  • Only supported on NVIDIA GPUs.
  • Maps directly to the nvvm.barrier instruction.
  • Useful for fine-grained synchronization when different subsets of threads need to synchronize independently.
  • The barrier ID must not exceed 16.
  • All threads participating in the barrier must specify the same num_threads value.

Parameters:

  • num_threads (SIMD[int32, 1]): The number of threads that must reach the barrier before any can proceed.
  • id (SIMD[int32, 1]): The barrier identifier (0-16). Default is 0.