Merge pull request #273 from ROCm/atomic_operations

Atomic operations support on GPUs
This commit is contained in:
Istvan Kiss
2025-03-20 17:14:51 +01:00
committed by GitHub
15 changed files with 3631 additions and 18 deletions

1
.gitignore vendored
View File

@@ -5,6 +5,7 @@ build
# documentation artifacts
_build/
_images/
__pycache__/
_static/
_templates/
_toc.yml

View File

@@ -18,12 +18,14 @@ APBDIS
APIC
APIs
APU
APUs
ASIC
ASICs
ASan
ASAN
ASm
ATI
atomicRMW
AddressSanitizer
AlexNet
Andrej
@@ -36,6 +38,7 @@ Blit
Blockwise
Bluefield
Bootloader
CAS
CCD
CDNA
CHTML
@@ -78,6 +81,8 @@ DBRX
DDR
DF
DGEMM
dGPU
dGPUs
DIMM
DKMS
DL
@@ -98,6 +103,7 @@ DeepSpeed
Dependabot
Deprecations
DevCap
DirectX
Dockerfile
Doxygen
ELMo
@@ -177,6 +183,7 @@ IDE
IDEs
IFWI
IMDb
IncDec
IOMMU
IOP
IOPM
@@ -272,6 +279,7 @@ NaN
Nano
Navi
Noncoherently
NoReturn
NousResearch's
NumPy
OAM
@@ -503,15 +511,19 @@ bfloat
bilinear
bitcode
bitsandbytes
bitwise
Bitwise
blit
bootloader
boson
bosons
br
BrainFloat
buildable
bursty
bzip
cacheable
carveout
cd
centos
centric
@@ -590,6 +602,7 @@ ffmpeg
filesystem
fortran
fp
framebuffer
gRPC
galb
gcc
@@ -672,6 +685,7 @@ macOS
matchers
microarchitecture
migraphx
migratable
miopen
miopengemm
mivisionx
@@ -684,6 +698,9 @@ mvffr
namespace
namespaces
nanoGPT
NCS
NOP
NVLink
num
numref
ocl
@@ -835,6 +852,7 @@ tracebacks
txt
uarch
uncached
uncacheable
uncorrectable
underoptimized
unhandled
@@ -879,6 +897,7 @@ wrreq
wzo
xargs
xGMI
xPacked
xz
yaml
ysvmadyb

View File

@@ -30,6 +30,7 @@ if os.environ.get("READTHEDOCS", "") == "True":
# configurations for PDF output by Read the Docs
project = "ROCm Documentation"
project_path = os.path.abspath(".").replace("\\", "/")
author = "Advanced Micro Devices, Inc."
copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved."
version = "6.4.0"
@@ -94,7 +95,7 @@ external_toc_path = "./sphinx/_toc.yml"
# Add the _extensions directory to Python's search path
sys.path.append(str(Path(__file__).parent / 'extension'))
extensions = ["rocm_docs", "sphinx_reredirects", "sphinx_sitemap", "sphinxcontrib.datatemplates", "version-ref"]
extensions = ["rocm_docs", "sphinx_reredirects", "sphinx_sitemap", "sphinxcontrib.datatemplates", "version-ref", "csv-to-list-table"]
compatibility_matrix_file = str(Path(__file__).parent / 'compatibility/compatibility-matrix-historical-6.0.csv')
@@ -122,3 +123,13 @@ html_theme_options = {"link_main_doc": False}
redirects = {"reference/openmp/openmp": "../../about/compatibility/openmp.html"}
numfig = False
html_context = {
"project_path" : {project_path},
"gpu_type" : [('AMD Instinct accelerators', 'intrinsic'), ('AMD gfx families', 'gfx'), ('NVIDIA families', 'nvidia') ],
"atomics_type" : [('HW atomics', 'hw-atomics'), ('CAS emulation', 'cas-atomics')],
"pcie_type" : [('No PCIe atomics', 'nopcie'), ('PCIe atomics', 'pcie')],
"memory_type" : [('Device DRAM', 'device-dram'), ('Migratable Host DRAM', 'migratable-host-dram'), ('Pinned Host DRAM', 'pinned-host-dram')],
"granularity_type" : [('Coarse-grained', 'coarse-grained'), ('Fine-grained', 'fine-grained')],
"scope_type" : [('Device', 'device'), ('System', 'system')]
}

View File

@@ -0,0 +1,325 @@
Atomic,gfx9 dGPU,gfx9 APU,gfx10 dGPU,gfx11 dGPU,gfx11 APU,gfx12 dGPU
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicSub,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicInc,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicDec,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atoimcExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicSub,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicInc,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicDec,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atoimcExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade - CAS
32 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade - CAS
64 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicSub,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicInc,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicDec,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atoimcExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicSub,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicInc,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicDec,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atoimcExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade - CAS
32 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
32 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicExch,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAnd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicOr,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit atomicXor,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
1 Atomic gfx9 dGPU gfx9 APU gfx10 dGPU gfx11 dGPU gfx11 APU gfx12 dGPU
2 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
3 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
4 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
5 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
6 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
7 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
8 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
9 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
10 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
19 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
22 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
23 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
24 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
27 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
28 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
29 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
30 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
31 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
32 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
33 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
34 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
35 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
36 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
37 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
38 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
42 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
43 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
46 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
49 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
50 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
51 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
54 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
55 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
56 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
57 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
58 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
59 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
60 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
61 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
62 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
63 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
64 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
65 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
69 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
70 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
71 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
76 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
77 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
78 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
81 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
82 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
83 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
84 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
85 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
86 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
87 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
88 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
89 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
90 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
91 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
92 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
96 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
97 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
98 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
100 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
103 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
104 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
105 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
108 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
109 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
110 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
111 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
112 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
113 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
114 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
115 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
116 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
117 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
118 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
119 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
123 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
124 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
125 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
127 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
130 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
132 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
135 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
136 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
137 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
138 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
139 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
140 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
141 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
142 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
143 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
144 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
145 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
146 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
150 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
151 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
152 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
154 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
157 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
158 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
159 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
162 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
163 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
164 32 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
165 32 bit atomicSub ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
166 32 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
167 32 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
168 32 bit atomicInc ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
169 32 bit atomicDec ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
170 64 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
171 64 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
172 64 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
173 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
174 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
175 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
176 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
177 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
178 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
179 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
180 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
181 32 bit atoimcExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
182 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
183 32 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
184 32 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
185 32 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
186 64 bit atomicExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
187 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
188 64 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
189 64 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
190 64 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
191 32 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
192 32 bit atomicSub ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
193 32 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
194 32 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
195 32 bit atomicInc ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
196 32 bit atomicDec ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
197 64 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
198 64 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
199 64 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
200 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
201 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
202 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
203 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
204 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
205 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
206 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
207 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
208 32 bit atoimcExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
209 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade - CAS
210 32 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
211 32 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
212 32 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
213 64 bit atomicExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
214 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade - CAS
215 64 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
216 64 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
217 64 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
218 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
219 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
220 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
221 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
222 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
223 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
224 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
225 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
226 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
227 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
231 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
232 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
233 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
235 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
238 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
239 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
240 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
243 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
244 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
245 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
246 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
248 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
249 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
250 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
251 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
252 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
253 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
254 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
258 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
259 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
260 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
262 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
265 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
266 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
267 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
270 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
271 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
272 32 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
273 32 bit atomicSub ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
274 32 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
275 32 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
276 32 bit atomicInc ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
277 32 bit atomicDec ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
278 64 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
279 64 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
280 64 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
281 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
282 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
283 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
284 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
285 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
286 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
287 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
288 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
289 32 bit atoimcExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
290 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
291 32 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
292 32 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
293 32 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
294 64 bit atomicExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
295 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
296 64 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
297 64 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
298 64 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
299 32 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
300 32 bit atomicSub ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
301 32 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
302 32 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
303 32 bit atomicInc ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
304 32 bit atomicDec ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
305 64 bit atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
306 64 bit atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
307 64 bit atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
308 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
309 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
310 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
311 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
312 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
313 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
314 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
315 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
316 32 bit atoimcExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
317 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade - CAS
318 32 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
319 32 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
320 32 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
321 64 bit atomicExch ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
322 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
323 64 bit atomicAnd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
324 64 bit atomicOr ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
325 64 bit atomicXor ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS

