Add easy to use timer system.
benchmark: add detailed timings and cudaDeviceSynchronize calls. Here we see that it's really the NPP function that takes a long time.