My research focuses on improving the performance of parallel programs using compiler and architectural optimizations.

Speculative Reconvergence

Speculative Reconvergence identifies serially executed common code blocks within divergent loops and modifies the compiler’s branch convergence mechanism to reconverge threads early, thereby maximizing parallelism within expensive code blocks at the cost of increased serialization along low-cost paths within a GPU program.

Speculative Reconvergence for Improved SIMT Efficiency, Sana Damani et al., CGO 2020

Common Code Convergence

Common Subexpression Convergence (CSC) is a compiler optimization that identifies common code along divergent paths and moves them to a convergent region thereby increasing SIMT efficiency of a GPU program.

Common Subexpression Convergence, Sana Damani and Vivek Sarkar, LCPC 2019


MLIR Tutorial, Jacques Pienaar and Sana Damani, MLIR4HPC@LCPC 2019