Gabriel's Tech Blog

OpenCL Support For Legacy AMD GPUs

When winter starts to roll around I like to use the two PCs in my room essentially as heaters by running various distributed computing projects. To ensure maximum heat production, I look for projects that exploit the both the CPU and GPU. With a bit of setup this has usually not been a problem. However, this year was a little bit different due to various legacy issues related to AMD’s support for the Radeon HD4000 series and Windows XP.

My second computer is an old Intel Pentium Dual Core system and a AMD Radeon HD5450 running Windows XP, while my main computer is a AMD Athlon II X3 triple core CPU with an AMD Radeon HD4850 running Windows 7 x64. My initial goal was to run the same project on both PCs. This lead me to try various projects that run within BOINC. BOINC initially could not detect the AMD Radeon HD5450 in my Windows XP computer, which lead to me finding out that AMD dropped OpenCL support after version 12.1 of their Catalyst Driver Suite. I was then able to locate and install AMD Catalyst Drivers 12.1 for Windows XP.

Since I first setup POEM@Home on my main Windows 7 computer, I attempted to also use it on my Windows XP computer. However, POEM@Home would not work due to the AMD Radeon HD5450 lacking support for double-precision floating point numbers. Then I tried Milkyway@Home and Einstein@Home which at first didn’t seem to to fully utilize the GPU in my Windows XP machine. While switching between different projects, I also learned that using Windows built-in Remote Desktop replaces the active GPU driver, so distributed computing applications won’t be able to use the GPU while you are logged in through Remote Desktop. This likely caused some confusion on my end regarding why Milkyway@Home and Einstein@Home weren’t using the GPU. I solved this by just physically logging into the computer instead of using Remote Desktop. Supposedly Splashtop, UltraVNC and Logmein are alternative remote desktop application that work without interfering with the active GPU driver.

While swapping out different projects in BOINC, I also tried Folding@Home which had worked for me in the past. However, Folding@Home rewrote the core of their software to move away from the now unsupported BrookGPU programming language to OpenCL. The OpenCL core now makes use of local memory within the GPU’s “Compute Units”. The AMD Radeon HD4850 in my main Windows 7 x64 computer lacks local memory within it’s compute units, so the driver tries to emulate it resulting in slow performance. Folding@Home currently has decided not to support the AMD HD3000 & HD4000 series due to this issue. So I had to scratch Folding@Home off my list.

I eventually settled on running Milkway@Home on my main Windows 7 x64 computer, while running Einstein@Home on my Windows XP computer. Einstein@Home seems to show more GPU utilization than Milkyway@Home did on the AMD Radeon HD5450.

Written by Gabriel on November 30th, 2013

Posted in Technology

Leave a Reply