JIT-based Template Metaprogramming for GPU Programming