PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FPU vs SSE (vs gpu?) mit Cachegrößeoptimierung


micki
2005-06-01, 04:38:45
removed

Aqualon
2005-06-01, 08:02:18
Bei mir stürzt der VecDistAnalyzer irgendwann ab und hinterlässt nur eine leere summary.txt. Ich habe die result.txt angehängt, vielleicht hilft euch das weiter.

System: A64 3700+, WinXP SP2

Aqua

micki
2005-06-01, 08:22:29
removed

whtjimbo
2005-06-01, 08:28:03
auch bei mir gibts einen absturz während:
VecDistAnalyser.exe 30 1>>summary.txt


kannst Du auch den Quellcode zur Verfügung stellen?

micki
2005-06-01, 08:38:50
removed

Aqualon
2005-06-01, 08:44:25
eine schön schnelle cpu, aber hat der 3700+ nicht 1MB cache? (war doch "San Diego"-core oder so?)Das ist ein Clawhammer Mobile mit 1MB L2-Cache, der allerdings nur mit 1.4GHz anstatt 2.4GHz getaktet war.

Die Ergebnisse mit 2.4GHz (inkl. patchen eines SSE-Wertes von 0 auf 15) sind:

Time SSE: 65s, FPU: 112s, Sum: 177s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5513M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 5962M, 7500M, 9894M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 2845M, 4221M, 5363M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 2431M, 3088M, 4182M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2667M, 4135M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 2719M, 2801M, 2981M best-case-cache:128kb
VecSize= 512, FP/s(Min,Avg,Max): 2019M, 2146M, 2209M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 1762M, 1827M, 1901M best-case-cache:256kb

Aqua

micki
2005-06-01, 08:55:02
removed

G!ZMo
2005-06-01, 10:54:36
hier mal mein ergebnis

Athlon XP-M 2600+ @ 2,37GHz
Time SSE: 151s, FPU: 195s, Sum: 346s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 7518M, 8270M, 9189M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 1609M, 3496M, 5345M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 1038M, 1771M, 3270M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 941M, 1335M, 2710M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 3180M, 3446M, 3595M best-case-cache:64kb
VecSize= 256, FP/s(Min,Avg,Max): 1284M, 1978M, 2460M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 948M, 1268M, 1717M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 893M, 1043M, 1438M best-case-cache:256kb

Aqualon
2005-06-01, 13:11:17
Ist es eigentlich so geplant, dass neue Messungen in die result.txt angefügt werden?

Aqua

LOCHFRASS
2005-06-01, 13:21:11
Celeron M 320 (1,3 GHz, 512 KiB L2-Cache, Banias-Core), i845D @ 3:4 Teiler (PC2100)

Time SSE: 125s, FPU: 178s, Sum: 304s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5513M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 1860M, 3369M, 4266M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 1455M, 2143M, 3234M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 1270M, 1609M, 2581M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2667M, 2667M, 2667M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 1654M, 1768M, 1860M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 1259M, 1348M, 1422M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 1094M, 1150M, 1229M best-case-cache:256kb

Aqualon
2005-06-01, 13:28:50
A64@800Mhz

SSE: 147s, FPU: 335s, Sum: 483s

SSE:
VecSize= 128, FP/s(Min,Avg,Max): 2667M, 3595M, 5513M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 1987M, 2409M, 2981M best-case-cache:16kb
VecSize= 512, FP/s(Min,Avg,Max): 1564M, 1718M, 2086M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 1330M, 1378M, 1434M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1060M, 1292M, 1333M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 875M, 902M, 930M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 692M, 706M, 719M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 606M, 612M, 620M best-case-cache:512kb

Aqua

Edit: Denkfehler...

diedl
2005-06-01, 14:18:52
Dothan mit 1,6 GHz,
allerdings wurde (wird) im Hintergrund noch fleißig encodert.

