| |
|
|
- Seite 1 - |
|
Julian Schmidt | Hey, weiß hier jemand wie man relativ leicht rausbekommt wieviele Flops(Floating Point Operations Per Second) ein Prozessor hat. Meine damit keinen theoretischen Wert, sondern einen im Laufenden-Betrieb ermittelten Wert.
LG
Julian |
|
|
| |
|
|
|
| |
|
- Seite 3 - |
|
Julian Schmidt | iF (29.03.13)
Es wird die Geschwindigkeit von FPU-Operationen gemessen, die von der CPU an die FPU angewiesen werden.
Und für den Dau.
iF (29.03.13)
Was kommt denn bei Dir raus? Vlt. kann man das ja hiermit vergleichen:
170GFlops mit der oberen Rechnung.
Ansonsten
170 * 8 * 4 = 5440 465 * 4 * 3,4 = 6324 |
|
|
| |
|
|
|
| Öhm ich bezweifle erstmal dass bei Dir 170GFlops gemessen werden, zum Vergleich erreicht mein I7 danach grad mal 465MFlops. |
|
|
| |
|
|
|
Julian Schmidt | Stimmt sind 170MFlops. Mein Fehler. |
|
|
| |
|
|
|
Julian Schmidt | Noch bei der Sache oder hat sich das Thema für dich erledigt? |
|
|
| |
|
|
|
E.T. | Vlt. isses ja ein Flop mit den Flop's |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 30.03.2013 ▲ |
|
|
|
|
| >> wieviele Flops(Floating Point Operations Per Second) ein Prozessor hat
Die gepostete Funktion misst, wieviele FlOps der Prozess abrufen kann. Dabei ist natürlich zu bedenken, was genau dieser Wert überhaupt wiederspiegelt, auch weil das Messprogramm von einem OS angewiesen wird, dass nebenher andere Prozesse ablaufen lässt und bei Mehrkern-Prozessoren die Last auch verteilt.
Ich würde den Wert daher eher nicht mit der Anzahl der Kerne multiplizieren sondern ihn so lassen und weiterverarbeiten wie er ist, da er wiederum gut wiederspiegelt, was ein normaler Windows-Prozess maximal abrufen könnte.
So wäre der Wert zum Vergleich von Prozessor je Windows-Versionen geeignet. |
|
|
| |
|
|
| |
|
- Seite 4 - |
|
|
| Nu was draus geworden? oO |
|
|
| |
|
|
|
| Nu was ( [...] ) draus geworden? oO |
|
|
| |
|
|
|
Julian Schmidt | Jup, habs mal auf verschiedenen Rechner laufen lassen. Ergibt sich kein Vergleich zu anderen Benchmarks. |
|
|
| |
|
|
|
| Ich schätze dass das daran liegt, dass andere Tests Ergebnisse per Mischkalkulationen herbilden. Die Frage wieviele Flops eine normale Windows- User-APP absetzen kann beantwortet die Funktion imho ganz richtig. |
|
|
| |
|
|
|
p.specht
| Kleiner Bench bzgl. FLOPS ===================== {$clq} goto "AA" CC: t&=&gettickcount e!=mult(n&,r!,p!,q!) t&=&gettickcount-t&
print format$("#0.0000",4*n&/(t&+10^-35)),"kFLOPS",format$("%g",e!-r!)
waitinput 1 case %key=27:end case %csrlin>26:locate 1,1 BB: goto "CC"
AA: cls font 2 var p!=pi() var q!=1/pi() var r!=exp(1) var n&=100000000 'anhängen für xpse var e!=exp(1) declare t& goto "BB"
'proc mult ' Interpreter, ProfComp.exe nproc mult parameters n&,r!,p!,q! whileloop n& r!=p!*q!*r!*q!*p! endwhile return r! endproc
/* Ergebnisse: Legende zu den nachfolgenden Daten:
Alle Testwerte beziehen sich auf 1 Kern! 1.: Wert für Interpreter (kFlops) 2.: Profan-Compiler (kFlops) 3.: nProc MFlops 4.: xpia/JWasm (MFlops) 5.: Sonstiges, Anmerkungen wie 'SSE4.2 benutzt' etc. TESTKANDIDATEN ============ A: Laptop Medion Akoya E6220 mit P6000 2-Core CPU 1,87 GHz/4GB, Win64-SP1/Profan11.2a(32bit): 83 / 342 / 107 / 111 (Basisregister+FPU)
B: Desktop Medion Akoya M5432 / i7-Quadcore 2.83 GHz /4 GB, Win64-SP1/Profan11.2a(32bit): (Test läuft)
C: ... */ |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 29.08.2013 ▲ |
|
|
|
|
| Mit dieser Testformel erzeugst Du imho mehr Overhead als FPOps.
Deshalb hatte ich hiermit:
iF (29.03.13)
iF (29.03.13)@Julian: So, gehts mir jetzt wieder besser - habe Dich nicht vergessen... Hier ein Code der ein 32-Bit-Opcode erzeugt der 250 mal 1.000.000 FPU Befehle anweist: Download externer Download {$cleq}
cls
print flopsTest(1000000,250,57.29577951308232087)
waitinput
end
flopsTest(long opcodeOpsC,enumC,float theFloatValueToTestWith){
long opcode=genFPUOpcode(opcodeOpsC,theFloatValueToTestWith)
long tme=getTickCount
whileLoop enumC { call(opcode-7) }
tme=getTickCount-tme
globalFree(opcode)
return tme
}
nProc genFPUOpcode(long opcodeOpsC,float theFloatValueToTestWith){
mul opcodeOpsC,2
long floatVal=dim(8)
setFloat(floatVal,0,theFloatValueToTestWith)
long opcode=dim(8+opcodeOpsC)
setByte(opcode,0,$B8)//mov eax
setLong(opcode,1,floatVal)
setByte(opcode,5,$DD)//fld ptr eax
setByte(opcode,7+opcodeOpsC,$C3)//ret0
add opcode,7
whileLoop 0,opcodeOpsC-1,2 {
setByte(opcode,loop,$DC)
if rnd(2) {
setByte(opcode+1,loop,$30)
} else {
setByte(opcode+1,loop,$08)
}
}
return opcode
}
Mein Computer rechnet danach 250.000.000 Gleitkommawerte in 538ms. Den ersten Parameter bei flopsTest nicht höher als 1mio setzen da die Funktion sonst zu groß würde.
reine FLOps als Opcodes in einen Bereich geschrieben und ein Call drauf abgesetzt damit man eben nicht auch noch reine CPOps mitmisst. |
|
|
| |
|
|