Make number of elements per batch as a template argument
make grainsize a trait for instructions