1 Reply Latest reply on Feb 25, 2011 11:48 AM by schenwo

    Multiple GPUs - where is the bottleneck? (Linux)


      Setup: HD5830 (for OpenCL computing), Nvidia 8500GT (for graphical desktop), Core i7, CentOS 5.5

      When I have heavy OpenCL load on the HD 5830 I observe that my graphical desktop (which runs on a separate GPU with a separate X server) partly freezes despite having a multi-core CPU on which only one core is busy with handling the OpenCL overhead. I wonder why does this happen? Where is the bottleneck?

      The freeze endures until the execution of a bunch of kernels started with clEnqueueNDRangeKernel is finished. In this time, input from the keyboard is not processed and video playback hangs. In contrast, moving windows with the mouse still works smoothly, and other processes which run on the CPU in the background are only slightly impaired. And one last observation: The OpenCL-related load on the CPU is mostly in kernel space.

      Thus, I wonder if there is a performance bottleneck at the kernel or interrupt handling level while OpenCL kernels are started and executed on the HD5830?

      Any other suggestions and maybe solutions to get things running smoothly in parallel? And what is your experience when you use several GPUs in parallel for OpenCL stuff? Does the parallel execution bring some performance gain, or do the GPUs slowdown each other?

      Thanks, Wolfram

        • Multiple GPUs - where is the bottleneck? (Linux)

          Ok, to reply to myself:

          I solved the problem by using the proprietary nvidia driver for the 8500GT instead of the open source nv driver. Now my graphical desktop on the 8500GT runs without being disturbed by heavy OpenCL load on the ATI card.

          Getting both the propr. ATI and NVIDIA driver to work in parallel on different X servers in a multi-seat configuration is possible, you only have to take care of the glx module for the X server by hand (-modulepath is your friend when starting the X server) and of the GL library.

          OpenCL works on both graphics adapters, and in addition CUDA works on the nvidia card. I will try to find out if both OpenCL platforms can be used in parallel from one application...