Time SSE: 75s, FPU: 138s, Sum: 213s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 6892M, 7518M, 8270M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 5167M, 5284M, 5471M best-case-cache:16kb
VecSize= 512, FP/s(Min,Avg,Max): 2393M, 3582M, 4052M best-case-cache:512kb
VecSize=1024, FP/s(Min,Avg,Max): 1969M, 2677M, 3423M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 3180M, 3308M, 3446M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 2257M, 2302M, 2336M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 1645M, 1771M, 1829M best-case-cache:1024kb
VecSize=1024, FP/s(Min,Avg,Max): 1402M, 1483M, 1538M best-case-cache:512kb

mfg diedl

Ohne "große" Hintergrundprogramme

Time SSE: 73s, FPU: 134s, Sum: 208s :confused: (Rundung?)
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5513M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 5000M, 5167M, 5962M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 2471M, 3667M, 4173M best-case-cache:512kb
VecSize=1024, FP/s(Min,Avg,Max): 2035M, 2759M, 3525M best-case-cache:1024kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1797M, 2297M, 2667M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 2290M, 2372M, 2486M best-case-cache:512kb
VecSize= 512, FP/s(Min,Avg,Max): 1676M, 1788M, 1823M best-case-cache:1024kb
VecSize=1024, FP/s(Min,Avg,Max): 1443M, 1523M, 1574M best-case-cache:512kb

ScottManDeath
2005-06-01, 14:44:24
AthlonXP 2400+, Palomino Kern, 1GB 266Mhz DDR Ram
Time SSE: 212s, FPU: 252s, Sum: 465s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 4135M, 5513M, 8270M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 1081M, 2268M, 4650M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 841M, 1298M, 3407M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 742M, 946M, 2448M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2756M, 3180M, 4135M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 989M, 1565M, 2214M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 773M, 1024M, 1628M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 680M, 803M, 1348M best-case-cache:256kb

P4 2.8 Ghz im Notebook, 1GB RAM
Time SSE: 90s, FPU: 160s, Sum: 250s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 7518M,11814M,13784M best-case-cache:32kb
VecSize= 256, FP/s(Min,Avg,Max): 2555M, 4604M, 7882M best-case-cache:128kb
VecSize= 512, FP/s(Min,Avg,Max): 1742M, 2907M, 5798M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 1688M, 2241M, 4473M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2953M, 3308M, 3446M best-case-cache:64kb
VecSize= 256, FP/s(Min,Avg,Max): 1929M, 2183M, 2325M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 1250M, 1478M, 1676M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 1197M, 1280M, 1436M best-case-cache:256kb


Ich bin gerade dabei Diplom zu schreiben und beschäftige mich dabei damit die GPU für nicht-Grafikaufgaben zu verwenden. Da mein Prof in seiner Forschungsgruppe Neuronale Netze mit recht rechenaufändigen Algorithmen verwendet, lag es nahe diese mit der GPU zu beschleunigen.

Bei dem, was ich zu beschleunigen versuche, geht es darum, die Distanzen zwischen hochdimensionalen (>1024) Vektoren zu bestimmen. Eingabe sind 2 Arrays dieser Vektoren, jedes Array hat viele (> 1024) Vektoren. Das Ergebnis ist dann eine Matrix mit den Distanzen der Vektoren aus den Arrays untereinander.

Dafür braucht man natürlich eine möglichst effiziente CPU Implementation, damit die Ergebnisse auch verwendbar sind. Ich habe das Ganze mit der FPU implementiert ( zuerst recht unperformant, danach quick & dirty ;)) und war mit meiner 6800GT fixer als die CPU.

Micki hat mir dankenderweise dabei geholfen die CPU Implementation durch den Einsatz von SSE zu beschleunigen um das theoretische maximum zu ermitteln. Dadurch wird es für die 6800 GT schon recht eng...

Wenn es zeitlich passt, mache ich vielleicht noch einen GPU Benchmark für euch zum Testen ;)

