I am not sure what the issue with the high CPU usage is exactly. The reason why you got lower CPU usage in the other case is not because the implementation was more efficient but because it was done on the GPU instead. What really matter, I’d say, is how fast your processing step finishes altogether. If you do steps on the GPU, sure, your CPU usage will drop, but doesn’t mean it’s faster or more efficient as these may be steps that a CPU is better at (also you need to consider that data transfer to GPU is slow as well)