OpenCl test: Ati FirePro v4800 vs Nvidia Ion, The Ion is the winner. Why?

Discussion created by szabi_h on Dec 14, 2011
Latest reply on Dec 18, 2011 by szabi_h
I felt, that my new Amd videocard is too slow in OpenCl. I tested it vs. Ion integrated graphic card.


I had bought an Ati FirePro v4800 videocard to my diploma work, but i feel, that my new Amd videocard is too slow in OpenCl. I tested the OpenCl with Ion integrated graphic card (i have just this card and a Radeon HD 2600 pro, but the HD2600 don't know the OpenCl technology), and the Ion was incredble faster than my new Amd professional card.

Test config:
- Intel Atom 330 (with hyperthreading), Ion motherboadr with PCI-E 2.0, 2 GB 800 Mhz high latency DDR2 noname memory.
- Athlon 64 X2 3800+, Nforce 430 with PCI-E 1.1 (dual chanel low latency 4Gb 800 Mhz DDR2 Geil Ultra mem)
- Ati FirePro v4800 videocard, vs the Atom's Ion videocard
Ion has 16 stream processor, it's a cheap integrated card with the system memory .
FirePro v4800 has 400 stream processor, it's a professional card with GDDR5 memory.
- At all the test: i used the same program, that i writed.
- Operation system: Windows 7, Vs2010 (but under Linux + gcc: it's slower)

Progam runtime test results (count of tests results = 6) :
OpenCl FirePro + Athlon X2: 1155-1226 ms
OpenCl FirePro + Atom 330 (Ion videocard was disabled in the bios):  2744-2822 ms (i feel this time)
OpenCl Ion + Atom 330:  338-412 ms
 - Cuda Ion + Atom 330:  324-340 ms

The kernel runtime:
OpenCl FirePro (all the two systems) : 26-67 ms
OpenCl Ion + Atom 330: 148-163 ms
Cuda Ion + Atom 330: 111-131 ms

What is that? - I think, and i do some other tests. I mesure the instructions, and i find, that the first OpenCl instruction is the very slow in FirePro:
OpenCl FirePro + Athlon X2: 750-804 ms
OpenCl FirePro + Atom 330 (Ion videocard was disabled):  1639-1759 ms
OpenCl FirePro + Atom 330 (Ion videocard was enabled):  2246-2265 ms
OpenCl Ion + Atom 330 (FirePro was NOT in the slot, without Amd drivers): 31-44 ms
OpenCl Ion + Atom 330 (FirePro was in the slot, with Amd drivers): 98-123 ms
 - The all init instructions is one instruction in Cuda: Ion + Atom 330:  0 ms

The first instruction was at OpenCl:
  status  = clGetPlatformIDs(1, &(csys->platforms), &numPlatforms);
When i changed the first instruction to find an other OpenCl init way. After the first instruction was changed to an other: the first instruction runtime was not changed, but the time of clGetPlatformIDs reduced very.

I measured the kernel compile-time (the all compile istructions time) :
OpenCl FirePro + Atom 330: 608-648 ms
OpenCl Ion + Atom 330: 1-2 ms
Cuda Ion + Atom 330: there are not compile-time at runtime (but when i build the program: it build too slow)

I don't measured FirePro with Athlon X2 (but i think it's faster than (FirePro + Atom), and very slower than (Ion + Atom) ).

 Can anybody give me some advice to reduce OpenCl runtime in my Ati FirePro videocard? (Now the kernel optimize is not necessary, when the other times are like thats...)
 (Sorry my engilsh.)