A implementação Nvidia CUDA e ATI Stream OpenCL suportam a extensão Khronos ICD, portanto, quando você chamar clGetPlatformIDs, você terá duas plataformas diferentes e, portanto, poderá consultar dispositivos CPU / GPU nessas plataformas e, claro, a plataforma ATI retornar o dispositivo da CPU e a plataforma Nvidia retornará o dispositivo da GPU.
Em seguida, você pode criar CommandQueues nesses dispositivos e iniciar seu kernel. É claro que isso significa que não é trivial compartilhar a tarefa entre GPU e CPU, mas pelo menos ter um botão no seu aplicativo que muda de CPU para GPU seria bastante fácil de fazer.