Why no pygpu_split? If it is not needed, don't add it. I'm looked at a high level and it seam ok. I'm running the tests. If they pass, I'll merge.