whtjimbo
2005-06-01, 18:35:53
mein P4 3.4Ghz Northwood
(nach dem ich die 0ms durch 1ms ersetzt habe):
Time SSE: 43s, FPU: 111s, Sum: 154s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5513M,10338M,82704M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 5962M, 9300M,15001M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 4365M, 6215M, 8944M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 3871M, 4701M, 7266M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2667M, 4864M, 5513M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 2719M, 2943M, 2981M best-case-cache:16kb
VecSize= 512, FP/s(Min,Avg,Max): 2133M, 2199M, 2262M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 1809M, 1833M, 1879M best-case-cache:64kb

FatalError
2005-06-02, 02:50:53
so nun ich Athlon XP 2400+ @2069MHz 512MB SD-RAM 138 FSB
Time SSE: 710s, FPU: 792s, Sum: 1503s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 1969M, 5169M, 6361M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 357M, 1198M, 3780M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 447M, 797M, 2440M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 369M, 568M, 1875M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1560M, 2362M, 2851M best-case-cache:64kb
VecSize= 256, FP/s(Min,Avg,Max): 572M, 1104M, 1722M best-case-cache:128kb
VecSize= 512, FP/s(Min,Avg,Max): 412M, 677M, 1280M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 370M, 512M, 1104M best-case-cache:256kb

micki
2005-06-02, 02:51:23
removed

Gast
2005-06-02, 09:21:01
Meine Vermutung ist, dass der Benchmark auch cache-abhängig ist.

A64m 3000+ 1,8 GHz 1 MB Cache
Time SSE: 91s, FPU: 171s, Sum: 263s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 4352M, 6892M, 9189M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 3633M, 4346M, 5741M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 2166M, 2945M, 3681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 1831M, 2203M, 2768M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 889M, 1923M, 2667M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 1509M, 1697M, 1929M best-case-cache:32kb
VecSize= 512, FP/s(Min,Avg,Max): 1325M, 1395M, 1447M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 1164M, 1200M, 1239M best-case-cache:512kb

micki
2005-06-02, 10:43:21
removed

Gast
2005-06-02, 11:26:22
meinst du mit abhängig noch mehr als die speichergröße (und vielleicht taktung)?

MfG
micki
Taktung der CPU ist auch wichtig, aber auch der Cache mit seiner Größe und seiner Logik hat auch einen großen Anteil daran.
Sieht man z.B. am Celeron-M. Der Takt alleine würde diese Leistung nicht erklären.
Ich habe die Batch-Datei in eine Endlosschleife umgeschrieben und die CPU-Auslastung ist nicht besonders groß.
Windows meldet 15-35% (um die 20% hauptsächlich) und perfwatch 2.2 um die 2% (2-2,5%). Der RAM wird kaum beansprucht.
@Echo off
VecDistAnalyser.exe 30 >> summary.txt
:Start
VecDistAnalyser.exe 30 >> "Null"
Goto Start
Echo on
Pause

Gast
2005-06-02, 11:32:26
Was mir auch gerade einfällt, die Intel CPUs haben im L1+L2-Cache bereich sehr hohe Transferraten, was sich vor allem bei CPU-internen Vektor/SSE/SSE2-Berechnungen positiv auswirkt.

Ich habe es gerade umgeschrieben, und benutze die 1024-Berechnung:
@Echo off
:Start
VecDist_1024_1024_SSE.exe >> "Null"
Goto Start
Echo on
Pause

Laut Windows wird es zu 100% ausgelastet und perfwatch 2.2 meldet um die 30%.

micki
2005-06-02, 12:05:01
removed

micki
2005-06-02, 12:16:34
removed

ScottManDeath
2005-06-02, 14:03:06
Interessant, die Ergebnisse hier sind gut, besonders die Abhähngigkeit von Cachegröße. Da wird es mir schwerer fallen der GPU die überlegene Leistung zuzureden;). Ist aber nicht schlimm, Sinn der Sache ist ja rauszufinden ob es sich lohnt die GPU für diesen Algorithmus lohnt.

Dank an alle die (ge)messen (haben)!

