A language-level simulation framework for cuda kernels