View File

@@ -0,0 +1,325 @@
Atomic,MI100,MI200 PCIe,MI200 A+A,MI300X,MI300A
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicSub,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicInc,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicDec,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atoimcExch,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicExch,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicSub,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicInc,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicDec,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atoimcExch,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicExch,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicSub,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicInc,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicDec,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atoimcExch,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ CAS
32 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicExch,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ CAS
64 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,✅ CAS,✅ CAS
32 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicSub,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicInc,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicDec,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atoimcExch,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicExch,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicCAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicOr,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit atomicXor,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade - CAS,✅ CAS
1 Atomic MI100 MI200 PCIe MI200 A+A MI300X MI300A
2 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
3 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
4 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
5 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
6 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
7 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
8 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
9 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
10 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
19 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
22 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
23 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
24 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
27 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
28 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
29 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
30 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
31 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
32 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
33 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
34 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
35 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
36 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
37 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
38 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
42 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
43 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
46 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
49 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
50 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
51 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
54 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
55 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
56 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
57 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
58 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
59 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
60 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
61 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
62 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
63 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
64 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
65 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
69 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
70 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
71 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
76 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
77 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
78 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
81 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
82 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
83 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
84 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
85 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
86 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
87 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
88 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
89 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
90 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
91 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
92 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
96 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
97 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
98 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
100 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
103 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
104 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
105 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
108 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
109 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
110 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
111 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
112 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
113 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
114 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
115 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
116 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
117 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
118 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
119 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
123 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
124 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
125 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
127 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
130 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
132 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
135 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
136 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
137 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
138 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
139 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
140 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
141 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
142 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
143 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
144 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
145 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
146 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
150 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
151 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
152 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
154 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
157 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
158 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
159 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
162 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
163 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
164 32 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
165 32 bit atomicSub ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
166 32 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
167 32 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
168 32 bit atomicInc ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
169 32 bit atomicDec ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
170 64 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
171 64 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
172 64 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
173 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
174 32 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
175 32 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
176 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
177 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
178 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
179 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
180 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
181 32 bit atoimcExch ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
182 32 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
183 32 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
184 32 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
185 32 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
186 64 bit atomicExch ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
187 64 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
188 64 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
189 64 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
190 64 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
191 32 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
192 32 bit atomicSub ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
193 32 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
194 32 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
195 32 bit atomicInc ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
196 32 bit atomicDec ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
197 64 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
198 64 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
199 64 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
200 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
201 32 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
202 32 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
203 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
204 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
205 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
206 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
207 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
208 32 bit atoimcExch ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
209 32 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ Native
210 32 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
211 32 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
212 32 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
213 64 bit atomicExch ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
214 64 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ Native
215 64 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
216 64 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
217 64 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
218 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
219 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
220 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
221 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
222 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
223 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
224 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
225 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
226 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
227 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
231 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
232 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
233 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
235 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
238 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
239 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
240 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
243 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
244 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
245 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
246 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
248 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
249 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
250 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
251 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
252 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
253 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
254 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
258 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
259 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
260 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
262 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
265 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
266 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
267 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
270 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
271 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
272 32 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
273 32 bit atomicSub ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
274 32 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
275 32 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
276 32 bit atomicInc ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
277 32 bit atomicDec ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
278 64 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
279 64 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
280 64 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
281 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
282 32 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
283 32 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
284 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
285 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
286 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
287 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
288 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
289 32 bit atoimcExch ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
290 32 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ CAS
291 32 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
292 32 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
293 32 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
294 64 bit atomicExch ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
295 64 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ CAS
296 64 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
297 64 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
298 64 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ✅ CAS ✅ CAS
299 32 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
300 32 bit atomicSub ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
301 32 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
302 32 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
303 32 bit atomicInc ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
304 32 bit atomicDec ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
305 64 bit atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
306 64 bit atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
307 64 bit atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
308 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
309 32 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
310 32 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
311 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
312 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
313 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
314 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
315 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
316 32 bit atoimcExch ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
317 32 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ Native
318 32 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
319 32 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
320 32 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
321 64 bit atomicExch ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
322 64 bit atomicCAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
323 64 bit atomicAnd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
324 64 bit atomicOr ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS
325 64 bit atomicXor ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade - CAS ✅ CAS

View File

@@ -0,0 +1,325 @@
Atomic,gfx9 dGPU,gfx9 APU,gfx10 dGPU,gfx11 dGPU,gfx11 APU,gfx12 dGPU
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
1 Atomic gfx9 dGPU gfx9 APU gfx10 dGPU gfx11 dGPU gfx11 APU gfx12 dGPU
2 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
3 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
4 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
5 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
6 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
7 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
8 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
9 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
10 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
19 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
22 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
23 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
24 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
27 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
28 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
29 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
30 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
31 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
32 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
33 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
34 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
35 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
36 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
37 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
38 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
42 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
43 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
46 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
49 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
50 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
51 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
54 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
55 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
56 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
57 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
58 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
59 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
60 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
61 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
62 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
63 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
64 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
65 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
69 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
70 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
71 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
76 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
77 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
78 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
81 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
82 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
83 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
84 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
85 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
86 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
87 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
88 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
89 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
90 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
91 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
92 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
96 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
97 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
98 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
100 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
103 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
104 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
105 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
108 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
109 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
110 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
111 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
112 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
113 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
114 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
115 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
116 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
117 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
118 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
119 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
123 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
124 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
125 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
127 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
130 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
132 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
135 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
136 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
137 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
138 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
139 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
140 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
141 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
142 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
143 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
144 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
145 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
146 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
150 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
151 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
152 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
154 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
157 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
158 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
159 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
162 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
163 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
164 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
165 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
166 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
167 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
168 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
169 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
170 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
171 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
172 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
173 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
174 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
175 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
176 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
177 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
178 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
179 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
180 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
181 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
182 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
183 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
184 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
185 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
186 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
187 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
188 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
189 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
190 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
191 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
192 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
193 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
194 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
195 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
196 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
197 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
198 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
199 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
200 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
201 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
202 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
203 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
204 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
205 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
206 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
207 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
208 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
209 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
210 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
211 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
212 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
213 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
214 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
215 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
216 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
217 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
218 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
219 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
220 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
221 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
222 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
223 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
224 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
225 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
226 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
227 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
231 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
232 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
233 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
235 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
238 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
239 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
240 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
243 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
244 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
245 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
246 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
248 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
249 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
250 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
251 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
252 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
253 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
254 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
258 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
259 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
260 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
262 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
265 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
266 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
267 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
270 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
271 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
272 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
273 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
274 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
275 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
276 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
277 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
278 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
279 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
280 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
281 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
282 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
283 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
284 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
285 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
286 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
287 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
288 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
289 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
290 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
291 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
292 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
293 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
294 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
295 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
296 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
297 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
298 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
299 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
300 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
301 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
302 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
303 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
304 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
305 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
306 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
307 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
308 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
309 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
310 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
311 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
312 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
313 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
314 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
315 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
316 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
317 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
318 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
319 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
320 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
321 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
322 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
323 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
324 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
325 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS

View File

