Author Topic: [AOGen] Pure CPU bench  (Read 47529 times)

0 Members and 1 Guest are viewing this topic.

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« on: January 31, 2006, 05:10:17 PM »
Here is a special version of aogen for CPU benchmarking:
AOGen_4_Bench.zip.

Just unzip the archive and launch the *.bat files.

benchmark_8_samples_1_thread.bat performs the bench with one thread while benchmark_8_samples_2_threads.bat uses two threads.

You can use cpu-z to get accurate information about your system.

Here are my results:

First workstation:
- P4 660 - 3.6GHz HT - Prescott - core speed: 3617.5MHz - FSB: 201MHz -     L1 Cache: 16k - L2 Cache: 2048k
- Mobo: gigabyte 8i915P duo pro
- 1024M DDR2 400 Dual - Freq: 268MHz - CAS: 4 - RAS_to_CAS: 4 -    RAS_Precharge: 4 - Cycle Time: 11
- winxp sp2
- 1 thread: 73 sec
- 2 threads: 56 sec

Second workstation:
- AMD64 3500+
- 1024 DDR 400
- winxp sp2
- 1 thread: 86 sec
- 2 threads: 85 sec

Results with one thread seem to confirm the 3DMark06 cpu results.

Other results?

Groove

  • Soldier
  • **
  • Posts: 51
    • http://www.g-truc.net
[AOGen] Pure CPU bench
« Reply #1 on: January 31, 2006, 08:25:13 PM »
P4C 3Ghz, 2048 MB
WinXP SP2
1 Thread: 107 secondes
2 Threads: 86 secondes

What kind of algorithm is it ? Iterative ray / triangles intersections with float numbers only?

I have read the AO tutorial, it seems that it's a iterative algorithm with lot of data accesses. Do you need many memory allocations or you know how the array size at algorithm beginning?

Could we have some implementation detail too understand the spefic case under this benchmark?

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« Reply #2 on: January 31, 2006, 10:04:32 PM »
It's a bruteforce algorithm  :D
There is no memory allocation in the algorithm and random vectors for all possible rays are precomputed before starting real calculations.
The algorithm for one mesh can be summed up as follow:

Code: [Select]

// Part 1: Slowest part of the algorithm.
for each face in a mesh do
for each non-normalized vector in the pool
Do a dot product between the vector and the normal face (floating number)
if dot >= 0.0 then
Normalize vector and form the ray to cast (floating number)
for each face in a mesh do
Do a triangle-ray intersection test (floating number)
if intersection then
store intersection data in pre-allocated array
break;
end if
end for
end if
end for
end for

// Part 2: Fastest part of the algorithm. Looks like computing mesh normals.
compute occlusion data for each vertex of the mesh (floating number)

Groove

  • Soldier
  • **
  • Posts: 51
    • http://www.g-truc.net
[AOGen] Pure CPU bench
« Reply #3 on: February 01, 2006, 03:18:30 PM »
Dothan 1.5 512 mo DDR 333 : 102s
Athlon XP 2800+ (2083MHz) 1Go DDR 400 : 106s

Dothan loves dynamic branching, so it loves your loops :p

Thanks for this benchmark a new brick on the CPU speed understanding !

P4E seams faster than I have thinking, Could you do a test we your P4E at 3GHz to compare P4E and P4C ?

TuKo

  • Thug
  • *
  • Posts: 46
    • http://tuko.fourmiz.org
[AOGen] Pure CPU bench
« Reply #4 on: February 08, 2006, 10:05:05 PM »
- AMD Athlon64 FX-60
- 1024 DDR 600
- WinXP SP2
- 1 thread: 56 sec
- 2 threads: 30 sec :lol:

