cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

snoukkis
Journeyman III

result image from SimpleImage sample has artifacts

Hi!

I started learning OpenCL two days ago in Java with LJWGL. I loosely based by learning project program after the SimpleImage example that came with AMD-APP-SDK-v2.8-Windows-64. It does the same thing: just loads the image and writes it back unchanged. I got everything working, kind of...

... except very often when I run it, it crashes the display driver with the following error message:

"Display driver stopped responding and has recovered

Display driver AMD driver stopped responding and has successfully recovered."

And in addition the result image sometimes contains artifacts, even sometimes when the driver doesn't crash.

After countless hours of frustrating debugging I discovered that the original precompiled SimpleImage.exe has the same EXACT crash/artifact problem.

Here's the output:

SimpleImage_Output.bmp

The exact pattern of artifacts varies. Sometimes it's just strange lines, but mostly similar to the image above.

EDIT: When comparing multiple images with artifacts, I noticed that those random errors seem to reoccur in the same 8x8 pixel areas. Actually there seems to be two distinct configurations of those error boxes where those errors may or may not occur. Not sure what that means. Maybe those boxes correspond to some constant areas on GPU die that are faulty? I'm not a hardware expert though.

My environment:

- Intel Lynnfield Core i7 860 CPU

- Radeon HD 7950

- Windows 7 64-bit

- Catalyst 13.1

- VS 2010

- AMD-APP-SDK-v2.8-Windows-64

- Java 7 32-bit & 64-bit + LWJGL 2.8.4

So the problem is  easily reproducible with the precompiled binary and self compiled 32-bit/64-bit release/debug binaries as well as with the similar Java program I made.

So what do you think? Hardware problem? Those sure look similar to the graphics artifacts that I saw in my distant youth when I was still playing around with too aggressive overclocking. Then again I haven't ever overclocked this GPU and this really isn't a 3D graphics application. In games I've had a little bit too much crashing problems over the year that I've owned this GPU. Though not so much that I would have consider it out of ordinary until now. Not with what I've come to expect from Windows and games in general.

Or could it be a driver problem? Anyone seen something similar before? I'll make a point of trying different versions of SDK and Catalyst once I've handled more pressing education duties.

Any other ideas?

0 Likes
10 Replies
himanshu_gautam
Grandmaster

Can you post what all DLLs are loaded and from what location for the executable. Also are you running the SimpleGL.exe that comes with APP SDK, or is it something in LWjGL?

0 Likes

No, not SimpleGL. I mean SimpleImage. It comes with APP SDK 2.8.

Project:

%UserProfile%\Documents\AMD APP\samples\opencl\cl\app\SimpleImage

Precompiled binary:

%UserProfile%\Documents\AMD APP\samples\opencl\bin\x86_64\SimpleImage.exe

%UserProfile%\Documents\AMD APP\samples\opencl\bin\x86\SimpleImage.exe

Basically it just creates input and output images with clCreateImage (OpenCL 1.2). Then the kernel just copies the input image to output image unmodified. Despite this, the output image is not equal to the input, it has those artifacts in it sometimes.

I additionally created another custom application in Java with LWJGL that is loosely based on the SimpleImage sample. I mentioned both to highlight the fact that the problem occurs in many applications across different programming languages.

I looked into the loaded DLL:s.

By default the 32-bit version loads:

C:\Windows\SysWOW64\OpenCL.dll (1.2.10.0)

C:\Windows\SysWOW64\amdocl.dll (10.0.1084.4)

and the 64-bit version loads:

C:\Windows\System32\OpenCL.dll (1.2.10.0)

C:\Windows\System32\amdocl64.dll (10.0.1084.4)

When I tried renaming those files it seems to load older versions from the SDK installation.

32-bit:

C:\Program Files (x86)\AMD APP\bin\x86\OpenCL.dll (1.2.1.0)

C:\Program Files (x86)\AMD APP\bin\x86\amdocl.dll (10.0.1016.4)

64-bit:

C:\Program Files (x86)\AMD APP\bin\x86_64\amdocl64.dll (10.0.1016.4)

C:\Program Files (x86)\AMD APP\bin\x86_64\OpenCL.dll (1.2.1.0)

Not sure why they are different. In any case when I tested, the older versions have the same behavior. It still crashes/has artifacts sometimes.

0 Likes

In this case the first thing i would try is to downclock my GPU / mem (even if its not overclocked) and test again. I've only experienced similar artifacts when i pushed clocks too far. If downclocking does not help, i'd try an older driver.

I tried downclocking from default 900Mhz/1250Mhz (gpu/mem) to 300Mhz/150Mhz (the minimum Catalyst overdrive allows).

Still crashing/artifacts sometimes.

I'll try older drivers a bit later. Can I just use the uninstallers provided by AMD or is there need to use more more aggressive 3rd party cleaner utilities? I haven't played with that stuff for a while... but kind of remember from years ago that such were sometimes necessary.

0 Likes

AMD lately released a nice uninstall utility. To remove Catalyst i would use this utility instead of 3rd party tools.

http://sites.amd.com/us/game/downloads/Pages/catalyst-uninstall-utility.aspx

Thanks, I used that and then installed Catalyst 12.4 (April 25. 2012). Still same problem.

I'm starting to lean towards returning the GPU to my retailer. Luckily I still have about 1 month of warranty left.

... unless you can suggest anything else that might be useful to test first?

0 Likes

I tested my Radeon HD 7950 on another computer and still same results. So I packed it up for warranty return and instead plugged in my trusty old GeForce 8600 GT for the mean time. After minor modifications I managed to replace all OpenCL 1.2 code with 1.0 equivalents for the oldie GPU and now there are no more crashes or artifacts.

Thank you all for helping!

0 Likes

Have you tried running the sample with -e option. If there are some permanent artifacts the sample should fail correctness. Can you confirm?

snoukkis wrote:

I tested my Radeon HD 7950 on another computer and still same results. So I packed it up for warranty return and instead plugged in my trusty old GeForce 8600 GT for the mean time. After minor modifications I managed to replace all OpenCL 1.2 code with 1.0 equivalents for the oldie GPU and now there are no more crashes or artifacts.

Thank you all for helping!

You may try a new GPU, this one might be faulty or something.  The 8600 GT is 114GFLOPS where is 7950 is 3.7 TFLOPS. It may be worth a try

0 Likes

This question was NOT answered. Hope this site isn't like MS where Indian/Chinese site workers are paid by the answer.

I have the same sort of image artifacts.

I also may have to ditch OpenCL and AMD and go with CUDA

0 Likes

After our latest answer, in which we proposed running the sample with the -e option, there was no response.  So we had to assume that the problem was resolved -- maybe by using a different driver.  Also, you mention APP SDK 2.8.  APP SDK 2.9 was released last year -- maybe the issue no longer exists.

We cannot know until you tell us.

Can you let us know the specifics -- the APP SDK version, the driver version, and details about the problem (if different from the above)?  We will try to reproduce it at our end.