Banshee18
2005-06-02, 14:51:56
Time SSE: 549s, FPU: 674s, Sum: 1223s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5169M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 451M, 1035M, 2642M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 309M, 515M, 1130M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 231M, 365M, 1000M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 2297M, 2297M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 418M, 718M, 1066M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 300M, 429M, 681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 198M, 297M, 551M best-case-cache:256kb


Athlon XP (T-Bred B)@200x10,5 auf einem Abit NF7 Rev. 2.0

Gast
2005-06-02, 14:53:11
der VecDistAnalyser macht nur die auswertung ;) das ist nicht der benchmark, dementsprechend ist es erfreulich dass er nicht 100% auslastung verursacht und trotzdem zum punkt kommt ;D
Woher soll ich das wissen? Ich kenne den Sourcecode nicht. Einen Hinweis gibt es dazu auch nicht. Deswegen sind "Black-Box"-Benchmarks mist, da man überhaupt nicht weiß, wass die messen.
ich weiß nicht genau, was du dadurch erreichen möchtest, dass der benchmark so oft wiederhollt wird, aber dass die auslastung nur bei 30% liegt ist auch kein wunder, denn es wird eine sehr hoche cachegröße angenommen (das gibt die zweite zahl an) und wenn du nicht gerade 16MB cache hast, dann warten die rechenwerke der cpu eigentlich nur aufs ram. schau dir die result.txt an, dort hast du für die VecDist_1024_x_SSE.exe die auflistung der laufzeiten für verschiedene cachegrößen, wenn du die exe startest, die die kleinste laufzeit hatte, dürfte auch die auslastung hoffentlich bei >80% liegen im perfwatch.

wenn ich mich recht erinnere lief bei mir VecDist_1024_16_SSE.exe am schnellsten. dabei wird eine cachegröße von 256KB angenommen, was auch dem entspricht was meine cpu hat.

beim P4 passiert es scheinbar, dass die cachegröße vom L1 cache manchmal sehr viel mehr ausschlaggebend ist als die vom L2 für die performance (entnehm ich jedenfalls den werten), deswegen wird bei leuten mit P4 oft eine optimale größe von 16KB angezeigt.

MfG
micki
Ich wiederhole mich wieder: Woher soll ich wissen, dass die 2. Zahl die Cache-Größe angibt? (Wieder keine Kenntnis über das Programm.) Man hätte es dabeischreiben sollen.
Da ich 1 MB Cache habe, läuft bei mir VecDist_1024_32_SSE.exe am schnellsten. Obwohl der in Schleife läuft, habe ich bei perfwatch 2.2 nur eine Auslastung von 46%. Auf über 80% komme ich nicht.
Das der P4 beim L1-Cache deutlich schneller als beim A64 ist, ist bekannt. Ebenso das L2-Cache. Aber dafür ist beim A64 die Latenz niedriger als beim P4. Hier spielt eher die Bandbreite eine Rolle, da mit Vektoren gearbeiten wird.

Hier die Reihe der besten Programme mit der Auslastung mit Perwatch 2.2 gemessen:
VecDist_128_16_SSE.exe ca. 38%
VecDist_256_8_SSE.exe ca. 55%
VecDist_256_16_SSE.exe ca. 54%
VecDist_512_8_SSE.exe ca. 52%
VecDist_512_16_SSE.exe ca. 47%
VecDist_1024_16_SSE.exe ca. 45%
VecDist_1024_32_SSE.exe ca. 46%

Beim A64 wird es nicht mehr als 55% ausgelastet. Müsste man nur wissen wie es beim Intel und dem A64 Venice ausschaut.

micki
2005-06-02, 16:37:31
removed

