Static PTX Analysis for CUDA Kernel Energy Estimation
Authors
Larsen, Sebastian Livoni ; Fjellanger, Lasse Ingolf Maria ; Madsen, Rasmus
Term
4. term
Education
Publication year
2026
Submitted on
2026-06-07
Abstract
Graphics Processing Units (GPUs) power today’s AI and high-performance computing, so reducing their energy use matters. This study asks whether we can estimate how much energy a GPU program (a CUDA kernel) will use just by looking at its code, specifically NVIDIA’s Parallel Thread Execution (PTX), an assembly-like intermediate representation. We built a static analysis tool that counts how often each PTX instruction appears and paired it with instruction-level energy measurements taken using external power monitoring. We then tested two instruction-cost models and a neural network that uses instruction frequencies across 144 CUDA kernels covering scientific codes, memory-heavy tasks, matrix-multiplication optimizations, and transformer-inspired applications. We find that different PTX instructions can differ in energy use by up to two orders of magnitude (about 100×). However, PTX-based static analysis alone cannot accurately predict energy at the kernel level: our best model still has an average absolute percentage error of 74.1%. This suggests that runtime effects—such as memory behavior, cache usage, and contention for hardware resources—play a major role in GPU energy consumption.
Grafikprocessorer (GPU’er) driver i dag AI og højtydende beregninger, så det er vigtigt at begrænse deres energiforbrug. Dette studie undersøger, om vi kan skønne energiforbruget for et GPU-program (en CUDA-kerne) udelukkende ud fra koden, nærmere bestemt NVIDIAs Parallel Thread Execution (PTX), som er en assembler-lignende mellemkoderepræsentation. Vi udvikler et statisk analyseværktøj, der tæller hvor ofte hver PTX-instruktion forekommer, og kombinerer det med energimålinger på instruktionsniveau opnået via ekstern effektovervågning. Derefter afprøver vi to instruktionsomkostningsmodeller og en neuralt netværks-baseret model, der bruger instruktionsfrekvenser, på 144 CUDA-kerner, der dækker videnskabelige beregninger, hukommelsestunge opgaver, optimeret matrixmultiplikation og applikationer inspireret af transformere. Vi finder, at enkelte PTX-instruktioner kan variere i energiforbrug med op til to størrelsesordener (omkring 100×). Alligevel er statisk PTX-analyse alene ikke tilstrækkelig til præcis forudsigelse på kerne-niveau: den bedste model har en gennemsnitlig absolut procentvis fejl på 74,1 %. Det peger på, at kørselstidsfaktorer som hukommelsesadfærd, cache-udnyttelse og konkurrence om hardware-ressourcer spiller en stor rolle for GPU’ers energiforbrug.
[This abstract has been rewritten with the help of AI based on the project's original abstract]
