Metaprogramming GPUs with Sh