@ 3GHz : 29 sec
eVGA nForce 680i SLI • Kentsfield QX6700ES
8800GTX 768Mb • 2Gb Teamgroup PC8000
Promise EX4350 64Mb | iRam 4Gb • Raptor 150Gb RAID0 • Seagate 400Gb + WD 320Gb
X-Fi XtremeMusic • Enermax Liberty 1000W • Vapo LS modded

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« Reply #5 on: February 09, 2006, 12:48:27 PM »
Tuko, tu abuses un peu  :lol:
On voit que sur un dual core, il y a une amélioration de 46% entre 1 thread et 2. Je serais curieux de voir ce que ce donne sur les nouveaux pentium dual core. J'ai lu recemment que l'architecture était beaucoup moins bien optimisée que celle des AMD. J'espère au moins que ca sera plus performant que l'hypertheading.

Bon voilà d'autres results:

- P4 3.4GHz HT (machine HP grand public...)
- 1024M DDR 400
- winxp home edition
- 1 thread: 90 sec
- 2 threads:  69 sec

et

- PIII 1GHz
- 256M PC100
- winxpsp2
- 1 thread: 323 sec
- 2 threads: 322 sec

Groove

  • Soldier
  • **
  • Posts: 51
    • http://www.g-truc.net
[AOGen] Pure CPU bench
« Reply #6 on: February 10, 2006, 03:40:23 PM »
Le P4 n'a pas ete vraiment prevu pour le dual core contrairement au Athlon 64. L'Althon 64 dechire tout en bi-core grace a controller memoire integré dans le core du CPU, la synchronizations entre les deux CPU sont alors tres rapide. Sur P4 le controller memoire est toujours sur la carte mere ... ark. Le P4D est un CPU fait a l'arrache, Intel préférant s'occuper de leur Pentium M, Core Duo et Pentium 5. En se qui me conserne je trouve qu'ils ont bien raison.

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« Reply #7 on: February 14, 2006, 02:03:33 PM »
Resultat étrange:

- p4 Northwood - 2600Mhz - FSB:200 - multiplier:X13
- L2 cache: 512k - 256bits - 2600MHz
- Memory: 1024M DDR Dual - Timing: 133.3 MHz
  CAS: 2.5 - RAS_to_CAS: 2 - RAS Precharge: 3 - Cycle time:6
- Mobo: MSI Neo 875P
- winxp sp2
- 1 thread: 116 sec
- 2 threads: 144 sec

J'ai refait les tests plusieurs fois et toujours ce même resultat! Il y aurait une arnaque dans les p4 Northwood  :?:

TuKo

  • Thug
  • *
  • Posts: 46
    • http://tuko.fourmiz.org
[AOGen] Pure CPU bench
« Reply #8 on: February 25, 2006, 05:13:05 PM »
Petit test sur XP 64Bit avec 2x Opteron 270 (dual core)

... 42 secondes et multi et 77 en mono ...

étrange non ?
eVGA nForce 680i SLI • Kentsfield QX6700ES
8800GTX 768Mb • 2Gb Teamgroup PC8000
Promise EX4350 64Mb | iRam 4Gb • Raptor 150Gb RAID0 • Seagate 400Gb + WD 320Gb
X-Fi XtremeMusic • Enermax Liberty 1000W • Vapo LS modded

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« Reply #9 on: February 25, 2006, 06:38:47 PM »
Attention: le bench est fourni pour 1 et 2 threads.  Dans ton cas, 2x Opteron dual core correspondent à 4 cores donc il faut modifier un des fichiers *.bat avec la syntaxe suivante :

Code: [Select]

aogen scene_05.3DS scene_05_8_samples_2T.xml 8 100.0 4


Là normalement, le calcul va se répartir sur les 4 cores et le temps devrait descendre aux environs des 20 secondes...

TuKo

  • Thug
  • *
  • Posts: 46
    • http://tuko.fourmiz.org
[AOGen] Pure CPU bench
« Reply #10 on: February 26, 2006, 11:39:51 AM »
C'est tout de suite bien plus encourageant ;)

