I would like to try out OpenCL on my laptop. The HP EliteBook 8460p Windows 7 x64 laptop came with an old factory graphics driver for AMD Radeon HD 6470M chip. The driver was too old and it did not support OpenCL. According to the guideline, I need to:
- Install the latest AMD Catalyst Drivers from AMD Support Download Center;
- Install AMD APP SDK, which contains OpenCL libraries, documentation and code examples.
AMD Driver Installers
The first latest driver installer that I downloaded was amd-catalyst-15.7.1-without-dotnet45-win7-64bit.exe (238MB). Although the package appeared too big, it seemed successful in installation without any error message. But I checked the installation log and there were 4 or 5 obscure error entries. When I ran the installed AMD Catalyst Control Center, it said “Catalyst Control Center cannot be started”:
This was a bad sign. From my past experience with AMD video driver installer, I suspected it again went wrong. After I installed AMD APP SDK and built the HelloWorld OpenCL example in Visual Studio, the example crashed at the call of clGetPlatformIDs. It’s obvious that the OpenCL driver was also not installed correctly.
The GPU Caps Viewer is a very popular tool to check the GPU and driver software status. So I downloaded the latest GPU Caps Viewer 1.23.0 and wanted to check around. However, GPU Caps Viewer also crashed at launching, obviously it did not expect calls to functions like clGetPlatformsIDs would crash.
So I had to go back to Windows Programs and Features, run AMD Catalyst Install Manager to uninstall all AMD driver software components, and try to reinstall them. While uninstallation was ongoing, all the displays went blank (I had two external monitors connected to the dock, and the laptop was on dock). After waiting for 5 minutes the monitors did not seem to come back on, I had to hold the power button of the laptop for 10 seconds or so to force shut down the laptop. When the laptop booted up, it showed an awful 640×480 VGA desktop. The worse, the laptop did not detect my external displays on dock!
Now I decided to download a different driver installer, amd-catalyst-15.7.1-with-dotnet45-win7-64bit.exe (286MB) and hoping better luck. The bulky thing again seemed to install successfully, but the Catalyst Control Center still did not run, and the screen was still VGA. Basically it did not install successfully. I even thought that maybe HP’s driver, rather than AMD’s driver, would work, and downloaded the HP’s corresponding driver sp64287.exe. Upon installation, it did not change anything, and my external displays were still gone.
In the end I thought maybe I should quit trying OpenCL on PC. I wanted my full resolution screen and big external displays back! The last resort was Windows System Restore. I wanted to restore to a restore point before all this mess. Luckily I had one such restore point. After restoration and reboot, my default laptop screen was full resolution, but the two external displays were still not detected. System Restore reported that the restoration was not completed successfully, probably due to anti-virus software interference. But this is my work laptop and I could not turn off anti-virus software protection due to lack of security privileges.
I decided to chat with IT for help, to either install the AMD driver properly, or restore to the previous restore point correctly. I was amazed how today’s IT working remotely on my computer, but obviously they did not have much experience to this situation.
Manual Driver Update
While IT was remotely working on my laptop, I suddenly wanted to have another try. In Device Manager, under Display adapters, it had only one entry, Standard VGA Graphics Adapter. This was obviously not correct. Right click on the entry, then choose Update Driver Software, from there I wanted to manually install drivers rather than using AMD’s installer.
So I first used 7-Zip to open the downloaded driver installer amd-catalyst-15.7.1-with-dotnet45-win7-64bit.exe. Although it is an executable file, it is in fact a compressed archive of many driver files. 7-Zip reveals that the file contains quite some directories and file. Skipping the directory with garbled characters (probably 7-Zip’s problem), I extracted the directory with Bin64, Config, Images, and Packages to my hard drive. The drivers seem to be under Packages\Drivers directory.
Now I came back to Update Driver Software, and choose Browse my computer for driver software. Then I chose the parent directory with extracted files from AMD installer. After a few minutes, the driver was installed. Upon reboot, the two external displays come back on, and the screen resolutions are full!
Device Manager shows that the Display adapter is AMD Radeon HD 7400M Series. It is a bit off from 6470M, but it seems to work fine. At least it is not the lame Standard VGA Graphics Adapter.
I do not have the fancy Catalyst Control Center software installed, but that’s not a big deal.
The better, when I run GPU Caps Viewer, it does not crash any more:
More details on OpenCL support of AMD Radeon HD 6470M:
This means not only the graphics driver was installed correctly, but also the OpenCL 1.2 driver was also installed correctly. Now the AMD APP OpenCL HelloWorld example code would run:
If you could not install AMD graphics driver correctly using AMD installer, try to extract the driver files in the installer with 7-Zip and manually update the drivers in Device Manager. This even installs OpenCL drivers.