AVX/FMA

Vectorized Floating-Point Execution Unit Torture

Overview

The AVX/FMA module delivers the ultimate CPU stress test through 12 distinct execution waves designed to saturate every floating-point execution unit on your processor. This module exploits Advanced Vector Extensions (AVX) and Fused Multiply-Add (FMA) instructions to create maximum computational load with sophisticated dependency chains that resist optimization.

Execution Waves

Wave 1: FMA Dependency

Creates long dependency chains through fused multiply-add operations, forcing sequential execution and preventing parallel FMA unit utilization.

vfmadd132ps ymm0, ymm15, ymm14 vfmadd132ps ymm1, ymm0, ymm13 ; depends on ymm0 vfmadd132ps ymm2, ymm1, ymm12 ; depends on ymm1

Wave 2: Complex Shuffles + FMA

Combines memory bandwidth stressing with complex permutation patterns and FMA operations to stress both data movement and computation units.

vperm2f128 ymm8, ymm0, ymm1, 0x20 vshufps ymm12, ymm8, ymm9, 0x88 vfmadd231ps ymm14, ymm12, ymm13

Wave 3: Transcendental

Reciprocal and square root approximations with nested operations create maximum ALU load through low-accuracy approximations.

vrcpps ymm0, ymm14 ; reciprocal approx vrsqrtps ymm4, ymm2 ; rsqrt approx vrcpps ymm2, ymm0 ; nested reciprocal

Wave 4: Division

Chains of division operations - the slowest AVX operations available - create maximum execution latency and pipeline stalls.

vdivps ymm12, ymm11, ymm6 vdivps ymm13, ymm7, ymm12 ; chained divisions vdivps ymm14, ymm4, ymm13

Wave 5: Mixed Precision

Cross-domain penalties through single/double precision conversions stress the CPU's format conversion units.

vcvtps2pd ymm4, xmm3 ; float to double vcvtpd2ps xmm5, ymm4 ; double to float

Wave 6: Cache

Gather operations with unpredictable index patterns designed to thrash CPU caches and stress memory subsystems.

vpcmpeqd ymm7, ymm7, ymm7 ; generate indices vpsrld ymm8, ymm7, 25 vpslld ymm9, ymm8, 2 ; scale for floats

Wave 7: Blend

Variable blend masks create complex data dependencies and stress the CPU's blend execution units with unpredictable patterns.

vblendps ymm10, ymm0, ymm1, 0xAA vblendps ymm11, ymm2, ymm3, 0x55 vblendps ymm12, ymm4, ymm6, 0xF0

Wave 8: FMA Saturation

All FMA variants (add, subtract, negate) operating simultaneously to fully saturate every available FMA execution unit.

vfmadd132ps ymm0, ymm15, ymm14 vfmsub213ps ymm4, ymm3, ymm10 vfnmadd132ps ymm6, ymm5, ymm8

Wave 9: Pipeline Stall

Alternating add/subtract operations create pipeline conflicts and prevent efficient instruction scheduling.

vfmaddsub132ps ymm12, ymm11, ymm2 vfmsubadd132ps ymm13, ymm12, ymm1

Wave 10: Comparison

Complex comparison predicates with data-dependent blending create unpredictable execution paths and branch mispredictions.

vcmpps ymm0, ymm12, ymm13, 0x01 ; LT vblendvps ymm4, ymm13, ymm14, ymm0

Wave 11: Exponential Approximation

Polynomial approximation of e^x using Taylor series creates extremely compute-intensive mathematical operations.

vmulps ymm9, ymm8, ymm8 ; x² vmulps ymm10, ymm9, ymm8 ; x³ vfmadd231ps ymm13, ymm8, [rdi] ; + c1*x

Wave 12: Register Pressure

Maximum register utilization with complex dependencies prevents register renaming optimizations and stresses allocation units.

vfmadd132ps ymm14, ymm13, ymm12 vdivps ymm3, ymm2, ymm7 vsqrtps ymm5, ymm4

Hardware Stress Targets

🚀

AVX Execution Units

256-bit SIMD operations across all available vector execution units, maximizing floating-point throughput and power consumption.

FMA Units

Fused multiply-add operations create maximum computational density with 2 operations per instruction cycle.

🔥

Thermal Throttling

High-power AVX instructions generate maximum heat, testing CPU cooling solutions and thermal management.

🎛️

Register Renaming

All 16 YMM registers under constant pressure, stressing physical register allocation and renaming logic.

🔄

Out-of-Order Execution

Complex dependency chains challenge the CPU's ability to find instruction-level parallelism.

💾

Memory Subsystem

Memory bandwidth torture through permutations and gather operations stress cache hierarchies.

Performance Characteristics

Computational Intensity

8,192 Loop Iterations
12 Execution Waves
2M+ AVX Instructions
100% FPU Utilization

Technical Implementation

Anti-Optimization Features:

  • Complex dependency chains prevent instruction reordering
  • Mixed operation types resist auto-vectorization
  • Variable data patterns prevent constant folding
  • Memory references force computation result usage
  • Nested function approximations eliminate dead code

AVX-Specific Optimizations:

  • Full YMM register utilization (256-bit vectors)
  • FMA instruction variants for maximum throughput
  • Cross-domain operations for format conversion stress
  • Gather operations for memory bandwidth torture
  • Complex blend patterns for execution unit variety

Thermal Considerations:

  • AVX operations consume 2-3x more power than scalar
  • Sustained execution will trigger thermal throttling
  • CPU frequency may reduce by 100-400 MHz under load
  • Adequate cooling essential for sustained performance
⚠️ EXTREME THERMAL WARNING

This module generates maximum CPU heat through sustained AVX execution. Your processor WILL thermal throttle and may become unstable without adequate cooling. Monitor temperatures closely and ensure proper ventilation. Extended execution may cause permanent damage to inadequately cooled systems.

← Back to Modules