23 secondes !
eVGA nForce 680i SLI • Kentsfield QX6700ES
8800GTX 768Mb • 2Gb Teamgroup PC8000
Promise EX4350 64Mb | iRam 4Gb • Raptor 150Gb RAID0 • Seagate 400Gb + WD 320Gb
X-Fi XtremeMusic • Enermax Liberty 1000W • Vapo LS modded

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2391
    • oZone3D.Net
[AOGen] Pure CPU bench
« Reply #11 on: February 26, 2006, 12:17:46 PM »
Comment se situe le processeur opteron 270 par rapport au Athlon64 FX-60? C'est plus vieux ou  de meme génération? et les frequences?

TuKo

  • Thug
  • *
  • Posts: 46
    • http://tuko.fourmiz.org
[AOGen] Pure CPU bench
« Reply #12 on: February 26, 2006, 11:12:07 PM »
Le 270 est un dualcore à 2Ghz. Il n'existe que sur Socket 940 (bi-CPU, mémoire ECC Reg obligatoire). Le gros avantage de celui-ci est justement de pouvoir offre 4 cores lorsqu'il est planté avec son jumeau :)

La plateforme S940 est destinée aux lourdes applications workstation/serveurs, et de ce fait, requière une mémoire avec contrôle d'erreur. Exit donc les bandes passantes de malades que l'on trouve sur S939 (8Gb/s sans trop de soucis).

Par défaut, ces 4 cores à 2GHz se font donc exploser à PCMark04 par mon FX-60 à 3GHz. Mais j'ose espérer qu'à 3.4GHz, le FX-60 arrivera aux mêmes résultats pour ce bench-ci que les 270.

Tout dépend donc de l'applic.
eVGA nForce 680i SLI • Kentsfield QX6700ES
8800GTX 768Mb • 2Gb Teamgroup PC8000
Promise EX4350 64Mb | iRam 4Gb • Raptor 150Gb RAID0 • Seagate 400Gb + WD 320Gb
X-Fi XtremeMusic • Enermax Liberty 1000W • Vapo LS modded

Groove

  • Soldier
  • **
  • Posts: 51
    • http://www.g-truc.net
[AOGen] Pure CPU bench
« Reply #13 on: March 01, 2006, 05:09:20 PM »
J'avais lu de trucs a ce sujet mais ca commence a faire longtemps et j'ai oublié. Cependant, je me rappel que l'Hyperthreading avait eté juge "Pas au point", je crois un problem de latence qui explose en hyperthreading ...Enfin c'est vieux ^^.

Quote from: "JeGX"
Resultat étrange:

- p4 Northwood - 2600Mhz - FSB:200 - multiplier:X13
- L2 cache: 512k - 256bits - 2600MHz
- Memory: 1024M DDR Dual - Timing: 133.3 MHz
  CAS: 2.5 - RAS_to_CAS: 2 - RAS Precharge: 3 - Cycle time:6
- Mobo: MSI Neo 875P
- winxp sp2
- 1 thread: 116 sec
- 2 threads: 144 sec

J'ai refait les tests plusieurs fois et toujours ce même resultat! Il y aurait une arnaque dans les p4 Northwood  :?:

TuKo

  • Thug
  • *
  • Posts: 46
    • http://tuko.fourmiz.org
[AOGen] Pure CPU bench
« Reply #14 on: March 08, 2006, 12:32:37 AM »
Quote from: "TuKo"
- AMD Athlon64 FX-60
- 1024 DDR 600
- WinXP SP2
- 1 thread: 56 sec
- 2 threads: 30 sec :lol:

@ 3GHz : 29 sec


Avec quelques optimisations niveau mémoire, et une petite redescente à 2950MHz, j'arrive à 28s actuellement.
eVGA nForce 680i SLI • Kentsfield QX6700ES
8800GTX 768Mb • 2Gb Teamgroup PC8000
Promise EX4350 64Mb | iRam 4Gb • Raptor 150Gb RAID0 • Seagate 400Gb + WD 320Gb
X-Fi XtremeMusic • Enermax Liberty 1000W • Vapo LS modded