Neulich wurde ich im IRC gebeten, einen etwas "intensiveren" Benchmark auf Basis des x264 Video Encoders zusammenzubasteln, was ich nun hiermit getan habe. Funktionieren sollte der Bench auf Windows 2000 und höher, mit einem kleinen Trick der weiter unten beschrieben ist auch auf Win98/Me. Inoffiziell ist das Ausführen auch auf MacOS X / BSD / Linux und anderen UNIX Maschinen sowie auf Haiku OS möglich.
Der Benchmark bedient sich des Films Elephants Dream, sowie einiger Tools, die unter diversen OpenSource Lizenzen stehen.
Der Videostream mißt satte 668 MiB, und muß erst einmal heruntergeladen werden. Entsprechend langsame Downloads bitte ich zu entschuldigen. Dazu gibts ein ZIP Archiv, in dem die Tools und das Benchmarkscript liegen. User mit einer Nettobandbreite von unter 400 kiB/s würde ich bitten von Mirror 0 (mein Server XIN.at) zu saugen, User mit mehr Bandbreite wollen vielleicht auf CryptonNites, Blacktrons oder Crackys Mirror 1/2/3 ausweichen, die mehr Bandbreite besitzen (Danke an [CryptonNite], [Blacktron] und [Cracky] für die Bereitstellung der Mirror!):
Offizielle und gültige Builds, sowie die benötigte Videodatei:
Elephants Dream Test-Videostream für Benchmarkzwecke (~668 MiB) und x264 Benchmarktools für Windows (~6 MiB):
- Mirror 0: [Benchmarkvideo], [Benchmarktools] (1 MiB/s, hosted von GAT)
- Mirror 1: [Benchmarkvideo], [Benchmarktools] (10 MiB/s, hosted von CryptonNite)
- Mirror 2: [Benchmarkvideo], [Benchmarktools] (100 MiB/s, hosted von Blacktron)
- Mirror 3: [Benchmarkvideo], [Benchmarktools] (10 MiB/s, hosted von Cracky)
Update 2023-01-23: !!! WICHTIGER HINWEIS FÜR WINDOWS 11 NUTZER !!!
Aktuelle Microsoft Updates haben das cmd.exe Terminal bei der Ausführung von Batch Skripten hochgradig destabilisiert, womit aktuell kaum mehr ein stabiler Betrieb möglich ist. Um das zu umgehen, muß ich Nutzer ersuchen, die PowerShell auszuführen, und das Benchmarkskript darin manuell auszuführen! Man wechsle zuerst in den Benchmarkordner, wo die Datei launch_x265benchmark.bat liegt, z.B.: CD /D X:\benchmarks\x265benchmark\ und führe den Benchmark dann aus: .\launch_x265benchmark.bat. Eine bessere Lösung liegt mir derzeit leider nicht vor.
Danke an Torsten für das Melden des Fehlers und für die Unterstützung bei der Fehlersuche.
Um den Benchmark zu starten, entpackt man einfach das Archiv x264benchmark.zip, und legt die Datei elephantsdream_source.264 dazu. Danach führt man einfach die Datei launchbenchmark.bat aus! Das Ergebnis liegt nach Abschluß in der Datei RESULTS.TXT bereit, auf die man im Konsolenfenster extra hingewiesen wird, wenn der Durchlauf beendet ist.
Prüfsummen für das Benchmarkvideo:
- SHA512: 379a1833354605bb35f62ef864885e62d6eec8d8303925f8a48ead3fbd574d462f0beb3dccb77a6fde6e2320c3cba5eea5802bb335920ad2c83f8295f6c37575
- SHA1: c01a9ab76dfe267a50998280ec3800049ca68a4b
- MD5: 7b7e40610d94e2a6c2eefb231845ddb7
Prüfsummen für das ZIP Archiv mit den Benchmarktools:
- SHA512: 18f50a9d7422a93e0d813986d0703109a98d4df817a3c1474105132d909e49a62e86e25117a1b33ce5c4aefe913ae8ef16ae52a707804ad55898316c9a65b2d9
- SHA1: 0c108c80962e68a9d0768258e2016bdb83f35fe8
- MD5: 7e10d5cd34446638e4cab995eb63a5fa
Prüfsummentools für Windows (Extrahiert aus CygWin, GPL Lizenz):
- [SHA512 Tool] (Aufruf: sha512sum.exe <zieldatei>)
- [SHA1 Tool] (Aufruf: sha1sum.exe <zieldatei>)
- [MD5 Tool] (Aufruf: md5sum.exe <zieldatei>)
Inoffizieller Sourcecode (für Selbstbau auf Linux etc., die Videodatei oben muß dennoch heruntergeladen werden!):
- libavcodec/lavf Sourcecode --- [Link] (wird für eigene Kompilate auf Betriebssystemen wie MacOS, BSD oder Linux benötigt, um den H.264/AVC Input zu lesen).
- x264 Sourcecode --- [Link] (MacOS X + xcode / BSD / Linux etc., muß gegen libavcodec/lavf linked werden!).
- Bash Script --- [Link] (zum korrekten Ausführen des Benchmarks unter einer BASH wie etwa auf Linux/BSD vorzufinden. Script mit "time" vorangestellt ausführen, um ein Resultat zu erhalten, Videodatei sollte im selben Order liegen!)
- [Detaillierte Anleitung zum Kompilieren und Installieren des Benchmarks unter Linux] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
Die ZIP Datei wäre bitte einfach im selben Ordner zu entpacken, wo auch elephantsdream_source.264 liegt. Danach reicht ein Doppelklick auf das Script launchbenchmark.bat, und der Leistungstest wird ausgeführt.
Minimalanforderungen:
- CPU mit SSE/MMX2 Befehlssatz
- 1GB RAM
- 3GB freier Festplattenspeicherplatz
- Windows 2000
Windows 98/98SE/Me:
Das Benchmarkskript, mit dem der Benchmark ausgeführt wird ist unter Win9x nicht lauffähig. Um dem Abhilfe zu schaffen, hat CryptonNite mein ursprüngliches Skript abgewandelt und Win9x kompatibel gemacht. Um den Benchmark also unter 9x auszuführen, sollte es genügen statt der in den Tools befindlichen launchbenchmark.bat diese abgewandelte launchbenchmark_9x.bat auszuführen, dazu muß das Batch File natürlich im selben Ordner liegen, wie der Rest der Benchmarkdateien:
Ein mit diesem abgewandelten Skript ermitteltes Ergebnis behält seine volle Gültigkeit!
SSE/MMX2-lose CPUs unter MS Windows, sowie Windows NT 4.0 Unterstützung:
Solltet ihr die Minimalanforderungen im CPU-Sektor unterschreiten, ist die Referenzversion nicht mehr lauffähig. Um dem Abhilfe zu schaffen, habe ich einige spezielle Kompilate vom Sourcecode gebaut, die auch auf älteren CPUs lauffähig sind. Weitere Kompilate können auf Anfrage angefertigt werden, allerdings mache ich das nur für x86 CPUs, die noch kein SSE bzw. MMX2 unterstützen!
Zudem war es für die Unterstützung von Windows NT 4.0 ebenfalls nötig, neue Binaries zu kompilieren, da die offiziellen Funktionen von Windows 9x/2000 nutzen, die unter NT 4.0 nicht verfügbar sind. Diese sind für CPUs mit wie auch ohne SSE verfügbar.
Vorsicht ist hier allerdings geboten, diese Versionen sind allesamt nicht auf Win9x/Me lauffähig! Der Test von 686er Prozessoren ohne SSE ist damit auf Win9x/Me zum gegebenen Zeitpunkt leider nicht möglich. Danke an [Cyberhawk], der das Problem [entdeckt] hat.
Hier die Builds:
- [GATs Win32 x264 Build für i686 (Pentium PRO, Pentium II MMX)] (optimiert für Leistung)
- [GATs Win32 x264 Build für AMD K7 (Athlon, Athlon Thunderbird inkl. 3DNow!)] (optimiert für Leistung)
- [GATs Win32 x264 Build für i686 (Pentium PRO, Pentium II MMX)] (optimiert für Binarygröße, nicht empfohlen)
- [GATs Win32 x264 Build für AMD K7 (Athlon, Athlon Thunderbird inkl. 3DNow!)] (optimiert für Binarygröße, nicht empfohlen)
- [herings Win32 x264 Build für i686 (Pentium PRO, Pentium II MMX), optimiert für Pentium PRO]
Windows NT 4.0 Builds:
- [Build für Windows NT 4.0, für 686 Prozessoren mit SSE]
- [Build für Windows NT 4.0, für 686 Prozessoren ohne SSE]
Diese Versionen sind einfach über den bestehenden Benchmark zu kopieren, dabei ist die bestehende x264.exe zu ersetzen. Die beiliegenden DLLs entstammen einer CygWin Distribution (GPL Lizenz) und werden für die Ausführung dieser Binaries zwingend benötigt.
MacOS X auf Intel:
- Viper hat mich darauf aufmerksam gemacht, daß man mithilfe des Package Managers "brew" auf MacOS X sehr leicht den x264 Source saugen, kompilieren und installieren kann, fix-fertig gegen die nötigen libav Libraries linked. Das funktioniert wie folgt auf einem Terminal:
- curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local
- brew install wget
- brew install git
- brew update
- brew install x264
- Blacktron hat einen Weg gefunden, der den [yasm] Assembler, [xcode] und [git] voraussetzt, aber dafür ffmpeg statt libav für den Inputfilter kompiliert & installiert, und x264 gleich dazu! Nachdem man das yasm+git+xcode Trio auf dem System hat, genügt ein Ausführen des [hier beschriebenen Skriptes], um ein x264+ffmpeg zu bauen, welches den Benchmark ausführen kann! Danach genügt eine Ausführung des weiter oben verlinkten Bash Skriptes, welches im selben Verzeichnis wie die Datei elephantsdream_source.264 liegen sollte.
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter MacOS X auf Intel] (basiert z.T. auf Blacktrons Recherchen. Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on MacOS X on Intel] (partially based on Blacktrons research. Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
MacOS X auf PowerPC:
Dank FS03, welcher mir Teamviewer Zugriff auf seinen PowerMac G5 gewährt hat, ist es mir nun gelungen, auch eine Anleitung für MacOS X auf PowerPC zu verfassen:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter MacOS X auf PowerPC] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guilde for compiling and installing the x264 benchmark on MacOS X on PowerPC] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
Haiku:
- Nach einiger Arbeit ist es mir nun gelungen, x264 auch auf Haiku (BeOS) zu portieren:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter Haiku] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on Haiku] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
OpenSolaris 11:
- Daß ein Unix noch schlimmer / schwerer sein kann, als ein so völlig fremdartiges BeOS System wie Haiku mag man nicht glauben, stimmt aber trotzdem. Das hat einiges an massiver Hackerei erfordert, aber x264 ist nun auch auf OpenSolaris einsatzfähig, wenn man etwas Zeit hat und sich von ein paar Modifikationen nicht aufhalten läßt:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter OpenSolaris 11] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on OpenSolaris 11] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
Oracle Solaris 11.2:
- Nachdem OpenSolaris eingestampft und in Oracles Betriebssystem eingegliedert wurde, soll hier nun auch eine Anleitung für Oracle Solaris nachgereicht werden. Die Installation von modernem libav+x264 auf Oracle Solaris 11.2 gestaltet sich sogar etwas einfacher als es vor Jahren noch auf OpenSolaris 11 der Fall war:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter Oracle Solaris 11.2] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on Oracle Solaris 11.2] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
NetBSD 6.0 RC2:
- Ältere FreeBSD und OpenBSD Systeme leiden ja leider unter Problemen mit dem GNU portable Assembler, womit ein zufriedenstellender Bau des x264 Benchmarks unmöglich wird. Auf NetBSD hingegen ist es gelungen, die Software sauber zu bauen. Erfrischenderweise fallen die nötigen Modifikationen unter NetBSD relativ gering aus:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter NetBSD 6.0 RC2] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on NetBSD 6.0 RC2] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
OpenBSD 5.4 - 5.5:
Ältere OpenBSD Versionen ermöglichten es aufgrund von fundamentalen GNU Assembler Problemen kaum, ordentliche x264 Builds herzustellen, ab 5.4 allerdings wird das sauber möglich:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter OpenBSD 5.4 - 5.5] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on OpenBSD 5.4 - 5.5] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
DragonFly BSD 3.0.2:
- Neben den drei großen BSDs ist DragonFly BSD wohl eher eine Randerscheinung. Dennoch ist der x264 Bau hier ähnlich gut möglich wie auf NetBSD, die von früheren FreeBSD und OpenBSD her bekannten Probleme wird man hier vergeblich suchen! Auch der Aufwand für einen erfolgreichen Bau ist kaum größer als z.B. auf NetBSD:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter DragonFly BSD 3.0.2] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on DragonFly BSD 3.0.2] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
PC-BSD 9.1:
PC-BSD basiert eigentlich auf FreeBSD, wo der Bau des Benchmarks bislang noch nicht gelungen ist. Auf PC-BSD hingegen klappt das, wenn auch wieder unter Einsatz einiger für den Benchmark allerdings unkritischer Workarounds:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter PC-BSD 9.1] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on PC-BSD 9.1] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
FreeBSD 9.2:
- So, nun hat es auch endlich mit FreeBSD >=9.2 geklappt:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter FreeBSD 9.2] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on FreeBSD 9.2] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
Debian GNU/Hurd 0.3:
- Auch das nach FSF-Konzept komplett freie GNU/Hurd ist mit dabei:
[Detaillierte Anleitung zum Kompilieren und Installieren des x264 Benchmarks unter Debian GNU/Hurd 0.3] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for compiling and installing the x264 benchmark on Debian GNU/Hurd 0.3] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
ReactOS:
- Der Gedanke eines 100% Windows-kompatiblen, freien und quelloffenen Betriebssystems klingt verlockend. Genau das will ReactOS sein, mit einem NT5.x Style Kernel (Win2003), Win32 Userland und sogar einer DirectX 9 Portierung namens "ReactX". Leider plagen das Betriebssystem noch viele Kernel Bugs, sodaß der Einsatz einer bestimmten Version für einen stabilen Test nötig wird. Zudem braucht es noch eine kleinere Modifikation am Benchmarkskript. All das wird in folgender Anleitung gezeigt:
[Detaillierte Anleitung zum Installieren des x264 Benchmarks unter ReactOS] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for installing the x264 benchmark on ReactOS] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
FreeDOS:
- Dank der [Portierungsarbeit] von RayeR gibt es nun tatsächlich eine x264 Version für DOS. Diese unterstützt zwar keinerlei SSE Einheiten und natürlich auch nur einen Kern, lauffähig ist der Benchmark damit aber z.B. auch unter FreeDOS 1.1, wie hier gezeigt:
[Detaillierte Anleitung zum Installieren des x264 Benchmarks unter FreeDOS 1.1] (Edit 2022-06-21: Warnung! Stark veraltet und wie gezeigt nicht mehr anwendbar!)
[Detailed guide for installing the x264 benchmark on FreeDOS 1.1] (Edit 2022-06-21: Warning! Deprecated and no longer applicable as described!)
Microsoft Windows (2000 - 11):
- Auf Wunsch von Gold Leader soll hier nun auch eine Anleitung für Anwender von Microsoft Windows stehen, da die Nutzung des x264 Benchmarks im Vergleich zu gängigerer Software auch nicht unbedingt so glatt von der Hand geht:
Sobald der Benchmark durch ist, schreibt er eine Datei RESULTS.txt im selben Ordner, wo die Zeit, die der Durchlauf benötigt hat festgehalten wird. Weiters meldet er nach Ende des Tests folgende Ausgabe im Shellfenster:
"Das Ergebnis findet sich nun in der Datei "RESULTS.txt"!===The Results are now to be found in the file "RESULTS.txt"!"
Dieses Ergebnis kann z.B. so aussehen, wie im Falle meines i7 980X, auf dem ich grade mit etwas Zusatzlast nebenher getestet habe:
Das wären also 1 Stunde, 15 Minuten und 47 Sekunden. Der Test nutzt auch mehrere Hyperthreads und/oder CPU Kerne, falls vorhanden. Weiters sollte schon 1GB RAM im System stecken, um nicht ins Swapping zu geraten.
Es ist beim Test bitte unbedingt drauf zu achten, daß nicht an der Systemzeit gedreht wird, solange er noch läuft! Das schließt Sommer-/Winterzeiteinstellungen (DST) mit ein, solche sollte es während des Tests nicht geben! Falls dies doch passiert, so ist dies bitte unbedingt gemeinsam mit dem Ergebnis mit anzugeben!
Zu posten wäre ein Ergebnis z.B. wie unten in der Liste zu sehen, das "ungefähre" Format wäre ca. so (Ohne Spitzklammern):
<Zeit> | <Nickname des Urhebers> | <Sockel>/<Kerne pro Sockel>/<Threads pro Sockel> | <CPU(s)-Name(n)> | <Mainboard/Rechner/Plattform> | <Mainboard-Chipsatz> | <RAM-Typ & Menge> | <Betriebssystem>
Die Basis des Tests sind zwei x264 Encoding Passes mit 10MBit/s und den im Blu-Ray Guide Thread gezeigten Einstellungen.
Encoded werden übrigens 15.691 Frames pro Pass, in Summe also 31.382 Frames in 2 Passes!
WARNUNG: Auf Maschinen mit sehr wenigen und/oder langsamen CPU Kernen kann es gut und gerne dazu kommen, daß der Test tagelang läuft! Man beachte hierbei speziell das Ende der Ergebnisliste, um sich einen Eindruck verschaffen zu können!
Edit, 02.11.2010: Der ZIP Datei mit den Benchmarktools wurde nun die MSVCP60.DLL hinzugefügt. Danke an exxe, der herausgefunden hat, daß diese Library, die zum Visual C++ Redistributable Package gehört auf frisch installierten Windows 2000 Maschinen mitunter fehlen kann.
Anmerkungen zur untenstehenden Ergebnisliste bzw. deren Farbmarkierungen:
** - Betriebssystem wurde virtualisiert (VMware, XEN, KVM, VirtualBox, ...) oder in einer Wine Laufzeitumgebung ausgeführt - für Referenzvergleiche ungültig!
** - Benchmark wurde mit geringeren als Minimalspezifikationen ausgeführt (z.B. 512MB RAM statt 1GB) - für Referenzvergleiche ungültig!
** - Benchmark wurde nicht mit Referenzsoftware ausgeführt (z.B. Custom x264 Build, OpenCL supported, etc.) - für Referenzvergleiche ungültig!
Lizenzrechtliches:
- Der x264 Benchmark enthält ausschließlich Software, die unter der [GNU General Public Lizenz (GPL)] steht. Weiters enthält der Benchmark Teile des Films [Elephants Dream] © copyright 2006, Blender Foundation / Netherlands Media Art Institute / http://www.elephantsdream.org, welcher unter der [Creative Commons Namensnennung] Lizenz steht.
Alle Informationen in diesem wie dem folgenden Beitrag von Michael Lackner stehen unter einer [Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz]. Die untenstehende Ergebnisliste und weitere in diesem und dem nächstfolgenden Beitrag auf http://www.xin.at/* verlinkten Inhalte von Karl Alexander Veratschnig und Michael Lackner stehen unter einer [Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz].