Basic questions about OpenCL
Can someone please help me to clarify the questions below about OpenCL:
(1) What is the difference between work-item and thread?
(2) I read that threads in OpenCL runs faster than common parallel applications since it's executed directly on hardware in contrast with the usual way of executing threads in software level. What does it mean by "executing directly in hardware"?
(3) What are the differences when we run kernel code (opencl parallel code) using CPU and parallel code in CPU?
(4) "CUDA only works on NVidia hardware". Let's suppose we have a computer with multiple NVidia GPUs, does it mean that we can only choose to run our kernel code through these NVidia GPUs and can't choose to run it in another processor (like CPU)?
Thanks a lot!