In prior work we proposed Zeroploit, a transform that duplicates code, specializes one path assuming certain key program operands, called versioning variables, are zero, and leaves the other path unspecialized. Dynamically, depending on the versioning variable’s value, either the specialized fast path or the default slow path will execute. We evaluated Zeroploit with hand-optimized codes in that work.
In this paper, we present PGZ, a completely automated, profile-guided compiler approach for Zeroploit. Our compiler automatically determines which versioning variables or combinations thereof are profitable, and determines the code region to duplicate and specialize. PGZ's heuristic takes operand zero value probabilities as input and it then uses classical techniques such as constant folding and dead-code elimination to estimate the potential savings of specializing a versioning variable. PGZ transforms profitable candidates, yielding an average speedup of 21.2% for targeted shader programs, and an average frame-rate speedup of 4.4% across a collection of modern gaming applications on an NVIDIA GeForce RTX 2080 GPU.
Tue 2 MarDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 14:15 | |||
13:30 15mTalk | PGZ: Automatic Zero-Value Code Specialization CC Research Papers | ||
13:45 15mTalk | Exploring the Space of Optimization Sequences for Code-Size Reduction: Insights and Tools CC Research Papers Anderson Faustino da Silva State University of Maringá, Bernardo N. B. de Lima Federal University of Minas Gerais, Fernando Magno Quintão Pereira Federal University of Minas Gerais | ||
14:00 15mTalk | PolyBench/Python: Benchmarking Python Environments with Polyhedral Optimizations CC Research Papers Miguel Á. Abella-González Universidade da Coruña, Pedro Carollo-Fernández Universidade da Coruña, Louis-Noël Pouchet Colorado State University, Fabrice Rastello Inria, Gabriel Rodríguez Universidade da Coruña |