triton.language.atomic_cas¶
- triton.language.atomic_cas(pointer, cmp, val, sem=None, scope=None)¶
在
pointer
指定的内存位置执行原子比较并交换操作(atomic compare-and-swap)。返回原子操作前存储在
pointer
的数据。- 参数:
pointer (Block of dtype=triton.PointerDType) – 要操作的内存位置
cmp (Block of dtype=pointer.dtype.element_ty) – 期望在原子对象中找到的值
val (Block of dtype=pointer.dtype.element_ty) – 用于执行原子操作的值
sem (str, optional) – 指定操作的内存语义。可接受的值包括 “acquire”、“release”、“acq_rel”(代表 “ACQUIRE_RELEASE”)和 “relaxed”。如果未提供,函数默认为使用 “acq_rel” 语义。
scope (str, optional) – 定义观察原子操作同步效果的线程范围。可接受的值包括 “gpu”(默认)、“cta”(合作线程数组,线程块)或 “sys”(代表 “SYSTEM”)。默认值为 “gpu”。
此函数也可以作为成员函数在
tensor
上调用,形式为x.atomic_cas(...)
,而不是atomic_cas(x, ...)
。