@@ -0,0 +1,325 @@
Atomic,MI100,MI200 PCIe,MI200 A+A,MI300X,MI300A
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicSub,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicInc,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicDec,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atoimcExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicExch,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicOr,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit atomicXor,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
1 Atomic MI100 MI200 PCIe MI200 A+A MI300X MI300A
2 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
3 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
4 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
5 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
6 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
7 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
8 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
9 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
10 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
19 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
22 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
23 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
24 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
27 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
28 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
29 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
30 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
31 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
32 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
33 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
34 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
35 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
36 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
37 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
38 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
42 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
43 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
46 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
49 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
50 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
51 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
54 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
55 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
56 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
57 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
58 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
59 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
60 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
61 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
62 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
63 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
64 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
65 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
69 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
70 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
71 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
76 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
77 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
78 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
81 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
82 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
83 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
84 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
85 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
86 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
87 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
88 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
89 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
90 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
91 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
92 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
96 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
97 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
98 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
100 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
103 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
104 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
105 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
108 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
109 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
110 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
111 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
112 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
113 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
114 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
115 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
116 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
117 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
118 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
119 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
123 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
124 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
125 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
127 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
130 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
132 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
135 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
136 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
137 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
138 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
139 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
140 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
141 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
142 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
143 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
144 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
145 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
146 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
150 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
151 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
152 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
154 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
157 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
158 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
159 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
162 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
163 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
164 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
165 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
166 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
167 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
168 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
169 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
170 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
171 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
172 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
173 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
174 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
175 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
176 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
177 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
178 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
179 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
180 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
181 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
182 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
183 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
184 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
185 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
186 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
187 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
188 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
189 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
190 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
191 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
192 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
193 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
194 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
195 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
196 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
197 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
198 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
199 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
200 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
201 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
202 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
203 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
204 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
205 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
206 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
207 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
208 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
209 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
210 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
211 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
212 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
213 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
214 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
215 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
216 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
217 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
218 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
219 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
220 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
221 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
222 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
223 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
224 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
225 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
226 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
227 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
231 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
232 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
233 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
235 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
238 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
239 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
240 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
243 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
244 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
245 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
246 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
248 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
249 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
250 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
251 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
252 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
253 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
254 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
258 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
259 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
260 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
262 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
265 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
266 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
267 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
270 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
271 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
272 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
273 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
274 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
275 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
276 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
277 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
278 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
279 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
280 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
281 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
282 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
283 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
284 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
285 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
286 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
287 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
288 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
289 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
290 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
291 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
292 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
293 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
294 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
295 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
296 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
297 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
298 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
299 32 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
300 32 bit atomicSub ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
301 32 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
302 32 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
303 32 bit atomicInc ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
304 32 bit atomicDec ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
305 64 bit atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
306 64 bit atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
307 64 bit atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
308 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
309 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
310 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
311 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
312 64 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
313 64 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
314 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
315 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
316 32 bit atoimcExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
317 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
318 32 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
319 32 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
320 32 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
321 64 bit atomicExch ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
322 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
323 64 bit atomicAnd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
324 64 bit atomicOr ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
325 64 bit atomicXor ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS

View File

@@ -0,0 +1,349 @@
Atomic,gfx9 dGPU,gfx9 APU,gfx10 dGPU,gfx11 dGPU,gfx11 APU,gfx12 dGPU
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ Native
32 bit atoimcExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade
32 bit atoimcExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,n/a,n/a,n/a,n/a,n/a,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,✅ Native
32 bit atoimcExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAdd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
64 bit float atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMin,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
64 bit float atomicMax,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS
16bx2 half2 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade
16bx2 bfloat162 atomicAdd,❌ NOP,✅ CAS,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade
32 bit atoimcExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicExch,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicCAS,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
1 Atomic gfx9 dGPU gfx9 APU gfx10 dGPU gfx11 dGPU gfx11 APU gfx12 dGPU
2 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
3 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
4 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
5 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
6 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
7 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
8 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
9 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
10 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
19 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
22 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
23 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
24 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
27 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
28 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
29 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
30 128 bit atomicExch n/a n/a n/a n/a n/a n/a
31 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
32 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
33 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
34 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
35 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
36 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
37 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
38 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
39 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
40 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
41 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
42 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
43 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
45 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
46 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
47 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
48 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
49 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
50 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
51 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
52 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
54 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
55 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
56 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
57 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
58 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
59 128 bit atomicExch n/a n/a n/a n/a n/a n/a
60 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
61 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
62 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
63 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
64 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
65 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
66 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
67 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
68 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
69 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
70 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
71 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
72 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
74 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
75 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
76 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
77 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
78 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
79 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
81 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
82 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
83 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
84 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
85 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
86 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
87 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
88 128 bit atomicExch n/a n/a n/a n/a n/a n/a
89 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
90 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
91 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
92 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
93 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
94 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
95 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
96 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
97 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
98 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
99 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
100 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
101 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
102 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
103 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
104 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
105 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
106 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
108 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
109 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
110 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
111 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
112 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
113 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
114 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
115 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
116 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
117 128 bit atomicExch n/a n/a n/a n/a n/a n/a
118 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
119 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
120 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
121 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
122 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
123 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
124 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
125 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
126 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
127 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
128 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
130 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
132 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
133 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
134 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
135 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
136 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
137 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
138 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
139 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
140 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
141 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
142 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
143 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
144 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
145 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
146 128 bit atomicExch n/a n/a n/a n/a n/a n/a
147 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
148 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
149 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
150 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
151 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
152 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
153 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
154 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
155 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
157 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
158 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
159 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
161 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
162 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
163 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
164 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
165 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
166 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
167 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
168 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
169 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
170 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
171 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
172 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
173 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
174 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
175 128 bit atomicExch n/a n/a n/a n/a n/a n/a
176 32 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
177 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
178 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
179 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
180 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
181 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
182 64 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
183 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
184 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
185 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
186 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
187 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
188 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
189 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
190 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
191 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ Native
192 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ Native
193 32 bit atoimcExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
194 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
195 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
196 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
197 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
198 64 bit atomicExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
199 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
200 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
201 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
202 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
203 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
204 128 bit atomicExch n/a n/a n/a n/a n/a n/a
205 32 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
206 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
207 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
208 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
209 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
210 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
211 64 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
212 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
213 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
214 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
215 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
216 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
217 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
218 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
219 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
220 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade
221 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade
222 32 bit atoimcExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
223 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
224 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
225 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
226 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
227 64 bit atomicExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
228 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
229 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
230 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
231 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
232 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
233 128 bit atomicExch n/a n/a n/a n/a n/a n/a
234 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
235 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
236 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
238 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
239 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
240 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
241 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
243 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
244 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
245 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
246 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
248 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
249 16bx2 half2 atomicAdd n/a n/a n/a n/a n/a ✅ Native
250 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
251 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
252 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
253 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
254 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
255 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
256 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
257 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
258 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
259 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
260 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
261 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
262 128 bit atomicExch n/a n/a n/a n/a n/a n/a
263 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
265 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
266 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
267 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
268 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
270 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
271 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
272 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
273 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
274 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
275 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
276 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
277 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
278 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
279 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
280 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
281 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
282 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
283 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
284 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
285 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
286 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
287 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
288 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
289 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
290 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
291 128 bit atomicExch n/a n/a n/a n/a n/a n/a
292 32 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
293 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
294 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
295 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
296 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
297 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
298 64 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
299 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
300 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
301 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
302 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
303 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
304 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
305 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
306 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ CAS
307 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ Native
308 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ✅ Native
309 32 bit atoimcExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
310 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
311 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
312 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
313 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
314 64 bit atomicExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
315 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
316 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
317 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
318 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
319 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
320 128 bit atomicExch n/a n/a n/a n/a n/a n/a
321 32 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
322 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
323 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
324 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
325 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
326 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
327 64 bit atomicAdd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
328 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
329 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
330 32 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
331 32 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
332 32 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
333 64 bit float atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
334 64 bit float atomicMin ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
335 64 bit float atomicMax ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS
336 16bx2 half2 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade
337 16bx2 bfloat162 atomicAdd ❌ NOP ✅ CAS ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade
338 32 bit atoimcExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
339 32 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
340 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
341 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
342 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
343 64 bit atomicExch ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
344 64 bit atomicCAS ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
345 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
346 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
347 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
348 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
349 128 bit atomicExch n/a n/a n/a n/a n/a n/a

