In our current design, the CPU portions are those that cannot be easily parallelized on the GPU or those that require too much memory to fit on the GPU.
gPUs are poor at "irregular" computations that involve conditionals, pointer manipulation, and complex execution sequences.