OpenCL Devices when GPU and CPU present
Posted: Sun Apr 21, 2013 11:29 am
I'm starting to test out OpenMM using the python wrapper under OpenCL in the v5.1 beta release. My system has 4x Nvidia GTX 680s and a hexcore Intel CPU. I'm trying to understand how the device picking works when both are present and how device id's are assigned.
I installed a nice little tool for extracting info on the various available opencl devices from:
https://github.com/nbigaouette/oclutils/
and it appears as if the GPU and CPU OpenCL SDKs are both installed properly. Each GPU is seen as a different device and the CPU is seen as a single device. However device index (at least from the outputs) seem to show that the CPU is device 0 on the Intel platform and the GPUs are numbered 0-3 on the GPU side (i.e the platforms number the available devices independently of one another).
Within the context of OpenMM, is there an easy way to determine which device id belongs to which piece of hardware? I looked through the manual and I don't think I saw anything on specifying cpu vs gpu for the OpenCL platform. Also, let's say that I want to run 6 separate serial calculations on the CPU using OpenCL. Since I think the whole CPU is seen as a single device, do I have to do anything special to ensure that the calculations don't collide?
Any insight on this would be most appreciated.
Josh
I installed a nice little tool for extracting info on the various available opencl devices from:
https://github.com/nbigaouette/oclutils/
and it appears as if the GPU and CPU OpenCL SDKs are both installed properly. Each GPU is seen as a different device and the CPU is seen as a single device. However device index (at least from the outputs) seem to show that the CPU is device 0 on the Intel platform and the GPUs are numbered 0-3 on the GPU side (i.e the platforms number the available devices independently of one another).
Within the context of OpenMM, is there an easy way to determine which device id belongs to which piece of hardware? I looked through the manual and I don't think I saw anything on specifying cpu vs gpu for the OpenCL platform. Also, let's say that I want to run 6 separate serial calculations on the CPU using OpenCL. Since I think the whole CPU is seen as a single device, do I have to do anything special to ensure that the calculations don't collide?
Any insight on this would be most appreciated.
Josh