Going to try running this with watersheds and residuals as gpuArrays and see where it breaks