PDA

View Full Version : HD 4xxx and OpenCL



Fire$torm
12-20-10, 09:08 PM
I was searching the MW forum for the post concerning the GPU n-body app. It is lost somewhere in there but I did find a reference to the AMD Accelerated Parallel Processing OpenCL Programming Guide. (http://developer.amd.com/gpu/ATIStreamSDK/assets/AMD_Accelerated_Parallel_Processing_OpenCL_Program ming_Guide.pdf) While perusing the document I discovered Appendix-A.

Here is a summary of what it contains:

AMD Accelerated Parallel Processing OpenCL Programming Guide

Date of printing: December 2010

Appendix A (page-117)
OpenCL Optional Extensions
:
:
A.8 AMD Vendor-Specific Extensions (page-120)

This section describes the following extension:
cl_amd_fp64
cl_amd_device_attribute_query
cl_amd_event_callback
cl_amd_media_ops
cl_amd_printf

• cl_amd_fp64 — Before using double data types, double-precision floating
point operators, and/or double-precision floating point routines in OpenCL™
C kernels, include the #pragma OPENCL EXTENSION cl_amd_fp64 : enable
directive. See Table A.1 for a list of supported routines.
:
:
A.9 Supported Functions for cl_amd_fp64 (page-124)
Table A.1 lists the functions supported by cl_amd_fp64 on three platforms...

Note: The three platforms are Evergreen(5xxx) RV770(4xxx) x86 CPU
You will see that Evergreen has support for most of the OpenCL cl_amd_fp64 functions and all RV770 support is listed as Beta (Beta = Not Working)

So it is clear that at this point in time the RV770 (HD 4xxx Series) cannot perform OpenCL Double Precision funtions. Since AMD no longer supports production of the RV770 GPU why would they continue to develop OpenCL support for it?

Mike029
12-20-10, 10:28 PM
So I guess I have a pretty paperweight for my desk. (Asus hd 4870.)

Fire$torm
12-21-10, 02:18 AM
So I guess I have a pretty paperweight for my desk. (Asus hd 4870.)

My post applies only to app/projects that require Double Precision. The 4xxx series will crunch single precision just fine. I think a few of the projects have or will have OpenCL apps for ATI/AMD.

IMHO I think the whole DP OpenCL thing is a marketing ploy coupled with corporate ego by AMD. The 4xxx series is pre-AMD and AMD wanted to make its own mark with the 5xxx/6xxx series. Also AMD killed the ATI logo even though that logo had a very strong image/presence in the market. For me this is evidence of the ego theory.
The marketing ploy part is shown in a post on the MW forum from a guy who wrote to AMD asking why no DP in the lower/midrange cards. And this was their response. (http://milkyway.cs.rpi.edu/milkyway/forum_thread.php?id=1505&nowrap=true#35863)

Slicker
12-21-10, 12:54 PM
My post applies only to app/projects that require Double Precision. The 4xxx series will crunch single precision just fine. I think a few of the projects have or will have OpenCL apps for ATI/AMD.

IMHO I think the whole DP OpenCL thing is a marketing ploy coupled with corporate ego by AMD. The 4xxx series is pre-AMD and AMD wanted to make its own mark with the 5xxx/6xxx series. Also AMD killed the ATI logo even though that logo had a very strong image/presence in the market. For me this is evidence of the ego theory.
The marketing ploy part is shown in a post on the MW forum from a guy who wrote to AMD asking why no DP in the lower/midrange cards. And this was their response. (http://milkyway.cs.rpi.edu/milkyway/forum_thread.php?id=1505&nowrap=true#35863)

I disagree. When you look at the OpenCL language, it is obvious that OpenCL was an nVidia creation and ATI/AMD either had little choice but to get on board since CUDA was way more popular than CAL. Proof? Look at PG. When code is created in the native development SDK for ATI and CUDA, ATI kicks CUDA's butt. When using OpenCL, CUDA cards look really good compared to ATI cards. Why? The OpenCL GPU code looks almost exactly like the CUDA code. Many of the features are very specific to nVidia (e.g. pinned memory) and have to be emulated (or just ignored without error) on ATI cards. The reduction kernels are almost exact duplicates from the CUDA samples whereas the ATI reduction kernels are much, much, much easier to code in CAL. And, no one with ATI cards is going to flock to using OpenCL if it takes 0.84 CPUs to run an ATI GPU app like it does at PG, at least not unless they stop supporting CAL/Brook.

Mike029
12-21-10, 01:04 PM
"and that's why yellow makes me sad, i think."

Fire$torm
12-21-10, 01:33 PM
@Slicker: Sorry, I did not mean to mislead you. My reference to a marketing ploy had to do with AMD restricting OpenCL DP functions to the high end cards in the new 6xxx series. I know very very little about programming. :(

joker
12-21-10, 09:40 PM
"and that's why yellow makes me sad, i think."

Don't make me take to to where I am from!! =))

Slicker
12-22-10, 01:12 AM
@Slicker: Sorry, I did not mean to mislead you. My reference to a marketing ploy had to do with AMD restricting OpenCL DP functions to the high end cards in the new 6xxx series. I know very very little about programming. :(

Ok. Then we do agree. :o

The way I see it, OpenCL is to CUDA as Javascript is to Java. CUDA is pre-compiled where OpenCL is compiled per device. Or, it is like C++ vs. .NET or P-code vs. compiled code. Personally, I dislike Java because the implementations just aren't the same on all platforms even though they convince CEO's that it is and that any app written in Java should rule the world. Don't get me wrong, it has its place. It just isnt' the killer programming language that it is marketed as. Same goes for OpenCL. Good concept. Bad/impossible implementation.

If creating an OpenCL app will boost CUDA performance by automatically taking advantage of the nVidia card's features, I might give it a shot with Collatz. In fact, I have. I just get too pissed due to the inability to debug compile on demand code that it sucks when dealing with really complicated GPU code. But, it if works, it may be worth it.

On the other hand, if PG just randomly picked an obscene credit amount because they finally have a GPU app, then I'd still have to say that OpenCL sucks and I'll stick with the native apps using CUDA and CAL/Brook. I can randomly increase the Collatz credit to AQUA or PG or MW rates by simply change the steps per credit config.

Maybe we should have a 5x credit challenge on Collatz. (e.g. any credit granted during the weekend challenge pays 5 times as much as normal). I bet that would get people to participate.

zombie67
12-22-10, 01:25 AM
On the other hand, if PG just randomly picked an obscene credit amount because they finally have a GPU app [...]

I am not sure that is what happened here. They had a GPU app before. Remember the AP26 sub-project? It also had a CUDA app. It paid less than collatz, I think. In any case, I am not sure how they came up with the credits for this sub-project. I recall it used to be a few credits higher, but they reduced them slightly, so that it would be a prime number.

The thing that gets my attention in this case is: where are all the usual suspects, decrying the credits are too high? Have they *all* finally given up? Of is PG somehow immune?

DrPop
12-22-10, 03:05 AM
"Credits too high"? "Ain't no such thing!" Reminds me of a song I heard once..."It's like too much money, there's no such thing. Like a girl too pretty, with too much class...being too lucky, a car too fast..."