Energy efficiency is useful work completed per unit energy, or equivalently the inverse energy required per useful result. It governs operating cost, battery life, grid capacity, cooling, carbon impact, and how much AI service fits within a fixed power envelope. Relevant units include operations per joule, TOPS per watt, tokens per joule, images per joule, or joules to train or serve a qualified result; watts alone omit execution time. A professional performance claim defines workload, useful work, input and output shapes, numerical format, batch and concurrency, warmup and measurement interval, hardware and software versions, power state, correctness tolerance, and aggregation method. Peak specifications are ceilings under particular conditions; delivered behavior includes utilization, data movement, synchronization, control overhead, and tail effects. Define useful work, quality, full measurement boundary, utilization, embodied exclusions, facility overhead, and whether a rate metric or integrated energy is reported.
Architecture, quantitative model, and operating behavior. Efficiency improves through smaller capacitance and voltage, specialized dataflow, local SRAM reuse, lower precision, sparsity with real skipping, compression, efficient algorithms, high utilization, and minimized communication. Process scaling helps but leakage and interconnect increasingly matter. Energy equals the integral of power over time. A higher-power accelerator can use less energy if it finishes much sooner, while a low-power device can waste energy through long runtime. PUE divides total facility power by IT-equipment power; values nearer one indicate less facility overhead. Chip TOPS/W, board tokens/J, node jobs/kWh, cluster training energy, facility energy including PUE, and lifecycle carbon answer different questions. Peak TOPS/W rarely represents an entire application. Useful analysis separates arithmetic, memory hierarchy, interconnect, storage, control, and queuing. It counts operations and bytes at each boundary, identifies dependencies and reuse, estimates ideal ceilings, and then uses counters and traces to explain the gap between the model and measurement. Ratios without a clearly named numerator and denominator invite invalid comparisons. Report useful throughput together with latency distribution, utilization, arithmetic intensity, achieved bandwidth, cache hit rate, occupancy, communication time, memory capacity, power, energy per result, quality, and cost. Include median and tail behavior, sustained rather than burst operation, repeated trials, and uncertainty. A faster approximation is not equivalent unless it meets the same accuracy and service constraints.
Implementation, hardware mapping, and bottlenecks. Measure wall and rail power with synchronized work counters; reduce data movement; tune voltage/frequency and batch; right-size models; quantize; exploit locality; schedule for utilization; power down idle capacity; and improve cooling and power conversion. Advanced process, SRAM, HBM, chiplets, tensor engines, clock gating, DVFS, regulators, package thermals, direct liquid cooling, and efficient network optics all contribute. Moving a bit off chip can cost far more energy than a local arithmetic operation. Dividing peak TOPS by TDP, comparing different precision or quality, ignoring hosts and cooling, using average power without time, and claiming generational factors from unaligned workloads produce misleading efficiency. Begin with a correct reference and representative shapes. Profile end to end, classify the dominant resource, inspect kernel and system timelines, change one bottleneck at a time, and remeasure because optimization moves pressure elsewhere. Tiling, fusion, batching, vectorization, layout, precision, compression, overlap, prefetch, sharding, and algorithm choice are useful only when they reduce the limiting resource. The execution path spans registers, local SRAM and caches, HBM or GDDR, host DRAM, PCIe or coherent links, scale-up fabric, network, and storage. Compute units consume tensors only when compilers and kernels issue enough independent work and the hierarchy supplies operands. Package wiring, memory stacks, clocks, voltage, thermal headroom, and power delivery determine sustained limits. Frequent mistakes include quoting peak instead of achieved rates, omitting data conversion and transfer, measuring a cached toy input, timing asynchronous work without synchronization, mixing decimal and binary units, ignoring warmup or throttling, changing precision or quality, averaging away tails, and optimizing a component that is not on the critical path.
Measurement, validation, and engineering controls. Measure fixed-quality tasks across load, batch, clocks, temperatures, and durations; integrate energy; include idle and auxiliary allocation; report uncertainty; and test sustained rather than boost behavior. Tokens/J, images/J, FLOPS/W, total kWh, time to quality, PUE, utilization, energy by compute/memory/network/cooling, cost, and carbon intensity matter. Energy attribution by phase and component reveals whether inefficiency comes from idle gaps, memory traffic, low utilization, communication, cooling, or excessive precision. Verification combines analytical bounds, microbenchmarks, hardware counters, kernel timelines, end-to-end traces, scaling sweeps, sensitivity to batch and shape, cold and warm runs, long-duration thermal tests, correctness comparisons, fault and congestion tests, and independent reproduction. Roofline and queueing models guide diagnosis but must be calibrated against the deployed machine. Benchmark code, datasets, model and compiler artifacts, drivers, firmware, topology, clock and power settings, environment, commands, raw samples, counter traces, and analysis notebooks remain versioned. Continuous tests detect regressions in quality, latency, throughput, bandwidth, memory, power, and cost, with thresholds chosen from variance rather than a single run. Published comparisons disclose configuration, exclusions, tuning effort, measurement boundary, quality criteria, and uncertainty. Energy and carbon claims distinguish chip, IT, and facility boundaries and avoid extrapolating one benchmark to all workloads. Owners review regressions and retain evidence sufficient to reproduce decisions.
| Lever | Primary mechanism | Likely benefit | Trade-off | Required evidence |
|---|---|---|---|---|
| Lower precision | Fewer bits and denser MACs | Compute/memory energy | Accuracy/scaling | Fixed-quality joules/result |
| Locality/fusion | Avoid external bytes | Large data-movement savings | SRAM/register pressure | Byte and energy counters |
| Specialization | Remove general overhead | High workload efficiency | Flexibility/utilization | Representative workload suite |
| DVFS/power caps | Lower voltage/frequency | Better operating point | Longer runtime | Integrated energy curve |
| Utilization/batching | Amortize fixed power | More work per joule | Latency/queueing | SLO-qualified goodput |
| Cooling/PUE | Reduce facility overhead | Lower wall energy | Capital/water/operations | Facility-metered PUE |
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,Segoe UI,Roboto,sans-serif">
<rect width="760" height="470" fill="#0d1117"/>
<defs>
<marker id="eeGreenArrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto">
<path d="M0 0L10 5L0 10Z" fill="#34d399"/>
</marker>
<marker id="eeGoldArrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto">
<path d="M0 0L10 5L0 10Z" fill="#fbbf24"/>
</marker>
<marker id="eeRedArrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto">
<path d="M0 0L10 5L0 10Z" fill="#f87171"/>
</marker>
<linearGradient id="eePowerFlow" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#fbbf24"/>
<stop offset=".46" stop-color="#60a5fa"/>
<stop offset="1" stop-color="#34d399"/>
</linearGradient>
<filter id="eeGlow" x="-80%" y="-80%" width="260%" height="260%">
<feGaussianBlur stdDeviation="4" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<text x="380" y="30" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">Energy Efficiency — Turn More Joules into Useful Work</text>
<text x="380" y="52" fill="#8b98a5" font-size="12.5" text-anchor="middle">follow the energy from the wall to computation, expose every loss, then optimize work completed per joule</text>
<!-- Quantitative energy flow -->
<g transform="translate(24 84)">
<text x="356" y="-9" fill="#e6edf3" font-size="10.5" font-weight="700" text-anchor="middle">ILLUSTRATIVE ENERGY ACCOUNTING · THE WIDTH OF EACH PATH REPRESENTS ENERGY</text>
<rect width="712" height="224" rx="13" fill="#10151b" stroke="#3a4453" stroke-width="1.5"/>
<!-- Wall input -->
<g transform="translate(17 63)">
<rect width="91" height="85" rx="10" fill="#2b2414" stroke="#fbbf24" stroke-width="1.7"/>
<path d="M29 23v18M48 23v18M24 41h29v11c0 10-7 17-15 17" fill="none" stroke="#fde68a" stroke-width="3"/>
<text x="65" y="37" fill="#fde68a" font-size="9" font-weight="700" text-anchor="middle">WALL</text>
<text x="65" y="51" fill="#fbbf24" font-size="8" text-anchor="middle">INPUT</text>
<text x="45" y="78" fill="#fbbf24" font-size="12" font-weight="700" text-anchor="middle">100 J</text>
</g>
<!-- Main input ribbon -->
<path d="M108 91H168V121H108Z" fill="#fbbf24" fill-opacity=".78"/>
<text x="138" y="82" fill="#fbbf24" font-size="8.5" text-anchor="middle">electrical energy</text>
<!-- Conversion stage -->
<g transform="translate(168 70)">
<rect width="96" height="72" rx="10" fill="#172238" stroke="#60a5fa"/>
<path d="M15 38h13l7-15 12 31 9-18h24" fill="none" stroke="#93c5fd" stroke-width="2"/>
<text x="48" y="17" fill="#93c5fd" font-size="9.5" font-weight="700" text-anchor="middle">PSU + VRM</text>
<text x="48" y="65" fill="#8b98a5" font-size="8" text-anchor="middle">voltage conversion</text>
</g>
<path d="M264 91H333V118H264Z" fill="#60a5fa" fill-opacity=".78"/>
<text x="298" y="82" fill="#93c5fd" font-size="9" text-anchor="middle">92 J delivered</text>
<!-- conversion loss branch -->
<path d="M189 142v29h54v14" fill="none" stroke="#f87171" stroke-width="8" stroke-linejoin="round" marker-end="url(#eeRedArrow)" opacity=".85"/>
<text x="224" y="204" fill="#fca5a5" font-size="8.5" text-anchor="middle">8 J conversion loss → heat</text>
<!-- Chip boundary -->
<g transform="translate(333 22)">
<rect width="240" height="181" rx="13" fill="#101b24" stroke="#38bdf8" stroke-width="1.6"/>
<text x="120" y="18" fill="#7dd3fc" font-size="10" font-weight="700" text-anchor="middle">COMPUTE SYSTEM</text>
<rect x="16" y="39" width="89" height="65" rx="8" fill="#10251f" stroke="#34d399"/>
<g transform="translate(28 51)" stroke="#6ee7b7" fill="none">
<rect width="30" height="30" rx="3"/>
<path d="M7 8h16v14H7ZM11 4v4M19 4v4M11 22v4M19 22v4M4 11h3M4 19h3M23 11h3M23 19h3"/>
</g>
<text x="76" y="61" fill="#6ee7b7" font-size="9" font-weight="700">USEFUL</text>
<text x="76" y="75" fill="#6ee7b7" font-size="9" font-weight="700">COMPUTE</text>
<text x="76" y="93" fill="#34d399" font-size="12" font-weight="700">35 J</text>
<rect x="124" y="39" width="100" height="31" rx="7" fill="#201a2d" stroke="#a78bfa"/>
<text x="174" y="52" fill="#c4b5fd" font-size="8.5" font-weight="700" text-anchor="middle">DATA MOVEMENT</text>
<text x="174" y="64" fill="#a78bfa" font-size="9" text-anchor="middle">30 J</text>
<rect x="124" y="78" width="100" height="31" rx="7" fill="#2b2414" stroke="#fbbf24"/>
<text x="174" y="91" fill="#fde68a" font-size="8.5" font-weight="700" text-anchor="middle">SWITCHING LOSS</text>
<text x="174" y="103" fill="#fbbf24" font-size="9" text-anchor="middle">17 J</text>
<rect x="16" y="118" width="89" height="31" rx="7" fill="#2b181c" stroke="#f87171"/>
<text x="60" y="131" fill="#fca5a5" font-size="8.5" font-weight="700" text-anchor="middle">LEAKAGE</text>
<text x="60" y="143" fill="#f87171" font-size="9" text-anchor="middle">10 J</text>
<!-- dissipated heat exits -->
<path d="M224 55h26M224 94h26M105 133h145" fill="none" stroke="#f87171" stroke-width="2" stroke-dasharray="4 3"/>
<path d="M250 55v96" fill="none" stroke="#f87171" stroke-width="10" opacity=".78"/>
<text x="120" y="169" fill="#8b98a5" font-size="8.5" text-anchor="middle">57 J inside the system ultimately becomes heat</text>
</g>
<!-- Useful work output -->
<path d="M438 126C520 126 548 68 592 68H674V98H592C552 98 525 158 438 158Z" fill="#34d399" fill-opacity=".72"/>
<g transform="translate(620 35)">
<circle cx="52" cy="48" r="37" fill="#10251f" stroke="#34d399" stroke-width="1.7"/>
<path d="M34 50l11 11 24-28" fill="none" stroke="#6ee7b7" stroke-width="4"/>
<text x="52" y="96" fill="#6ee7b7" font-size="9.5" font-weight="700" text-anchor="middle">35 J USEFUL WORK</text>
</g>
<!-- Cooling overhead -->
<path d="M573 173h43v22h48" fill="none" stroke="#f87171" stroke-width="8" marker-end="url(#eeRedArrow)" opacity=".8"/>
<text x="635" y="164" fill="#fca5a5" font-size="8.5" text-anchor="middle">heat removal</text>
<text x="642" y="214" fill="#8b98a5" font-size="8" text-anchor="middle">fans, pumps, facility cooling add energy</text>
</g>
<!-- Optimization levers -->
<g transform="translate(24 337)">
<text x="250" y="-10" fill="#6ee7b7" font-size="10.5" font-weight="700" text-anchor="middle">ATTACK THE DOMINANT TERM — NOT JUST THE ARITHMETIC</text>
<rect width="500" height="98" rx="12" fill="#101d1a" stroke="#33705e" stroke-width="1.5"/>
<g transform="translate(13 15)">
<rect width="108" height="67" rx="8" fill="#142b44" stroke="#60a5fa"/>
<path d="M16 46C31 16 47 57 61 28s26 8 34-7" fill="none" stroke="#93c5fd" stroke-width="2"/>
<text x="54" y="15" fill="#93c5fd" font-size="9" font-weight="700" text-anchor="middle">DVFS</text>
<text x="54" y="57" fill="#8b98a5" font-size="7.8" text-anchor="middle">Pdynamic ∝ C V² f</text>
</g>
<g transform="translate(133 15)">
<rect width="108" height="67" rx="8" fill="#2b181c" stroke="#f87171"/>
<path d="M18 24h27v26H18ZM24 31h15M31 25v25M59 21l29 31M88 21L59 52" fill="none" stroke="#fca5a5" stroke-width="2"/>
<text x="54" y="15" fill="#fca5a5" font-size="9" font-weight="700" text-anchor="middle">POWER GATING</text>
<text x="54" y="61" fill="#8b98a5" font-size="7.8" text-anchor="middle">disconnect idle leakage</text>
</g>
<g transform="translate(253 15)">
<rect width="108" height="67" rx="8" fill="#201a2d" stroke="#a78bfa"/>
<rect x="15" y="25" width="23" height="23" rx="3" fill="none" stroke="#c4b5fd"/>
<rect x="70" y="25" width="23" height="23" rx="3" fill="none" stroke="#c4b5fd"/>
<path d="M40 36h27" stroke="#c4b5fd" stroke-width="4" marker-end="url(#eeGreenArrow)"/>
<text x="54" y="15" fill="#c4b5fd" font-size="9" font-weight="700" text-anchor="middle">DATA LOCALITY</text>
<text x="54" y="61" fill="#8b98a5" font-size="7.8" text-anchor="middle">move bits less distance</text>
</g>
<g transform="translate(373 15)">
<rect width="108" height="67" rx="8" fill="#2b2414" stroke="#fbbf24"/>
<path d="M16 47h16l7-18 10 25 9-34 10 27h23" fill="none" stroke="#fde68a" stroke-width="2"/>
<text x="54" y="15" fill="#fde68a" font-size="9" font-weight="700" text-anchor="middle">SPECIALIZE</text>
<text x="54" y="61" fill="#8b98a5" font-size="7.8" text-anchor="middle">fewer joules per operation</text>
</g>
</g>
<!-- Metric card -->
<g transform="translate(541 337)">
<text x="97" y="-10" fill="#fbbf24" font-size="10.5" font-weight="700" text-anchor="middle">MEASURE THE RIGHT OUTCOME</text>
<rect width="195" height="98" rx="12" fill="#17150f" stroke="#745d1d" stroke-width="1.5"/>
<text x="98" y="28" fill="#fde68a" font-size="12" font-weight="700" text-anchor="middle">ENERGY EFFICIENCY</text>
<path d="M34 45H161" stroke="#fbbf24" stroke-width="1.5"/>
<text x="98" y="61" fill="#6ee7b7" font-size="15" font-weight="700" text-anchor="middle">useful work / joule</text>
<g fill="#8b98a5" font-size="8.5" text-anchor="middle">
<text x="98" y="78">examples: inferences/J · FLOP/J · transactions/J</text>
<text x="98" y="91">lower power alone may only make the task slower</text>
</g>
</g>
<text x="380" y="458" fill="#6b7684" font-size="11" text-anchor="middle">A complete design counts conversion, computation, communication, idle leakage, and cooling across the full workload.</text>
</svg>
Selection and system-level application. Choose architectures and operating points by energy to the required outcome, not peak rate; match scale to utilization and include facility effects for datacenter decisions. Mobile AI, edge sensors, datacenter inference and training, HPC, robotics, networking, storage, and sustainable computing depend on energy efficiency. Efficiency spans algorithm, model, precision, compiler, accelerator, memory, network, scheduler, utilization, power delivery, cooling, and grid. Optimization is a system exercise across algorithms, precision, kernels, compiler, runtime, accelerator, memory, interconnect, scheduler, serving policy, cooling, and facility limits. Removing one ceiling often exposes another, so architecture decisions should optimize time and energy to a useful result rather than an isolated metric. A professional performance claim defines workload, useful work, input and output shapes, numerical format, batch and concurrency, warmup and measurement interval, hardware and software versions, power state, correctness tolerance, and aggregation method. Peak specifications are ceilings under particular conditions; delivered behavior includes utilization, data movement, synchronization, control overhead, and tail effects. Report useful throughput together with latency distribution, utilization, arithmetic intensity, achieved bandwidth, cache hit rate, occupancy, communication time, memory capacity, power, energy per result, quality, and cost. Include median and tail behavior, sustained rather than burst operation, repeated trials, and uncertainty. A faster approximation is not equivalent unless it meets the same accuracy and service constraints. CFS connects this topic to semiconductor architecture, implementation, verification, manufacturing, packaging, test, and deployed AI-system tradeoffs across the platform.
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.