Both - here is how I understand/understood it. The GPU will take over as if it were the CPU, but the Video card has been programmed using those plug-ins (they are carried to the video card memory when used) so that when you pass the function, it makes it to where the CPU isn't over used by what ever task you are performing.
EDIT: CHANGED EXAMPLE
EX:
A developer makes an application to Blur a lot of images, instead of having to create your own code to do it, you can just pass the CI Function and it'll do it for you.
You might want to create your own filter that uses a Gaussian Blur, Crystalize, and Dot Screen. You can use Core Image to make your own blurs like that.
EDIT: CHANGED EXAMPLE
EX:
A developer makes an application to Blur a lot of images, instead of having to create your own code to do it, you can just pass the CI Function and it'll do it for you.
You might want to create your own filter that uses a Gaussian Blur, Crystalize, and Dot Screen. You can use Core Image to make your own blurs like that.