StreamAlloc: A Framework for Analyzing and Transforming CUDA Code to Enable Asynchronous Execution | Synapse