LordDeath
2005-06-02, 21:38:42
Athlon Xp 2400+ @ Default + Firefox an und schone idle-Programme, die dennoch gern Cpu-Zeit fressen, wie eMule, Winamp, Outlook usw. Im Systray sinds 13 Stück, in Echt aber mehr!
Time SSE: 372s, FPU: 435s, Sum: 807s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 3759M, 5169M best-case-cache:32kb
VecSize= 256, FP/s(Min,Avg,Max): 630M, 1371M, 2924M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 484M, 755M, 1783M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 392M, 539M, 1116M best-case-cache:128kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1621M, 2067M, 2506M best-case-cache:128kb
VecSize= 256, FP/s(Min,Avg,Max): 582M, 993M, 1457M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 450M, 617M, 1013M best-case-cache:64kb
VecSize=1024, FP/s(Min,Avg,Max): 379M, 464M, 725M best-case-cache:128kb

Celern M 350, 1,3Ghz, Dothan Core + auch einige Sachen im Systray ;)
Time SSE: 126s, FPU: 177s, Sum: 304s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 1060M, 1687M, 2667M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 1351M, 3059M, 4227M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 1303M, 2246M, 3238M best-case-cache:512kb
VecSize=1024, FP/s(Min,Avg,Max): 1102M, 1593M, 2649M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 586M, 725M, 758M best-case-cache:32kb
VecSize= 256, FP/s(Min,Avg,Max): 1291M, 1722M, 1860M best-case-cache:64kb
VecSize= 512, FP/s(Min,Avg,Max): 1243M, 1387M, 1490M best-case-cache:256kb
VecSize=1024, FP/s(Min,Avg,Max): 1058M, 1154M, 1256M best-case-cache:512kb

Gast
2005-06-02, 23:07:32
du kannst das durch erfragen wissen ;)

du kannst das durch erfragen wissen ;)

da es ein automatisiertes system war, das alle resultate usw aufbereitet ausgibt, hielt ich es nicht für nötig die interna zu erklären, aber mit meinem letzten poste hab ich es getan... ich flame dich ja nicht, das war nur eine möglichst ausführliche erklärung.

Darüber hättest du eher informieren oder die Programme nicht beifügen sollen. Achja, dann würde ja das Benchmark nicht laufen. ;)
Das automatisierte System funktioniert nicht richtig, sonst wäre die Belastung deutlich höher als die 30%.
Außerdem, ein automatisierter Benchmark, dass nur paar dutzend/hundert ms läuft, ist eher unzuverlässig.

hast du denn ein programm das >50% auslastung macht laut perfWatch? ich hab hier mal auf nem p4 gebenched und die auslastung lag bei 30% mit fpu und bei 15-30% mit SSE.
Ein Programm, genauer Benchmark, Lastprogramm usw..?
z.B. Toast, der lastet bei mir mit ca. 85-95%, mit High Priority etwas höher:
http://www.benchmarkhq.ru/english.html?/be_cpu.html
Wie er auslastet, ist unklar, da Sourcecode nicht bekannt, aber pass auf. Leute, die ihre Rechner "sicher gedacht" stark übertaktet haben, haben mit dem Programm ihre CPU verkohlt. ;)
Mittlerweile benutzen die Leute bessere WLP und Kühler, was dann seltener eintritt.

wenn du willst, bau ich dir noch ne version die auf timecritical läuft, vielleicht ist die auslastung dann besser.

MfG
micki
Brauchst du nicht. Nur sollte man sich im klaren sein, dass nur optimierte Programme auf einer speziellen CPU am Besten laufen.

Black-Scorpion
2005-06-02, 23:28:56
xp3000+ (2100MHz) + Programme und Surfen ;)
Time SSE: 549s, FPU: 674s, Sum: 1223s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5169M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 451M, 1035M, 2642M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 309M, 515M, 1130M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 231M, 365M, 1000M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 2297M, 2297M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 418M, 718M, 1066M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 300M, 429M, 681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 198M, 297M, 551M best-case-cache:256kb

micki
2005-06-03, 02:20:56
removed

