UAV Typed Atomic Ops
Description
The metric UAV Typed Atomic Ops represents the number of atomic operations performed on typed UAV (Unordered Access View) resources (that is any buffer created with the D3D11_BIND_UNORDERED_ACCESS BindFlag) from within Compute and Pixel Shaders.
Examples
A code example that will result in a UAV Typed Atomic Ops:
RWBuffer<uint> myUAVBuffer : register( u0 );
[numthreads(NUM_THREADS_PER_GROUP, 1, 1)]
void MyComputeShader(…)
{
…
//UAV Typed Atomic Operation
InterlockedAdd(myUAVBuffer[any_idx], 1);
…
}
Improving Performance
There can be negative performance implications from using atomic operations inside of a shader since they will potentially block other shader threads from executing. Be careful when designing a shader to minimize such impacts.
NOTE
On Intel® HD Graphics 2500/4000: to access this metric, you must explicitly enable the Intel® Graphics Performance Analyzers option in your BIOS settings:
-
Select Advanced
-
Select System Agent (SA) Configuration
-
Select Graphics Configuration
-
Reboot your machine
If the BIOS on your system does not include the Intel® Graphics Performance Analyzers option, update your BIOS to the latest version from Intel. After completing your performance monitoring activity, we recommend that you disable the Intel® Graphics Performance Analyzers BIOS option and reboot your machine.