cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

meriken
Adept III

90+% Performance Reduction of OpenCL Application with AMD Radeon Software Crimson Edition

With the latest AMD Software Crimson Edition, I am experiencing a 90+% performance reduction of the tripcode generator I developed, and other users reported the same problem. The following are relevant links:

http://meriken.ygch.net/programming/merikens-tripcode-engine-english/

https://github.com/meriken/merikens-tripcode-engine

(Please make sure to uncomment "// #define ENGLISH_VERSION" in "/MerikensTripcodeEngine/Source Files/MERIKENsTripcodeEngine.h" when you build this application.)

When I change OpenCL build options in "/MerikensTripcodeEngine/Source Files/OpenCL12.cpp" from "-O1 -cl-mad-enable" to "-O5 -cl-mad-enable", I either get corrupt results (7970/7990) or the same slow speed (290X). I was able to reproduce the problem with the following drivers:

radeon-crimson-15.12-with-dotnet45-win7-64bit

non-whql-64bit-radeon-software-crimson-16.1.1-win10-win8.1-win7-jan30

non-whql-64bit-radeon-software-crimson-16.2-win10-win8.1-win7-feb23

non-whql-64bit-radeon-software-crimson-16.3-win10-win8.1-win7-march9

This application was working just fine up until Catalyst 15.11.1 Beta. My system configuration is as follows:

GPU0: DIAMOND Radeon HD 7990

GPU1: Gigabyte Radeon HD 7990

GPU2: Sapphire Radeon R9-290X

GPU3: Gigabyte Radeon R9-290X

CPU: Intel Core i7-4770

MB: ASUS Maximus VI Extreme

PSU: Corsair AX1200

OS: Microsoft Windows 7 64bit SP1 English

I would really appreciate if you could work on this issue ASAP.

0 Likes
1 Solution
meriken
Adept III

Just to give an update, I ended up rewriting the OpenCL kernel in question in GCN assembly:

https://github.com/meriken/merikens-tripcode-engine/blob/master/SourceFiles/OpenCL/bin/OpenCL10GCN.a...

Now my application works reliably across different versions of AMD display drivers. Luckily, I was able to cover GCN 1.0/1.1/1.2 with the same kernel at the source code level.

By the way, CLRadeonExtender is a wonderful toolkit with GCN assember and disassembler that really should be part of AMD APP SDK. I cannot recommend it highly enough.

View solution in original post

10 Replies