I'm not sure why you are confused about it, you actually stated above that:
1. "I installed IntelĀ® CPU Runtime for OpenCL"
2. you have CUDA installed
3. you have installed the NVIDIA driver
so it's perfectly fine that there is:
1. an "Intel(R) Corporation" platform for your CPU and
2. the alias of CUDA vs OpenCL for your GPU (you can choose between them, but only select one, because it's the same physical hardware, just different compilers/runtimes, there are some "minor" differences between CUDA and OpenCL, NVIDIA itself tries to focus more on CUDA, so OpenCL isn't treated/pushed that well by NVIDIA)
5 MCU doesn't mean that the GPU has 5 cores, it's a different unit and it seems correct for a NVIDIA GTX 1050.
I'm not sure if I get your last question correctly. In general, a backend is a supported type of runtime/driver or better said a framework (a class of compilers/drivers/runtimes that support a specific GPGPU language), i.e. OpenCL or CUDA at the time of this writing. OpenCL is basically an instance of a backend, NVIDIA another one.
If your question instead is what the differences between --opencl-device-types and --backend-devices is, the question is very simple. The former can be used to whitelist different device types (like CPU, GPU, etc), while the latter is used to select the already whitelisted devices (e.g. "from the huge list of my whitelisted devices I only want to use #1 and #2")
1. "I installed IntelĀ® CPU Runtime for OpenCL"
2. you have CUDA installed
3. you have installed the NVIDIA driver
so it's perfectly fine that there is:
1. an "Intel(R) Corporation" platform for your CPU and
2. the alias of CUDA vs OpenCL for your GPU (you can choose between them, but only select one, because it's the same physical hardware, just different compilers/runtimes, there are some "minor" differences between CUDA and OpenCL, NVIDIA itself tries to focus more on CUDA, so OpenCL isn't treated/pushed that well by NVIDIA)
5 MCU doesn't mean that the GPU has 5 cores, it's a different unit and it seems correct for a NVIDIA GTX 1050.
I'm not sure if I get your last question correctly. In general, a backend is a supported type of runtime/driver or better said a framework (a class of compilers/drivers/runtimes that support a specific GPGPU language), i.e. OpenCL or CUDA at the time of this writing. OpenCL is basically an instance of a backend, NVIDIA another one.
If your question instead is what the differences between --opencl-device-types and --backend-devices is, the question is very simple. The former can be used to whitelist different device types (like CPU, GPU, etc), while the latter is used to select the already whitelisted devices (e.g. "from the huge list of my whitelisted devices I only want to use #1 and #2")