| |
|
|
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 |
|
|
| |
|
|
|
ByteAttack | |
|
| |
|
|
|
| Rechnung einfach inne nProc packen und absenden, würde ich jetzt mal schätzen. |
|
|
| |
|
|
|
Julian Schmidt | Ja und wie finde ich raus wieviele CPU-Instruktionen der Prozessor pro Zyklus hat?
Brauch zur Berechnung ja (CPU-Takt in GHz × Anzahl der Kerne × CPU-Instruktionen pro Takt) / 1000 |
|
|
| |
|
|
|
| Na messen!
Einen ASM-Code schreiben und die Anzahl der darin enthaltenen CPU- Instruktionen zusammenrechnen und dann getTickCount.
Sowas wie Takt und Kernanzahl bekommst prozessorherstellerübergreifend nicht immer einfach raus, würde ich zunächst mit WMI (WMICodeCreator.exe) suchen.
Was möchtest letztendlich erzielen? |
|
|
| |
|
|
|
Julian Schmidt | Wollte eig. ein kleines Prog schreiben um die Rechenkraft von Prozessoren der gleichen Architektur vergleichen zu können.
Über WMI bekomme ich über root\CIMV2, Win32_ComputerSystem, NumberOfLogicalProcessors die Kerne. Und NumberOfProcessors die Anzahl der CPU's heraus. Die Taktung per root\CIMV2, Win32_Processor, MaxClockSpeed. Und dort ebenfalls die Herstellerbezeichnung.
iF (21.03.13)
Einen ASM-Code schreiben und die Anzahl der darin enthaltenen CPU- Instruktionen zusammenrechnen und dann getTickCount.
Wie meinst du das genau? |
|
|
| |
|
|
|
| Opcodes (z.B. diese 32Bit) [...] in einen Bereich schreiben und dann Call auf den Bereich und schon führt Kernel den Opcode zumindest halbwegs unangetastet dem Prozessor zu. Das wäre dann eine Fleißarbeit und Kenntnisse zum Thema ASM wären schon hilfreich, am Ende der Proc einfach den ret-Opcode damit das Call wieder an richtiger Stelle zurückkehrt. |
|
|
| |
|
|
|
Julian Schmidt | Hab leider keine Kenntnisse in ASM.
Hab mir kurz angeschaut was Opcode meint. Auf Wikipedia[...] steht hier zu
Ein Opcode ist eine Zahl, die die Nummer eines Maschinenbefehls für einen bestimmten Prozessortyp angibt. Jedem Opcode wird ein kurzes Wort oder eine Abkürzung, ein so genanntes Mnemonic, zugeordnet. Mit den Mnemonics ergeben sich die Assemblersprachen.
Versteh nicht ganz warum man in diesen Fall Operationen als Opcode ausführen muss. Die einzige logische Erklärung die mir einfällt ist, dass keine Mnemonic vorhanden sind über die ich den Opcode direkt absetzen könnte? Und das man gezielt einzelne Operationen ausführen muss. Erklär mir das mal bitte. |
|
|
| |
|
|
|
| Hab grad sowas wie einen Hexenschuss, melde mich dazu wieder wenn ich wieder sitzen kann. |
|
|
| |
|
|
|
ByteAttack | Das Ganze ist Obsolet! Die Rechenleistung eines Prozessors, sagt im entferntesten NICHTS aus, über die Leistung eines Computers !!! Beispiel: Core 2 Duo mit 2 GB RAM, wovon 128 MB 'abgezwackt' werden für die interne Grafikkarte auf dem Mainboard. Core 2 Duo 2 GB RAM mit separater Grafikkarte... Oder auch Assembler: X6 - Sechs Prozessorkerne, wovon 5 effektiv genutzt werden, und der sechste Kern nur als 'Befehlswarteschlange' dient. Damals war man Stolz einen Co-Prozessor zu haben. Nun denkt man - Das gibt es nicht mehr... FALSCH - Der mathematische Co-Prozessor ist nach wie vor da, bloß das er mittlerweile in dem Prozessor mit integriert ist. Man muß hierbei nur die richtige Registeradresse ansprechen, und die ist vom Hersteller zu Hersteller unterschiedlich. (Ein paar wenige werden sich an Cyrix erinnern) Um die Leistungsfähigkeit eines Computers zu bewerten, ist es absolut erforderlich ALLE Komponenten zu testen. Das geht los, mit der CPU, RAM, Grafikkarte, Festplatte... etc... Auch wenn meine CPU 1.000.000 TerraGigaMega Flops hat, und ich aber eine S3-Grafikkarte mit 128 MB habe bringt es gar nichts.... |
|
|
| |
|
|
|
Julian Schmidt | Ich weiß das man so imho nicht vergleichen kann welches System das schnellere ist. Nicht nur unter dem Aspekt das man dadurch keinen Vergleich über die Leistung eines Computers bekommt. Es ist auch so, das die Flops keine Aussage darüber machen wie gut die Anwendungen den Prozessor tätsächlich ausnutzen können. So kann es sein das ein DualCore-Prozessor mit der Taktung von 3,3 Ghz den selben Flop hat wie ein QuadCore-Prozessor mit der Taktung von 1,7 Ghz. Und dennoch der DualCore-Prozessor mangels Multi-Thread-Applikationens mehr Rechenleistung bringt.
Mir geht es bei der ganzen Sache nur darum einen Richtwert zu bekommen auf welchen Prozessor man welche Anwendung am Besten ausführt. Bei manchen Anwendungen kann man in der Tat auf die Flops schauen. |
|
|
| |
|
|
|
ByteAttack | Siehst Du! Und schon (tut mir leid) ist wieder ein Denkfehler dabei. Ich geb Dir ein Beispiel: Ich habe z.B. Autodesk 3DS MAX und AutoCAD bei mir laufen. Beides sind sehr rechenintensive Anwendungen. Bei MAX nutzt das Programm auch die Grafikkarte zum berechnen, bei CAD eben nicht.... Hoffe Du weißt, worauf ich hinaus will... |
|
|
| |
|
|