Folding Question about GPUs

Feb 25, 2011
17,000
1,628
126
I know that nVidia cards are better at folding. But why are they better at folding?

I mean, what do they do differently? Two cards with similar gaming performance, the AMD will pull in about half the PPD of the nVidia.

But theoretical GFLOPs are usually similar, and in other GPGPU or OpenCL benchmarks, AMD's cards results will vary a lot - often beating the pants off of nVidia's cards.

So what gives? Is there an important architectural difference? Is the F@H Client coded better for CUDA than for OpenCL?
 

VirtualLarry

No Lifer
Aug 25, 2001
56,587
10,227
126
I know that nVidia cards are better at folding. But why are they better at folding?

Is the F@H Client coded better for CUDA than for OpenCL?

That's basically what it comes down to. The AMD client doesn't get enough dev support and is relatively un-optimized.
 

ZipSpeed

Golden Member
Aug 13, 2007
1,302
170
106
Yeah, it boils down to Nvidia dumping a ton more money into software than AMD.
 

pandemonium

Golden Member
Mar 17, 2011
1,777
76
91
If bitcoin mining is a representation of anything, I'd suspect folding would benefit greatly if AMDs cards were optimized on the software side. I'm just speculating, of course.
 

blckgrffn

Diamond Member
May 1, 2003
9,687
4,348
136
www.teamjuchems.com
Yeah, it boils down to Nvidia dumping a ton more money into software than AMD.

Yup, there are a lot of CUDA wu's that get good PPD, not so much with OpenCL.

ASAIK, there different "strands" of research and the scientist either take the "easy" way out and do a CPU Gromacs (?) based simulation or put the extra grunt in and build a GPU optimized one. Nvidia is helping them do this using CUDA, and so the scientists can spend less time building the simulation and more time doing sciency things. Like quibbling with the local comic book shop owner or figuring out the optimal couch placement for the airflow in their apartment.

Since AMD chooses not to do this, OpenCL just kind of sits there, at least we've seen a little movement there.

For some time, I thought it would be quite the coup if AMD worked with the F@H on even one massively GCN optimized batch of work. Even one project would be enough to get a lot of attention and I think it could probably move enough cards to fund a full time AMD helper.

Who knows, maybe AMD will actually get serious about these things themselves when they have APUs with unified CPU/GPU memory space. I am not holding my breath, though.

Bit coin mining isn't the only place where AMD OpenCL has proven powerful, look at Milkway @ Home or POEM, both work very well. It does seem like CUDA is more CPU effecient - most of the work must occur on the GPU. With the AMD OpenCL tasks we've seen, it appears that a lot of grunt still happens on the CPU and the GPU is truly a co-processor dealing with a subset of the calculation functions, albeit very effectively.
 

lakedude

Platinum Member
Mar 14, 2009
2,778
529
126
I've heard that ATI works great on simple repetitive parallel tasks, like Collatz, and that nVidia is better for more complex work. Something about ATI having lots of little GPU brains vs nVidia having fewer bigger GPU brains or some such...
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,836
4,815
75
Let's see...

From what I remember, AMD - er, it was ATI then - got an early start on GPGPU. They had that advantage, the CAL low-level interface, and more total core-cycles. They had some disadvantages, though. First, they had a high-level language available, instead of CAL, that was absolutely impossible to figure out. (I forget its name, but it wasn't OpenCL.)

Second, they had sets of five cores operated by one instruction. Not five cores running five instances of one instruction with different data; five cores together working on one instruction. If you could access the hardware at a low enough level (CAL), and keep your register use low enough that all five (or at least four) cores could work on some data at the same time (usually with a very few vector variables), you could make ATI cards run insanely fast. But it's hard to set up software to run like that.

nVidia, on the other hand, had one core dedicated to one instruction, a much simpler model to program for, and CUDA, a much simpler way to program, which is still well-suited to its hardware. nVidia also had better documentation and an emulator, so people without any video card could try writing stuff. So everybody started writing in CUDA.

Finally, AMD added OpenCL. But OpenCL is not well-suited to its hardware, even if you use vectors, which you basically have to to make OpenCL at all fast on AMD. So AMD was still harder to program for and less efficient than nVidia.

Eventually with GF104 and GK104, 1.5 cores were dedicated to one instruction, and AMD moved down to 4 cores per instruction with the 6000 series, but these didn't make much difference. The 7000 series is much better for computing and better-suited to OpenCL, but not that many people have 7000 series cards yet.
 

GLeeM

Elite Member
Apr 2, 2004
7,199
128
106
First, they had a high-level language available, instead of CAL, that was absolutely impossible to figure out. (I forget its name, but it wasn't OpenCL.)
Was the name Brooke? It only worked on ATI 1950 cards, if you could get it working! Gave Top PPD for a while :)
Until they dropped it completely for nVidia.
 

Assimilator1

Elite Member
Nov 4, 1999
24,189
529
126
Yea I remember folding with my 1950 Pro for a while :), until, like you said, it was dropped like a stone :(.