Julio, if i remember right, you've had issues on OpenCL, because of some AMD / Intel mismatch and started looking to AMP for this reason.
I myself believed that it's not possible f.ex. to use both Intel CPU and NV GPU at the same time.
Maybe you was wrong similar like me. In fact you can use all available hardware, you just need to install OpenCL driver for each.
Here on Intel/NV System i can even choose if i want to use AMD or Intel driver for CPU:
My log output:
Available Platform Vendor (0): NVIDIA Corporation
Device 0 GeForce GTX 480 Device ID is 515788048
Available Platform Vendor (1): Advanced Micro Devices, Inc.
Device 0 Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz Device ID is 166825688
Available Platform Vendor (2): Intel(R) Corporation
Device 0 Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz Device ID is 168043664
That's awesome, isn't it?
I took my project from Intel/ATI machine and i there was nothing i had to change (same libs, same headers)
Some interesting performance measure i can share:
(I just ported a single Compute Shader to Open CL, which does tree-traversal similar to collision broadphase - not very GPU friendly)
i7-5820K 6core Intel OpenCL Driver: 7.8 ms
i7-5820K 6core AMD OpenCL Driver: 2.4 ms
i7 930 (AMD Driver): 8.3 ms
R9-280X OpenCL: 4.2 ms
R9-280X OpenGL Compute Shader: 4.3 ms
GTX480: OpenCL: 1.59 ms
GTX480: OpenGL Compute Shader: 4.3 ms
NV seems to have removed their OpenCL throttle on latest drivers to please Maxwell launch.
This was the primary reason for not using OpenCL for me and it's gone

EDIT:
Some more numbers on another shader.
Does some typical brute force GPU stuff all in local memory, some synchronisation, no atomics:
i7 930 (AMD Driver): 830 ms
R9 280X OpenCL: 3.94 ms
GTX670 OpenCL: 10 ms
EDIT2:
Reenabling all optimizations i can compare APIs and GPUs now:
GTX670: OpenCL: 8.15 ms (3 / 6)
GTX670: OpenGL Compute Shader: 18.3 ms (3.3 / 15.6)
R9 280X OpenCL: 5.9 ms (4.2 / 1.6)
R9 280X OpenGL Compute Shader: 6.6 (4.4 / 2.8 )
2 Numbers in braces refer to 2 shaders:
1. Tree tarversal, no shared memory, no atomics, random memory access
2. Interreflection, all in shared memory, lots of atomics
Only the first number (total runtime of both) is accurate.
We can see that ATI / NV have different talents, but more important:
OpenCL is simply faster on both. The source code is the same for both - just syntax changes.
The bad result on GTX670 2nd. compute shader is strange.
Its from a computer with old dual core CPU.
I remember it was something about 12ms on i7.
Looking here show's it's a fair comparision: http://gpuboss.com/gpus/Radeon-R9-280X-vs-GeForce-GTX-670
Send me GTX980 / 290x for up to date results
