GPU Benchmark Glossary

Your comprehensive technical reference guide for understanding GPU benchmarking, shader programming, and graphics performance terminology

Benchmarking Fundamentals

Benchmark Suite

A collection of standardized tests designed to measure different aspects of GPU performance, including rendering speed, computational throughput, and memory bandwidth under controlled conditions.

Example: Volume Shader BM's benchmark suite includes fractal rendering, ray marching, and compute shader tests.

Baseline Performance

The reference performance level established using specific hardware and settings, used as a comparison point for evaluating other configurations or optimizations.

Synthetic Benchmark

An artificial workload specifically designed to stress-test particular GPU capabilities, unlike real-world applications. Provides consistent, reproducible measurements across different hardware.

Example: Rendering complex mathematical fractals to test shader execution performance.

Bottleneck Analysis

Process of identifying which component (GPU cores, memory bandwidth, CPU, etc.) is limiting overall performance in a graphics workload.

🎨Rendering Technologies

Ray Marching

Advanced

A rendering technique where rays are stepped incrementally through 3D space to find surface intersections, particularly useful for rendering implicit surfaces and volumetric effects that are difficult to represent with traditional polygons.

Used in: Volume shader benchmarks, distance field rendering, cloud simulation.

Signed Distance Field (SDF)

A mathematical function that returns the shortest distance from any point in space to a surface, with the sign indicating whether the point is inside (negative) or outside (positive) the object. Enables efficient ray marching and smooth boolean operations.

Shader Pipeline

The sequence of programmable stages in the GPU rendering process, including vertex shaders (geometry processing), fragment shaders (pixel coloring), and optional geometry/tessellation shaders for advanced effects.

Rasterization

The process of converting vector graphics (triangles, lines) into a raster image (pixels) by determining which pixels are covered by each primitive and should be shaded.

Z-Buffer (Depth Buffer)

A buffer storing depth information for each pixel, used to determine which surfaces are visible and which are occluded by nearer geometry during rendering.

Anti-Aliasing

Techniques to reduce jagged edges (aliasing artifacts) in rendered images by sampling multiple points per pixel or applying post-processing filters to smooth transitions.

📊Performance Metrics

FPS Variance

The statistical measure of frame rate consistency over time. Lower variance indicates smoother, more predictable performance, while high variance suggests stuttering or inconsistent frame delivery.

Formula: σ² = Σ(fps - mean_fps)² / n

1% Low / 0.1% Low FPS

The average frame rate of the worst 1% or 0.1% of frames during a benchmark run. Better indicator of worst-case performance and stuttering than average FPS alone.

Fill Rate

The speed at which a GPU can write pixels to the framebuffer, measured in megapixels or gigapixels per second. Critical for high-resolution rendering and multi-layer effects.

Memory Bandwidth Utilization

Percentage of theoretical maximum memory bandwidth being used during rendering. High utilization (>80%) may indicate memory bandwidth bottlenecks limiting performance.

Draw Calls

Individual commands from CPU to GPU to render geometry. Excessive draw calls can create CPU bottlenecks; modern techniques like instancing reduce draw call overhead.

GPU Occupancy

The ratio of active warps/wavefronts to maximum possible concurrent warps on the GPU. Higher occupancy generally improves performance by hiding memory latency through better parallelism.

💻Shader Programming

GLSL (OpenGL Shading Language)

A C-like high-level programming language used to write shaders for OpenGL and WebGL. Features vector/matrix operations optimized for graphics computation.

Uniform Variable

A shader variable whose value remains constant across all vertices/pixels in a single draw call, set by the CPU. Used for parameters like transformation matrices, colors, and material properties.

Varying / Interpolated Variable

Data passed from vertex shader to fragment shader, automatically interpolated across the primitive's surface based on barycentric coordinates.

Swizzling

GLSL feature allowing arbitrary reordering and selection of vector components using notation like .rgba, .xyzw, or .stpq. Example: vec3(1,2,3).zyx returns vec3(3,2,1).

Texture Sampling

The process of reading color/data values from texture memory at specified coordinates, with filtering (nearest, linear, mipmapping) to handle fractional coordinates smoothly.

Precision Qualifiers

Keywords (highp, mediump, lowp) in GLSL that specify floating-point precision. Higher precision improves accuracy but may reduce performance on mobile GPUs.

🔧Hardware Architecture

Compute Unit (CU) / Streaming Multiprocessor (SM)

A cluster of shader cores that execute instructions in parallel. AMD uses the term CU, NVIDIA uses SM. More units generally mean higher parallel processing capability.

Warp / Wavefront

The smallest group of threads that execute together in lockstep on a GPU. NVIDIA uses 32-thread warps, AMD uses 64-thread wavefronts. Divergent branching within a warp reduces efficiency.

Texture Mapping Units (TMU)

Specialized hardware for texture sampling operations, including filtering and coordinate transformation. More TMUs enable faster texture-heavy rendering.

Render Output Units (ROPs)

Hardware responsible for final pixel write operations, including blending, z-testing, and anti-aliasing. ROP count limits maximum fill rate and multi-sample performance.

Cache Hierarchy

Multi-level memory system (L1, L2, sometimes L3 caches) providing fast access to frequently used data, reducing latency to main VRAM. Effective cache utilization is critical for performance.

Memory Bus Width

The number of bits that can be transferred simultaneously between GPU and VRAM, measured in bits (e.g., 256-bit, 384-bit). Wider buses provide higher bandwidth potential.

🌐WebGL Specific

WebGL Context

The JavaScript object providing access to WebGL API functions for 3D rendering in browsers. Created from HTML5 canvas element with getContext('webgl') or getContext('webgl2').

Context Loss

Event where WebGL context becomes invalid due to GPU reset, driver crash, or resource exhaustion. Properly handling context loss/restore is essential for robust web applications.

WebGL Extensions

Optional features providing access to advanced GPU capabilities like floating-point textures, instanced rendering, or multiple render targets. Support varies by browser and hardware.

Attribute Buffer (VBO)

GPU buffer containing per-vertex data (positions, normals, UVs). Data is uploaded once and can be reused for multiple draw calls, reducing CPU-GPU transfer overhead.

Framebuffer Object (FBO)

Off-screen render target in WebGL allowing render-to-texture operations. Used for post-processing effects, shadow mapping, and multi-pass rendering techniques.

Anisotropic Filtering

Advanced texture filtering technique that accounts for viewing angle, providing sharper textures on surfaces viewed at oblique angles. Available via WebGL extension.

🚀Optimization Techniques

Instanced Rendering

Drawing multiple copies of the same geometry with a single draw call, varying per-instance attributes. Dramatically reduces CPU overhead for rendering many similar objects like particles or vegetation.

Frustum Culling

Optimization that excludes objects outside the camera's view frustum from rendering, saving GPU processing on invisible geometry.

Level of Detail (LOD)

Technique using simpler geometry/textures for distant objects and detailed versions for nearby objects, balancing visual quality with performance based on viewer distance.

Texture Atlasing

Combining multiple textures into a single larger texture to reduce texture binding operations and improve batch rendering efficiency.

Early Z Rejection

Hardware optimization that discards pixels failing depth test before fragment shader execution, saving computation on occluded pixels. Requires rendering front-to-back or using depth prepass.

Dynamic Branching

Use of conditional statements (if/else) in shaders. Can reduce efficiency if threads in same warp take different branches (divergence). Modern GPUs handle coherent branching better.