Gast
2005-06-03, 02:50:16
die belastung ist eigentlich 100%, dass 30% angezeigt werden kann zwei gründe haben. wenn du mit dem taskmanager schaust, dann mißt er vielleicht ein intervall das 3mal länger ist als die laufzeit des programmes, dadurch hat er nur in 30% des intervalles 100% auslastung und zeigt das mit 30% an. dass Perfwatch meint die cpu würde nur zum bruchteil ausgelastet liegt wohl schlichtweg daran, dass die inputdaten 2*16MB haben und es nicht möglich ist für den benchmark alles im cache zu haben, es ist nunmal kein synthetischer benchmark sondern realworld, dort tretten diese speichermengen auf (sie sind laut Scottmandeath sogar die mindestgrößen). dass die cpu dann zu irgendeiner zeit daten nachlädt und während dessen wartet wie perfwatch meint, kann man nicht ändern, esseiden 1. die cpu bekommt nen größeren cache 2. der speicher wird viel schneller oder die cpu wird so uneffektiv dass der speicher das schnellste am ganzen system ist ;).
ich weiß aber auch nicht genau wie perfwatch die auslastung mißt, denn ich benutze ja hauptsächlich die floatingpoint units, die alu(integer) ist außer zum indizieren und loopcounting unbelastet, das könnte man als 50% auslastung der cpu im optimalfall sehen (vielleicht 5% mehr weil die alu ja nicht ganz untätig ist).
Es gab mal einen Thread dazu:
http://www.forum-3dcenter.de/vbulletin/showthread.php?t=202507
Während der Taskmanager die gesamte Auslastung der CPU inkl. der RAM Lese-/Schreib-werten anzeigt (CPU muss warten), misst Perfwatch die interne Auslastung der Einheiten.

Dazu Homepage:
http://www.withopf.com/tools/perfwatch/
Um die Auslastung zu ermitteln, bedient sich PerfWatch der "Performance Monitoring Unit" (PMU) des Prozessors. Beim Pentium 4 zählt das Ereignis "Uops Retired", beim Athlon, Duron und Opteron das Ereignis "Retired Ops", beim Itanium und Itanium 2 das Ereignis "Retired IA-64 Instructions" abzüglich "Retired NOP Instructions" und bei XScale-Prozessoren "Instruction executed".

es wird wohl ne art numbercrunching gemacht denk ich mir, bei dem nichts vom speicher geladen wird, sowas ist zwar in realworld möglich, aber sehr selten, da 1. meißtens die cpu daten verarbeiten muss (die datenverarbeitung macht mehr aus als das blosse rechnen). 2. wenn man einen algorithmuss hat, der die cpu 100% auslastet und das ram nicht ausnutzt, wieso sollte man dann nicht ein paar berechnungen als LUT ins ram stopfen? dadurch wird vielleicht die cpu auslastung weniger, aber die gesamt laufzeit wird gesenkt. ein gutes beispiel dafür wäre das Sieb des Eratosthenes, das die speicherlast gegen rechenlast tauscht, aber insgesammt dann schneller ist als bruteforce numberchrunching (hier im programmierforum gab es dazu einen sehr langen thread, in dem hab ich auch die werte für meinen assembler code zu primzahl bestimmung der wirklich sehr optimiert ist was cpuauslastung betrifft).
Was der genau macht ist unklar, aber mit dem Teil wird die CPU heiß, also lastet es gut aus.

tja, die programme sind sehr optimiert, von dem ursprünglichen >240sekunden für die 1024-element vectoren(/quadctoren;D) ist es nun auf <6sek. und da jede cpu natürlich anders ist, hab ich eben ziemlich viele cachegrößen getestet, was beim dothan core hier ja mit einer cachegröße von 1024kb gute ergebnisse lieferte und manchmal beim p4 mit einer cachegröße von 16kb
Dann hast du gute Arbeit gemacht. Aber Optimierungen sind eine eigene Sache, da hier die Architektur von unterschiedlichen P4, PM und A64 jedesmal große Unterschiede geben kann.

es wird also eigentlich jeder cpu gerecht denk ich mir. die berechnungen sind an sich nicht mehr durch besseren code optimierbar aus meiner sicht.

MfG
micki
Programmtechnisch ja, aber den großen Rest erledigt der Compiler. Es sei denn, du hast direkt in Assembler programmiert.

mfg