View File

@@ -0,0 +1,325 @@
Atomic,MI100,MI200 PCIe,MI200 A+A,MI300X,MI300A
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,❌ NOP,❌ NOP,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicExch,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
32 bit float atomicMin,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade,✅ Native
32 bit atoimcExch,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicExch,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,❌ NOP,❌ NOP,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicExch,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAdd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
32 bit float atomicMin,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS,✅ CAS
32 bit float atomicMax,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade - CAS,✅ CAS
64 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMin,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMax,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 bfloat162 atomicAdd,❌ NOP,❌ NOP,✅ CAS,⚠️ Scope Downgrade,✅ Native
32 bit atoimcExch,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicExch,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicCAS,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
1 Atomic MI100 MI200 PCIe MI200 A+A MI300X MI300A
2 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
3 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
4 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
5 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
6 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
7 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
8 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
9 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
10 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
11 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
15 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
16 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
17 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
19 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
22 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
23 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
24 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
27 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
28 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
29 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
30 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
31 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
32 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
33 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
34 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
35 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
36 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
37 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
38 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
42 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
43 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
44 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
46 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
49 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
50 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
51 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
54 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
55 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
56 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
57 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
58 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
59 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
60 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
61 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
62 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
63 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
64 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
65 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
69 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
70 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
71 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
73 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
76 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
77 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
78 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
81 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
82 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
83 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
84 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
85 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
86 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
87 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
88 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
89 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
90 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
91 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
92 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
96 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
97 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
98 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
100 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
103 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
104 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
105 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
108 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
109 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
110 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
111 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
112 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
113 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
114 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
115 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
116 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
117 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
118 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
119 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
123 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
124 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
125 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
127 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
130 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
131 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
132 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
135 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
136 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
137 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
138 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
139 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
140 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
141 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
142 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
143 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
144 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
145 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
146 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
150 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
151 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
152 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
154 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
157 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
158 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
159 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
162 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
163 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
164 32 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
165 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
166 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
167 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
168 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
169 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
170 64 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
171 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
172 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
173 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
174 32 bit float atomicMin ❌ NOP ❌ NOP ✅ CAS ✅ CAS ✅ CAS
175 32 bit float atomicMax ❌ NOP ❌ NOP ✅ CAS ✅ CAS ✅ CAS
176 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
177 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
178 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
179 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
180 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ✅ CAS ✅ Native ✅ Native
181 32 bit atoimcExch ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
182 32 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
183 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
184 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
185 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
186 64 bit atomicExch ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
187 64 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
188 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
189 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
190 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
191 32 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
192 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
193 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
194 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
195 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
196 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
197 64 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
198 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
199 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
200 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
201 32 bit float atomicMin ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS ✅ CAS
202 32 bit float atomicMax ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS ✅ CAS
203 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
204 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
205 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
206 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
207 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade ✅ Native
208 32 bit atoimcExch ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
209 32 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
210 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
211 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
212 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
213 64 bit atomicExch ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
214 64 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
215 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
216 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
217 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
218 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
219 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
220 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
221 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
222 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
223 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
224 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
225 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
226 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
227 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
231 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
232 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
233 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
235 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
238 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
239 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
240 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
243 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
244 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
245 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
246 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
247 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
248 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
249 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
250 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
251 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
252 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
253 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
254 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
258 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
259 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
260 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
262 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
265 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
266 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
267 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
270 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
271 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
272 32 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
273 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
274 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
275 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
276 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
277 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
278 64 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
279 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
280 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
281 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
282 32 bit float atomicMin ❌ NOP ❌ NOP ✅ CAS ✅ CAS ✅ CAS
283 32 bit float atomicMax ❌ NOP ❌ NOP ✅ CAS ✅ CAS ✅ CAS
284 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
285 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
286 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
287 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
288 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ✅ CAS ✅ Native ✅ Native
289 32 bit atoimcExch ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
290 32 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
291 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
292 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
293 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
294 64 bit atomicExch ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
295 64 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
296 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
297 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
298 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
299 32 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
300 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
301 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
302 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
303 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
304 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
305 64 bit atomicAdd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
306 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
307 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
308 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
309 32 bit float atomicMin ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS ✅ CAS
310 32 bit float atomicMax ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade - CAS ✅ CAS
311 64 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
312 64 bit float atomicMin ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
313 64 bit float atomicMax ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
314 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
315 16bx2 bfloat162 atomicAdd ❌ NOP ❌ NOP ✅ CAS ⚠️ Scope Downgrade ✅ Native
316 32 bit atoimcExch ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
317 32 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
318 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
319 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
320 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
321 64 bit atomicExch ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
322 64 bit atomicCAS ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
323 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
324 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
325 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native

View File

