Definition of term "shader"

I have an issue about metric “sm__average_threads_launched_per_warp_shader_cs” that I can not find an accurate definition of “shader” in cuda documentation. Does it mean one CUDA Core or any other unit?

A shader is a piece of code executed on a GPU. The 3D graphics pipeline defines several types of shaders: compute, vertex, pixel, etc. The CUDA term “kernel” is synonymous with “compute shader”.

sm__average_threads_launched_per_warp_shader_{type} is a family of performance metrics that support more than one shader type. The following shader types can be found in NVIDIA GPU metrics:

  1. cs - compute shader
  2. gs - geometry shader
  3. ps - pixel/fragment shader
  4. tcs - tessellation control shader
  5. tes - tessellation evaluation shader
  6. vs - vertex shader
  7. vtg - sum of vertex, tesselation, and geometry shaders

In Nsight Compute only the shader_cs metric is exposed as it is the only shader type used by CUDA. The other shader types are exposed in Nsight Graphics and Nsight Systems.

Thank you, Greg! Your instruction is really clear. Now I understand what it means.