Switched to sm_20 to work with trunk llvm.
Added cuda scheduling primitives

Required the ability to rename variables as well as split them.