@@ -0,0 +1,349 @@
Atomic,gfx9 dGPU,gfx9 APU,gfx10 dGPU,gfx11 dGPU,gfx11 APU,gfx12 dGPU
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,✅ Native,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,✅ Native
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,✅ Native
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicInc,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicDec,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicMax,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
32 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade
64 bit float atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMin,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicMax,✅ CAS,✅ CAS,❌ NOP,✅ CAS,✅ CAS,✅ CAS
16bx2 half2 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
32 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicOr,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
64 bit atomicXor,❌ NOP,✅ Native,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade
128 bit atomicCAS,n/a,n/a,n/a,n/a,n/a,n/a
128 bit atomicExch,n/a,n/a,n/a,n/a,n/a,n/a
1 Atomic gfx9 dGPU gfx9 APU gfx10 dGPU gfx11 dGPU gfx11 APU gfx12 dGPU
2 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
3 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
4 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
5 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
6 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
7 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
8 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
9 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
10 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
11 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
14 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
15 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
16 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
17 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
19 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
22 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
23 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
24 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
27 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
28 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
29 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
30 128 bit atomicExch n/a n/a n/a n/a n/a n/a
31 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
32 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
33 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
34 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
35 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
36 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
37 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
38 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
39 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
40 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
41 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
42 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
43 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
44 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
45 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
46 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
47 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
48 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
49 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
50 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
51 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
52 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
54 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
55 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
56 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
57 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
58 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
59 128 bit atomicExch n/a n/a n/a n/a n/a n/a
60 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
61 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
62 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
63 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
64 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
65 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
66 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
67 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
68 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
69 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
70 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
71 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
72 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
73 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
74 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
75 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
76 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
77 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
78 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
79 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
81 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
82 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
83 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
84 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
85 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
86 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
87 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
88 128 bit atomicExch n/a n/a n/a n/a n/a n/a
89 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
90 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
91 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
92 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
93 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
94 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
95 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
96 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
97 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
98 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
99 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
100 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
101 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
102 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
103 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
104 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
105 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
106 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
108 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
109 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
110 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
111 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
112 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
113 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
114 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
115 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
116 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
117 128 bit atomicExch n/a n/a n/a n/a n/a n/a
118 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
119 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
120 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
121 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
122 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
123 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
124 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
125 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
126 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
127 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
128 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
130 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
131 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
132 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
133 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
134 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
135 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
136 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
137 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
138 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
139 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
140 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
141 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
142 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
143 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
144 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
145 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
146 128 bit atomicExch n/a n/a n/a n/a n/a n/a
147 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
148 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
149 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
150 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
151 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
152 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
153 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
154 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
155 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
157 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
158 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
159 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
160 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
161 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
162 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
163 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
164 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
165 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
166 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
167 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
168 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
169 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
170 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
171 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
172 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
173 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
174 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
175 128 bit atomicExch n/a n/a n/a n/a n/a n/a
176 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
177 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
178 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
179 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
180 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
181 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
182 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
183 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
184 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
185 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
186 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
187 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
188 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
189 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
190 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
191 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
192 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
193 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
194 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
195 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
196 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
197 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
198 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
199 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
200 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
201 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
202 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
203 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
204 128 bit atomicExch n/a n/a n/a n/a n/a n/a
205 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
206 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
207 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
208 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
209 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
210 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
211 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
212 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
213 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
214 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade
215 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
216 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
217 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
218 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
219 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
220 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade
221 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade
222 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
223 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
224 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
225 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
226 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
227 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
228 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
229 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
230 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
231 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
232 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
233 128 bit atomicExch n/a n/a n/a n/a n/a n/a
234 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
235 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
236 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
238 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
239 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
240 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
241 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
243 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
244 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
245 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
246 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
247 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
248 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
249 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
250 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
251 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
252 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
253 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
254 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
255 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
256 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
257 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
258 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
259 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
260 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
261 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
262 128 bit atomicExch n/a n/a n/a n/a n/a n/a
263 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
265 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
266 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
267 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
268 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
270 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
271 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
272 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native
273 32 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
274 32 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
275 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
276 64 bit float atomicMin ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
277 64 bit float atomicMax ✅ CAS ✅ CAS ✅ Native ✅ CAS ✅ CAS ✅ CAS
278 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
279 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
280 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
281 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
282 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
283 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
284 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
285 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
286 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
287 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
288 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
289 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
290 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
291 128 bit atomicExch n/a n/a n/a n/a n/a n/a
292 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
293 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
294 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
295 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
296 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
297 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
298 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
299 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
300 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
301 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ✅ Native
302 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
303 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ✅ Native
304 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
305 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
306 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
307 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
308 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ Native
309 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
310 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
311 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
312 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
313 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
314 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
315 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
316 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
317 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
318 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ✅ Native
319 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
320 128 bit atomicExch n/a n/a n/a n/a n/a n/a
321 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
322 32 bit atomicSub ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
323 32 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
324 32 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
325 32 bit atomicInc ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
326 32 bit atomicDec ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
327 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
328 64 bit atomicMin ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
329 64 bit atomicMax ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
330 32 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade
331 32 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
332 32 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade
333 64 bit float atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
334 64 bit float atomicMin ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
335 64 bit float atomicMax ✅ CAS ✅ CAS ❌ NOP ✅ CAS ✅ CAS ✅ CAS
336 16bx2 half2 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade
337 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade
338 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
339 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
340 32 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
341 32 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
342 32 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
343 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
344 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
345 64 bit atomicAnd ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
346 64 bit atomicOr ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
347 64 bit atomicXor ❌ NOP ✅ Native ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade
348 128 bit atomicCAS n/a n/a n/a n/a n/a n/a
349 128 bit atomicExch n/a n/a n/a n/a n/a n/a

View File

@@ -0,0 +1,325 @@
Atomic,MI100,MI200 PCIe,MI200 A+A,MI300X,MI300A
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicInc,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicDec,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMax,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 half2 atomicAdd,✅ NoReturn,✅ Native,✅ Native,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicOr,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicXor,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,✅ Native,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,✅ Native,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,✅ Native,✅ Native
32 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicSub,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicInc,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicDec,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicAdd,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicMin,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicMax,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit float atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
32 bit float atomicMin,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
32 bit float atomicMax,✅ CAS,✅ CAS,✅ CAS,✅ CAS,✅ CAS
64 bit float atomicAdd,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMin,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
64 bit float atomicMax,✅ CAS,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 half2 atomicAdd,❌ NOP,❌ NOP,❌ NOP,⚠️ Scope Downgrade,✅ Native
16bx2 bfloat162 atomicAdd,✅ CAS,✅ CAS,✅ CAS,⚠️ Scope Downgrade,✅ Native
32 bit atoimcExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
32 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
32 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicExch,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicCAS,✅ Native,✅ Native,✅ Native,✅ Native,✅ Native
64 bit atomicAnd,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicOr,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
64 bit atomicXor,❌ NOP,❌ NOP,✅ Native,⚠️ Scope Downgrade,✅ Native
1 Atomic MI100 MI200 PCIe MI200 A+A MI300X MI300A
2 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
3 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
4 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
5 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
6 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
7 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
8 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
9 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
10 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
11 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
12 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
13 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
14 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
15 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
16 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
17 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
18 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
19 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
20 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
21 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
22 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
23 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
24 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
25 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
26 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
27 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
28 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
29 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
30 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
31 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
32 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
33 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
34 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
35 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
36 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
37 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
38 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
39 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
40 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
41 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
42 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
43 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
44 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
45 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
46 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
47 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
48 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
49 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
50 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
51 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
52 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
53 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
54 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
55 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
56 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
57 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
58 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
59 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
60 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
61 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
62 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
63 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
64 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
65 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
66 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
67 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
68 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
69 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
70 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
71 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
72 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
73 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
74 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
75 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
76 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
77 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
78 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
79 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
80 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
81 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
82 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
83 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
84 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
85 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
86 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
87 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
88 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
89 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
90 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
91 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
92 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
93 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
94 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
95 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
96 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
97 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
98 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
99 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
100 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
101 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
102 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
103 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
104 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
105 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
106 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
107 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
108 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
109 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
110 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
111 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
112 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
113 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
114 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
115 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
116 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
117 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
118 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
119 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
120 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
121 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
122 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
123 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
124 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
125 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
126 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
127 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
128 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
129 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
130 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
131 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
132 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
133 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
134 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
135 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
136 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
137 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
138 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
139 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
140 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
141 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
142 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
143 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
144 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
145 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
146 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
147 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
148 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
149 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
150 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
151 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
152 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
153 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
154 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
155 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
156 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
157 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
158 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
159 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
160 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
161 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
162 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
163 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
164 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
165 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
166 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
167 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
168 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
169 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
170 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
171 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
172 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
173 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
174 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
175 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
176 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
177 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
178 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
179 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
180 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
181 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
182 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
183 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
184 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
185 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
186 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
187 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
188 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
189 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
190 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
191 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
192 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
193 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
194 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
195 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
196 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
197 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
198 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
199 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
200 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
201 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
202 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
203 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
204 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
205 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
206 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
207 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade ✅ Native
208 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
209 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
210 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
211 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
212 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
213 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
214 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
215 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
216 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
217 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
218 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
219 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
220 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
221 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
222 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
223 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
224 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
225 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
226 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
227 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
228 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
229 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
230 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
231 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
232 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
233 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
234 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
235 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
236 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
237 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
238 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
239 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
240 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
241 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
242 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
243 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
244 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
245 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
246 32 bit atomicSub ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
247 32 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
248 32 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
249 32 bit atomicInc ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
250 32 bit atomicDec ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
251 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
252 64 bit atomicMin ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
253 64 bit atomicMax ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
254 32 bit float atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
255 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
256 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
257 64 bit float atomicAdd ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
258 64 bit float atomicMin ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
259 64 bit float atomicMax ✅ CAS ✅ Native ✅ Native ✅ Native ✅ Native
260 16bx2 half2 atomicAdd ✅ NoReturn ✅ Native ✅ Native ✅ Native ✅ Native
261 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
262 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
263 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
264 32 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
265 32 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
266 32 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
267 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
268 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
269 64 bit atomicAnd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
270 64 bit atomicOr ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
271 64 bit atomicXor ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
272 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
273 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
274 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
275 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
276 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
277 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
278 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
279 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
280 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
281 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
282 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
283 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
284 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
285 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
286 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ✅ Native ✅ Native
287 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ✅ Native ✅ Native
288 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ✅ Native ✅ Native
289 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
290 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
291 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
292 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
293 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
294 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
295 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
296 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
297 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
298 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ✅ Native ✅ Native
299 32 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
300 32 bit atomicSub ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
301 32 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
302 32 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
303 32 bit atomicInc ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
304 32 bit atomicDec ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
305 64 bit atomicAdd ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
306 64 bit atomicMin ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
307 64 bit atomicMax ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
308 32 bit float atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
309 32 bit float atomicMin ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
310 32 bit float atomicMax ✅ CAS ✅ CAS ✅ CAS ✅ CAS ✅ CAS
311 64 bit float atomicAdd ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
312 64 bit float atomicMin ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
313 64 bit float atomicMax ✅ CAS ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
314 16bx2 half2 atomicAdd ❌ NOP ❌ NOP ❌ NOP ⚠️ Scope Downgrade ✅ Native
315 16bx2 bfloat162 atomicAdd ✅ CAS ✅ CAS ✅ CAS ⚠️ Scope Downgrade ✅ Native
316 32 bit atoimcExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
317 32 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
318 32 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
319 32 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
320 32 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
321 64 bit atomicExch ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
322 64 bit atomicCAS ✅ Native ✅ Native ✅ Native ✅ Native ✅ Native
323 64 bit atomicAnd ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
324 64 bit atomicOr ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native
325 64 bit atomicXor ❌ NOP ❌ NOP ✅ Native ⚠️ Scope Downgrade ✅ Native

