How much of Unity's inbuilt shader system is done on the GPU?

All I would like to know is how much is done on the CPU side,
and if it is possible, to access the code for unity’s particle system?

I’m trying to make an optimised particle system for a 3D mobile game but If unity’s is entirely GPU based then it may be a waste of time.

Thanks in advance

Shaders by definition run entirely on the GPU. There’s no access to the code for Unity’s particle system.

–Eric

I think Unitys particle system is entirely CPU based, except for the shaders.

Shuriken is threaded, so it may well remain faster than anything you can do for mobiles.

To sum it up, updating particle positions and handling the physics is being done on CPU and there’s little you can do to optimize that.
On the other hand, rendering the particles is, of course, handled by GPU… and it can be made vastly faster if you’re willing to sacrifice a bit of quality.
Particles are usually quite low-res objects. If you were to render them in half the resolution, you’d make the rendering up to 4x (16x with quarter res) faster at very little visual cost if implemented correctly (theres a GPU gems article about that) You’d probably have to hack around and disable Unity’s particle renderer and render the particles as an image effect instead.