sun-man
2005-06-03, 08:16:46
Time SSE: 549s, FPU: 674s, Sum: 1223s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5169M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 451M, 1035M, 2642M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 309M, 515M, 1130M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 231M, 365M, 1000M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 2297M, 2297M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 418M, 718M, 1066M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 300M, 429M, 681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 198M, 297M, 551M best-case-cache:256kb


Keine Ahnung, bei mir schmiert das am Ende sang und klanglos ab "...hat ein problem festgestellt" und dann ist Ende. Kann nicht beurteilen ob die Ergebnisse hin kommen?
Inhell 2.8@3.6 und ne Standard 6800GT. Kann nachher meinen Centrino mal knechten (1.7 und irgendso ein Intelstandardgrafikset).

MFG

sun-man
2005-06-03, 09:30:04
Centrino 2MB Cache
Time SSE: 549s, FPU: 674s, Sum: 1223s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5169M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 451M, 1035M, 2642M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 309M, 515M, 1130M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 231M, 365M, 1000M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 2297M, 2297M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 418M, 718M, 1066M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 300M, 429M, 681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 198M, 297M, 551M best-case-cache:256kb
Time SSE: 76s, FPU: 132s, Sum: 209s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 2756M, 5169M, 8270M best-case-cache:32kb
VecSize= 256, FP/s(Min,Avg,Max): 5167M, 5741M, 5813M best-case-cache:16kb
VecSize= 512, FP/s(Min,Avg,Max): 2092M, 3599M, 4378M best-case-cache:512kb
VecSize=1024, FP/s(Min,Avg,Max): 1799M, 2635M, 3696M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1181M, 2756M, 4135M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 2447M, 2473M, 2583M best-case-cache:1024kb
VecSize= 512, FP/s(Min,Avg,Max): 1619M, 1878M, 1966M best-case-cache:1024kb
VecSize=1024, FP/s(Min,Avg,Max): 1373M, 1542M, 1655M best-case-cache:1024kb

Gast
2005-06-03, 10:36:53
Centrino 2MB Cache
Time SSE: 549s, FPU: 674s, Sum: 1223s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 5169M, 5513M, 5513M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 451M, 1035M, 2642M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 309M, 515M, 1130M best-case-cache:128kb
VecSize=1024, FP/s(Min,Avg,Max): 231M, 365M, 1000M best-case-cache:256kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 2235M, 2297M, 2297M best-case-cache:8kb
VecSize= 256, FP/s(Min,Avg,Max): 418M, 718M, 1066M best-case-cache:256kb
VecSize= 512, FP/s(Min,Avg,Max): 300M, 429M, 681M best-case-cache:32kb
VecSize=1024, FP/s(Min,Avg,Max): 198M, 297M, 551M best-case-cache:256kb
Time SSE: 76s, FPU: 132s, Sum: 209s
SSE:
VecSize= 128, FP/s(Min,Avg,Max): 2756M, 5169M, 8270M best-case-cache:32kb
VecSize= 256, FP/s(Min,Avg,Max): 5167M, 5741M, 5813M best-case-cache:16kb
VecSize= 512, FP/s(Min,Avg,Max): 2092M, 3599M, 4378M best-case-cache:512kb
VecSize=1024, FP/s(Min,Avg,Max): 1799M, 2635M, 3696M best-case-cache:512kb
FPU:
VecSize= 128, FP/s(Min,Avg,Max): 1181M, 2756M, 4135M best-case-cache:16kb
VecSize= 256, FP/s(Min,Avg,Max): 2447M, 2473M, 2583M best-case-cache:1024kb
VecSize= 512, FP/s(Min,Avg,Max): 1619M, 1878M, 1966M best-case-cache:1024kb
VecSize=1024, FP/s(Min,Avg,Max): 1373M, 1542M, 1655M best-case-cache:1024kb
Diesen Effekt habe ich auch beobachtet. Beim ersten Mal ist es langsam und beim 2. Mal sehr schnell. Vermute, dass es an Windows XP liegt.