View File

@@ -0,0 +1,138 @@
import os
import csv
import re
from docutils.parsers.rst import Directive
class CsvToListTable(Directive):
required_arguments = 0
optional_arguments = 1
final_argument_whitespace = True
option_spec = {
'file': str,
'include-header': lambda x: x.lower() == 'true', # Boolean option
'rows': str, # Comma-separated list of row ranges and indices
'widths': lambda x: [int(i) for i in x.split(',')],
'columns': lambda x: [int(i) for i in x.split(',')] # Columns to include (by index)
}
def run(self):
env = self.state.document.settings.env
src_dir = os.path.abspath(env.srcdir)
# Get options
file_path = self.options.get('file')
if not file_path:
raise self.error("The :file: option is required.")
full_file_path = os.path.join(src_dir, file_path)
# Check if the file exists
if not os.path.exists(full_file_path):
raise self.error(f"CSV file {full_file_path} does not exist.")
include_header = self.options.get('include-header', True)
rows_option = self.options.get('rows', '')
widths = self.options.get('widths', [])
columns = self.options.get('columns', [])
# Parse the `:rows:` option
selected_rows = self.parse_rows_option(rows_option)
# Read CSV and process rows
with open(full_file_path, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
data = list(reader)
if not data:
raise self.error(f"CSV file {full_file_path} is empty or could not be read.")
# Include the header if specified
if include_header:
headers = data[0]
table_data = [data[i] for i in selected_rows if 0 <= i < len(data)]
else:
headers = []
table_data = [data[i] for i in selected_rows if 0 <= i < len(data)]
# If columns are specified, filter the columns
if columns:
headers = [headers[i] for i in columns] if headers else []
table_data = [[row[i] for i in columns] for row in table_data]
# Generate the list-table RST content
list_table_rst = self.generate_list_table(headers, table_data, widths)
# Parse the generated RST content and return the nodes
self.state_machine.insert_input(list_table_rst.splitlines(), full_file_path)
return []
def parse_rows_option(self, rows_option):
"""
Parse the `:rows:` option and return a list of selected row indices.
"""
if not rows_option:
return []
row_indices = set()
ranges = rows_option.split(',')
for r in ranges:
if '-' in r:
start, end = map(int, r.split('-'))
row_indices.update(range(start - 1, end)) # Convert to 0-based indexing
else:
row_indices.add(int(r) - 1) # Convert to 0-based indexing
return sorted(row_indices)
def generate_list_table(self, headers, table_data, widths):
"""Generate RST list-table content from CSV data."""
rows = []
rows.extend([headers] if headers else [])
rows.extend(table_data)
# Start the list-table directive
list_table_lines = [".. list-table::"]
# Add widths if specified
if widths:
widths_str = ", ".join(str(w) for w in widths)
list_table_lines.append(f" :widths: {widths_str}")
# Add header rows if there's a header
if headers:
list_table_lines.append(f" :header-rows: 1")
list_table_lines.append("") # Blank line after options
# Add the rows
for row in rows:
row_line = " * - | " + self.format_cell(row[0]) # First cell
for cell in row[1:]:
row_line += f"\n - | {self.format_cell(cell)}"
list_table_lines.append(row_line)
return "\n".join(list_table_lines)
def format_cell(self, cell):
"""
Format a cell's content for multi-line text handling, including automatic line break detection.
"""
# Replace common line-break markers with actual line breaks
for marker in ["|br|", "\\n", "|"]:
cell = cell.replace(marker, "\n")
# Split the cell content into lines
lines = cell.splitlines()
if len(lines) > 1:
# For multi-line content, indent subsequent lines
return f"\n | ".join(lines)
return cell
def setup(app):
app.add_directive('csv-to-list-table', CsvToListTable)
return {
'parallel_read_safe': True,
'parallel_write_safe': True,
}

View File

@@ -0,0 +1,791 @@
.. meta::
:description: AMD Instinct accelerator, AMD Radeon PRO, and AMD Radeon GPU
atomics operations information
:keywords: Atomics operations, atomic bitwise functions, atomics add, atomics
subtraction, atomics exchange, atomics min, atomics max
.. _hw_atomics_operation_support:
Hardware atomics operation support
================================================================================
:ref:`Atomic operations <atomic functions>` guarantee that the operation is
completed as an indivisible unit, preventing race conditions where simultaneous
access to the same memory location could lead to incorrect or undefined
behavior.
This document details the various support of atomic read-modify-write
(atomicRMW) operations on gfx9, gfx10, gfx11, gfx12, MI100, MI200 and MI300 AMD
GPUs. The atomics operation type behavior effected by the memory locations,
memory granularity or scope of operations.
Memory locations:
- :ref:`Device memory <hip:device_memory>`, i.e. VRAM, the RAM on a discrete GPU
device or in framebuffer carveout for APUs. This includes peer-device memory
within an Infinity Fabric™ hive.
- :ref:`Host memory <hip:host_memory>`: in DRAM associated with the CPU (or
peer device memory using PCIe® (PCI Express) peer-to-peer). This can be two sub-types:
- Migratable memory: memory that is currently residing in host DRAM, but
which can be migrated back to device memory. For example,
``hipMallocManaged()`` or :ref:`unified memory <hip:unified_memory>`
allocations.
- :ref:`Pinned memory <hip:pinned_host_memory>`: memory that is in host memory
and cannot be migrated to the device (not necessarily pinned to a particular
physical address, but can't be moved to device memory). ``hipHostMalloc()``,
for example.
Memory granularity or :ref:`coherence <hip:coherence_control>`:
- Coarse-grained memory
- This memory can be used for device-scope synchronization during the
execution of a single GPU kernel. Any system-scope atomics sent to this type
of memory will not achieve system-scope coherency and will instead be
downgraded to device-scope as per the programming model.
- This type of memory only available on AMD GPUs.
- Fine-grained memory
- This memory can be used for device and system-scope synchronization during
the execution of a single GPU kernel.
Scopes of operations:
- Device-scope or agent-scope
- This atomic should happen atomically from the point of view of every thread
within the device that the atomic-executing thread is in.
- System-scope
- This atomic should happen atomically from the point of view of every thread
in all devices and in the CPUs.
Support summary
================================================================================
AMD Instinct™ accelerators
--------------------------------------------------------------------------------
**MI300**
- All atomicRMW operations are forwarded out to the Infinity Fabric.
- Infinity Fabric supports common integer and bitwise atomics, FP32 atomic add,
packed-FP16 atomic add, packed-BF16 atomic add, and FP64 add, min, and max.
- In discrete GPUs (dGPUs), if the data is stored in host memory, the atomic
will be forwarded from the Infinity Fabric to PCIe.
- If the PCIe bus does not support the requested atomic, the GPU's PCIe
controller changes it into a load-op-store sequence. All waves on the chip
submitting atomics to that address will stall waiting for the load-op-store.
It will seem like atomics to the wave, but the CPU sees it as a non-atomic
load-op-store sequence. This downgrades system-scope atomics to device-scope.
**MI200**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- L2 cache supports FP32 atomic add, packed-FP16 atomic add, and FP64 add,
min, and max.
- The Infinity Fabric does not support FP32 atomic add, packed-FP16 atomic add,
and FP64 add, min, and max atomics and these commands cannot be sent to the
Infinity Fabric.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained memory is marked write-uncacheable through the page tables.
- Atomics that hit write-uncached memory are forwarded to the Infinity Fabric.
- If the uncached data is stored in host memory on a PCIe system, the atomic
will be forwarded from Infinity Fabric to PCIe. Any atomic not supported by
the PCIe bus will be a NOP and give incorrect result.
- If the uncached data is stored in host memory on an A+A system (system with
AMD CPU and AMD GPU connected via Infinity Fabric), the atomic operation will
be forwarded to the remote location and will succeed if supported by Infinity
Fabric.
- If the float atomics access write-uncached memory, they cannot be forwarded to
the Infinity Fabric, resulting in a NOP and an incorrect outcome.
**MI100**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- L2 cache supports no returns (NoReturn) versions of packed-FP16 and FP32
atomic adds, that cannot return data.
- The Infinity Fabric does not support packed-FP16 or FP32 atomic adds,
preventing these commands from being transmitted through it.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained memory is marked uncacheable through the page tables.
- Atomics that hit uncached memory are forwarded to the Infinity Fabric.
- If the uncached data is stored in host memory, the atomic will be forwarded
from Infinity Fabric to PCIe. Any atomic not supported by the PCIe bus will
be a NOP and give incorrect result.
- If an float atomic add hits uncached memory, it cannot be forwarded to the
Infinity Fabric so it will NOP and give incorrect result.
AMD gfx generic targets
--------------------------------------------------------------------------------
**gfx9**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained memory is marked uncacheable through the page tables.
- Atomics that hit uncached memory are forwarded to the Infinity Fabric.
- In a dGPU: if the uncached data is stored in host memory, the atomic will be
forwarded from Infinity Fabric to PCIe. Any atomic not supported by the PCIe
bus will be a NOP and.
**gfx10**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained memory is marked uncacheable through the page tables.
- Atomics that hit uncached memory are forwarded to the Infinity Fabric.
- In a dGPU: if the uncached data is stored in host memory, the atomic will be
forwarded from Infinity Fabric to PCIe. Any atomic not supported by the PCIe
bus will be a NOP and give incorrect result.
- Supports floating-point atomic min/max.
- The Infinity Fabric does not support floating-point atomic min/max atomics
and these commands cannot be sent to the Infinity Fabric.
- If the floating-point atomics hit uncached memory, they cannot be forwarded to
the Infinity Fabric, so they will NOP and give incorrect result.
**gfx11**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- L2 cache supports FP32 atomic add, min and max.
- The Infinity Fabric does not support FP32 atomic add, min and max atomics and
these commands cannot be sent to the Infinity Fabric.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained memory is marked uncacheable through the page tables.
- Atomics that hit write-uncached memory are forwarded to the Infinity Fabric.
- In a dGPU: if the uncached data is stored in host memory, the atomic will be
forwarded from Infinity Fabric to PCIe. Any atomic not supported by the PCIe
bus will be a NOP and give incorrect result.
- If the float atomics hit uncached memory, they cannot be forwarded to the
Infinity Fabric, so they will NOP and give incorrect result.
**gfx12**
- L2 cache and Infinity Fabric both support common integer and bitwise atomics.
- L2 cache and Infinity Fabric both also support FP32 atomic add, min and max,
and packed-FP16 atomic add, and packed-BF16 atomic add.
- Coarse-grained memory is marked as cacheable, and atomic operations will be
processed in the L2 cache.
- Fine-grained device memory is marked uncacheable through the page tables.
- Atomics that hit write-uncached memory are forwarded to the Infinity Fabric.
- Fine-grained system memory is marked as cacheable through the page tables.
- Device-scope atomic operations will process in the L2 cache.
- System-scope atomic operations will bypass the L2 cache and be forwarded to
the Infinity Fabric.
- Atomics that hit write-uncached memory are forwarded to the Infinity Fabric.
- In dGPUs, if the data is stored in host memory, the atomic will be forwarded
from the Infinity Fabric to PCIe.
- If the PCIe bus does not support the requested atomic, the GPU's PCIe
controller changes it into a load-op-store sequence. All waves on the chip
submitting atomics to that address will stall waiting for the load-op-store.
It will seem like atomics to the wave, but the CPU sees it as a non-atomic
load-op-store sequence. This downgrades system-scope atomics to device-scope.
GPUs atomics support
================================================================================
This section presents a series of tables that show the level of atomic
operations support for the different hardware devices described above, and
different datatypes, different operations and different scopes.
Hardware atomics support refers to the ability of GPUs to natively perform
atomic operations—special low-level operations that ensure data consistency when
multiple threads access and modify memory concurrently.
CAS (Compare-and-Swap) atomic support refers to the hardware or software
capability to perform an atomic Compare-and-Swap operation.
PCIe atomics are a feature of the PCIe interface that enable
atomic operations between devices and hosts across the PCIe bus. For further
information, please check :doc:`../conceptual/pcie-atomics`.
The tables that follow show the correctness of atomics operations on the
hardware using the following notations:
- ✅: Produces the correct answer.
- ⚠️: Produces the correct answer, but works only at a weaker scope.
- ❌: The atomics operation fails.
The tables show the different types of atomic operations used by specific
devices:
- Native: Computes the correct result using a hardware-native atomic
instruction.
- CAS: Generates the correct result, but the atomic operation is implemented by
the compiler for this ISA using a compare-and-swap emulation loop.
- ✅ NoReturn: Produces the correct correct result but does not precisely
conform to the atomic API.
- Scope Downgrade: Generates the correct result but operates at a weaker scope
than requested. For example, if a user specifies a system-scope atomic, the
operation may only function at the device scope.
- NOP: The atomic operation is not executed on the target location, and the
requesting thread receives back 0 as a return value.
- n/a: The atomic type is not supported and cannot be executed on the specific
hardware.
The tables selectors or options are the following:
- Highest level option:
- "HW atomics", where software attempts to use hardware atomics.
- "CAS emulation", where software attempts to use CAS emulation.
- Second-level option:
- "No PCIe atomics" means the system does not support PCIe atomics between
the accelerator and peer/host-memory.
- "PCIe atomics" means the system supports PCIe atomics between the
accelerator and peer/host-memory.
- The third-level option is the memory granularity of the memory target.
- The final option is the scope of atomic access.
Integer atomics operations
--------------------------------------------------------------------------------
The integer type atomic operations that are supported by different hardware.
- 32 bit integer
- Add
- Subtract
- Min
- Max
- IncDec
- 64 bit integer
- Add
- Min
- Max
AMD Instinct accelerators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The integer type atomic operations that are supported by different AMD
Instinct accelerators listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=2, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_instinct.csv" %}
{# If we have a new CSV file, reset the offset #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 2 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Compute the row numbers for this leaf #}
{% set start = ns.offset %}
{% set end = ns.offset + 8 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset: block (9 rows) plus gap (18 rows) #}
{% set ns.offset = ns.offset + 9 + 18 %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->
AMD gfx generic targets
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The integer type atomic operations that are supported by different gfx generic
targets listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=2, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_gfx.csv" %}
{# If we switch CSV files, reset the offset to 2 (to skip the header row) #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 2 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Determine the increment based on atomics_type_key #}
{% if atomics_type_key == "hw-atomics" %}
{% set increment = 20 %}
{% elif atomics_type_key == "cas-atomics" %}
{% set increment = 18 %}
{% endif %}
{# Compute start and end rows (end is inclusive) #}
{% set start = ns.offset %}
{% set end = ns.offset + 8 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset for the next table in this CSV #}
{% set ns.offset = ns.offset + 9 + increment %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->
Bitwise atomics operations
--------------------------------------------------------------------------------
The bitwise atomic operations that are supported by different hardware.
- 32 bit bitwise
- Exchange
- Compare-and-Swap (CAS)
- AND
- OR
- XOR
- 64 bit bitwise
- Exchange
- CAS
- AND
- OR
- XOR
.. note::
128-bit bitwise Exchange and CAS are not supported on AMD GPUs
AMD Instinct accelerators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The bitwise atomic operations that are supported by different AMD Instinct
accelerators listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=19, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_instinct.csv" %}
{# If we have a new CSV file, reset the offset #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 19 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Compute the row numbers for this leaf #}
{% set start = ns.offset %}
{% set end = ns.offset + 9 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset: block (10 rows) plus gap (17 rows) #}
{% set ns.offset = ns.offset + 10 + 17 %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->
AMD gfx generic targets
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The bitwise atomic operations that are supported by different AMD gfx generic
targets listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=19, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_gfx.csv" %}
{# If we switch CSV files, reset the offset to 2 (to skip the header row) #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 19 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Determine the increment based on atomics_type_key #}
{% if atomics_type_key == "hw-atomics" %}
{% set increment = 19 %}
{% elif atomics_type_key == "cas-atomics" %}
{% set increment = 17 %}
{% endif %}
{# Compute start and end rows (end is inclusive) #}
{% set start = ns.offset %}
{% set end = ns.offset + 9 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset for the next table in this CSV #}
{% set ns.offset = ns.offset + 10 + increment %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->
Float atomics operations
--------------------------------------------------------------------------------
The float types atomic operations that are supported by different hardware.
- 32-bit IEEE 754 floating point ('single precision', FP32)
- Add
- Min
- Max
- 64-bit IEEE 754 floating point ('double precision', FP64)
- Add
- Min
- Max
- 16-bit IEEE 754 floating point ('half precision", FP16)
- Add
- 2xPacked 16-bit IEEE 754 floating point ('half precision', FP16)
- Add
- BrainFloat-16 floating point (BF16)
- Add
- 2xPacked BrainFloat-16 floating point (BF16)
- Add
AMD Instinct accelerators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The float type atomic operations that are supported by different AMD Instinct
accelerators listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=11, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_instinct.csv" %}
{# If we have a new CSV file, reset the offset #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 11 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Compute the row numbers for this leaf #}
{% set start = ns.offset %}
{% set end = ns.offset + 7 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset: block (8 rows) plus gap (19 rows) #}
{% set ns.offset = ns.offset + 8 + 19 %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->
AMD gfx generic targets
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The float types atomic operations that are supported by different AMD gfx
generic targets listed in the following table.
.. <!-- spellcheck-disable -->
.. The relative path not working in datatemplate, that's why we also need the absolute path of docs folder.
.. datatemplate:nodata::
{% set ns = namespace(offset=11, previous_csv='') %}
.. tab-set::
{% for (atomics_type_text, atomics_type_key) in config.html_context['atomics_type'] %}
.. tab-item:: {{ atomics_type_text }}
:sync: {{ atomics_type_key }}
.. tab-set::
{% for (pcie_type_text, pcie_type_key) in config.html_context['pcie_type'] %}
.. tab-item:: {{ pcie_type_text }}
:sync: {{ pcie_type_key }}
.. tab-set::
{% for (memory_type_text, memory_type_key) in config.html_context['memory_type'] %}
.. tab-item:: {{ memory_type_text }}
:sync: {{ memory_type_key }}
.. tab-set::
{% for (granularity_type_text, granularity_type_key) in config.html_context['granularity_type'] %}
.. tab-item:: {{ granularity_type_text }}
:sync: {{ granularity_type_key }}
.. tab-set::
{% for (scope_type_text, scope_type_key) in config.html_context['scope_type'] %}
.. tab-item:: {{ scope_type_text }}
:sync: {{ scope_type_key }}
{# Build the CSV file path for this branch #}
{% set current_csv = "data/reference/gpu-atomics-operation/"
~ atomics_type_key ~ "_" ~ pcie_type_key ~ "_gfx.csv" %}
{# If we switch CSV files, reset the offset to 2 (to skip the header row) #}
{% if current_csv != ns.previous_csv %}
{% set ns.offset = 11 %}
{% endif %}
{% set ns.previous_csv = current_csv %}
{# Determine the increment based on atomics_type_key #}
{% if atomics_type_key == "hw-atomics" %}
{% set increment = 21 %}
{% elif atomics_type_key == "cas-atomics" %}
{% set increment = 19 %}
{% endif %}
{# Compute start and end rows (end is inclusive) #}
{% set start = ns.offset %}
{% set end = ns.offset + 7 %}
.. csv-to-list-table::
:file: {{ current_csv }}
:rows: {{ start }}-{{ end }}
{# Update the offset for the next table in this CSV #}
{% set ns.offset = ns.offset + 8 + increment %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
.. <!-- spellcheck-enable -->

View File

@@ -335,7 +335,12 @@ The following table lists data type support for AMD GPU matrix cores.
Atomic operations support
-------------------------
The following table lists data type support for atomic operations.
The following table lists which data types are supported for atomic
operations on AMD GPUs. The atomics operation type behavior is affected by the
memory locations, memory granularity, or scope of operations. For detailed
various support of atomic read-modify-write (atomicRMW) operations collected on
the :ref:`Hardware atomics operation support <hw_atomics_operation_support>`
page.
.. tab-set::
@@ -356,7 +361,7 @@ The following table lists data type support for atomic operations.
-
-
-
-
-
*
- MI200 series
-
@@ -380,8 +385,8 @@ The following table lists data type support for atomic operations.
- Type name
- float8 (E4M3)
- float8 (E5M2)
- float16
- bfloat16
- 2 x float16
- 2 x bfloat16
- tensorfloat32
- float32
- float64
@@ -390,7 +395,7 @@ The following table lists data type support for atomic operations.
-
-
-
-
-
-
-
-
@@ -399,7 +404,7 @@ The following table lists data type support for atomic operations.
-
-
-
-
-
-
-
-
@@ -408,7 +413,7 @@ The following table lists data type support for atomic operations.
-
-
-
-
-
-
-
-

View File

@@ -181,16 +181,16 @@ subtrees:
- caption: Reference
entries:
- file: reference/api-libraries.md
title: ROCm libraries
- file: reference/rocm-tools.md
title: ROCm tools, compilers, and runtimes
- file: reference/gpu-arch-specs.rst
title: Hardware specifications
- file: reference/precision-support.rst
title: Precision support
- file: reference/graph-safe-support.rst
title: Graph safe support
- file: reference/api-libraries.md
title: ROCm libraries
- file: reference/rocm-tools.md
title: ROCm tools, compilers, and runtimes
- file: reference/gpu-arch-specs.rst
- file: reference/gpu-atomics-operation.rst
- file: reference/precision-support.rst
title: Precision support
- file: reference/graph-safe-support.rst
title: Graph safe support
- caption: Contribute
entries: