App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Alles rund um Compiler und Softwareentwicklung
- Ersteller gruffi
- Erstellt am
Unbekannter Krieger
Grand Admiral Special
- Mitglied seit
- 04.10.2013
- Beiträge
- 4.455
- Renomée
- 66
- Mein Laptop
- HP 15-bq102ng (sackteuer u. ab Werk instabil)
- Prozessor
- FX-8320E@4,2 GHz & 2,6 GHz Northbridge (jeweils mit UV)
- Mainboard
- Asus M5A99X Evo R2.0 (eher enttäuschend ggü. ASRock E3)
- Kühlung
- Raijintek Nemesis (Lüfter mittig im sowie hinter dem Kühler; erstklassig)
- Speicher
- 4x4 GiB Hynix DDR3-1866 ECC
- Grafikprozessor
- XFX RX 570 8G (P8DFD6)@1180 & 2150 MHz@starkem, fortdauerndem UV | ASRock RX 570 8G@das Gleiche
- Display
- BenQ XL2411T ~ nach 3 RMAs und 6 Monaten wieder brauchbar
- SSD
- Crucial MX100 256 GB (ein Glückskauf) | SanDisk Ultra Plus 256 GB (ein Glückskauf)
- HDD
- WD20EZRZ u. a. (Seagate, Hitachi, WD)
- Optisches Laufwerk
- TSST SH-222AL
- Gehäuse
- Corsair Carbide 300R (ein Fehlkauf)
- Netzteil
- CoolerMaster V450S (ein Glückskauf)
- Betriebssystem
- Win8.x x64, Win7 x64
- Webbrowser
- welche mit minimalem Marktanteil & sinnvollen Konzepten (nicht Chrome-Seuche und Sieche-Fuchs)
- Verschiedenes
- frühere GPUs: , Asus RX 480 O8G@580 O8G, VTX3D 7850 1G
Kannst du die LAME-MinGW-Builds im Startpost erneut hochladen? Es scheint nichts mehr verfügbar zu sein. Ich hätte gern die bdver2-Variante.
PuckPoltergeist
Grand Admiral Special
Was verstehst du unter solide?y33H@
Angesichts dessen, dass der GCC nicht AMD-exklusiv oder ausschließlich AMD-optimiert ist und nach wie vor nicht vollkommen solide (andererseits: wann ist ein Produkt das schon?), sind 11 Prozent gar nicht mal so wenig.
--- Update ---
Warhscheinlich sogar noch mehr. Nach den letzten Tests, dich ich gesehen habe, profitiert der i7 unheimlich von der AVX(2) Unterstützung. Lässt man die weg, lässt man einiges an Geschwindigkeit liegen.Vor allem, wenn man es von beiden Seiten betrachtet. Wenn der FX mit den richtigen Compilerflags 11% schneller wird, so kann ein i7 mit unpassenden Compilerflags auch mal >10% Performance verlieren.
Auf der anderen Seite bringt es aber gar nicht so viel mehr, wenn man alle unterstützten Erweiterungen aktiviert, aber nicht auf eine direkte Architektur optimiert.
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Hmm, seltsam. Gelöscht hatte ich die eigentlich nicht. Ich lade nochmal Builds mit GCC 4.9.2 hoch.Kannst du die LAME-MinGW-Builds im Startpost erneut hochladen? Es scheint nichts mehr verfügbar zu sein. Ich hätte gern die bdver2-Variante.
--- Update ---
Neue LAME Builds stehen zur Verfügung. Startbeitrag aktualisiert.
Atombossler
Admiral Special
- Mitglied seit
- 28.04.2013
- Beiträge
- 1.425
- Renomée
- 65
- Standort
- Andere Sphären
- Mein Laptop
- Thinkpad 8
- Prozessor
- A8-7600@3.25Ghz
- Mainboard
- Asus A88X-PRO
- Kühlung
- NoFan CR80 EH
- Speicher
- 16Gb G-Skill Trident-X DDR3 2400
- Grafikprozessor
- APU
- Display
- Acer UHD 4K2K
- SSD
- Samsung 850 PRO
- HDD
- 2xSamsung 1TB HDD (2,5")
- Optisches Laufwerk
- Plexi BD-RW
- Soundkarte
- OnBoard Geraffel
- Gehäuse
- Define R2
- Netzteil
- BeQuiet
- Betriebssystem
- Win7x64-PRO
- Webbrowser
- Chrome
gehört Kaveri auch noch zu BDver2, oder gibt es noch keine neueren Optimierungsstufen?
PuckPoltergeist
Grand Admiral Special
gehört Kaveri auch noch zu BDver2, oder gibt es noch keine neueren Optimierungsstufen?
Kaveri ist Steamroller, also 3. Generation. Von Compiler-Seite ist der Unterschied aber nicht so groß. Der ist zwischen bdver1 und bdver2 deutlich größer, und wird es zwischen bdver3 und bdver4 auch nochmal (AVX2).
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Wie mein Vorredner schon sagt, Steamroller (Kaveri) ist bdver3. Die LAME Executables für bdver2 und bdver3 waren aber identisch gross. Daher habe ich bdver3 erst mal weggelassen. Vermutlich gibt's da keine nennenswerten Unterschiede. Die gibt es dann erst wieder mit bdver4 (Excavator). Den Build könnte ich auch bereitstellen. Wird vermutlich nur noch niemand testen können.
PuckPoltergeist
Grand Admiral Special
Ich habe jetzt nochmal nachgesehen. Bdver3 nutzt ein signifikant anderes scheduling als bdver1/2. Es gibt nur noch drei statt vorher vier FP Units, decode/fetching ist auch geändert. Insofern wären mögliche Laufzeitunterschiede mit den verschiedenen march-Optionen doch interessant.
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Decode und Scheduling hat sich doch vor allem geändert, was das gesamte Modul betrifft, also wenn man zwei Threads auf einem Modul laufen lässt. Weiss nicht, ob das hier wirklich viel ausmacht, da LAME singlethreaded ist. Und bei der FPU ist im Wesentlichen eine Integer SIMD Einheit weggefallen, deren Funktionalität in eine FP SIMD Einheit (FMAC) integriert wurde. Auch das dürfte bei lediglich einem Thread nicht viel ausmachen.
Ich lade den den bdver3 Build trotzdem hoch. Also wer einen Kaveri hat, kann es ja mal testen.
Ich lade den den bdver3 Build trotzdem hoch. Also wer einen Kaveri hat, kann es ja mal testen.
PuckPoltergeist
Grand Admiral Special
Das hat jetzt nichts mit thread level parallelism zu tun. Es geht darum, wie viele x86-Befehle pro Zyklus dekodiert werden können und auf wie viele Units diese dann verteilt werden können.Decode und Scheduling hat sich doch vor allem geändert, was das gesamte Modul betrifft, also wenn man zwei Threads auf einem Modul laufen lässt. Weiss nicht, ob das hier wirklich viel ausmacht, da LAME singlethreaded ist. Und bei der FPU ist im Wesentlichen eine Integer SIMD Einheit weggefallen, deren Funktionalität in eine FP SIMD Einheit (FMAC) integriert wurde. Auch das dürfte bei lediglich einem Thread nicht viel ausmachen.
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Das hat aber vor allem Auswirkung bei zwei Threads, weniger bei einem wie mit LAME. Für einen Integer Cluster können nach wie vor nur 4 Instruktionen pro Takt dekodiert werden. Einzig relevante Optimierung für Steamroller wäre, dass MOVs nun auch über die AGLUs ausgeführt werden können. Den Loop Optimizer gibt's zwar auch noch. Aber das kommt hauptsächlich von der Hardware. Der Compiler muss eigentlich nur auf die Grösse der Schleifen achten. Notfalls kann er hier und da ein Byte sparen, um die Grösse passend zu machen. Viel Spielraum bleibt da oft aber nicht. Und bei der FPU haben sich wie gesagt die Pipes nicht gross geändert. Es ist lediglich eine für dieses Szenario eher nebensächliche Integer SIMD Pipe weggefallen. Bzw ist Pipe 2 (FPMAL) in Pipe 0 gewandert. Und die Shuffle Einheit aus der zweiten FP SIMD Pipe ist in die übrig gebliebene Integer SIMD Pipe gewandert. So wie mit bdver2 die Instruktionen verteilt wurden, so ähnlich sollten also auch die Instruktionen mit bdver3 verteilt werden, solange man FP nutzt.
Bdver3 gewinnt seine Performance ja hauptsächlich durch schnelleren L1/L2 Cache, bessere Sprungvorhersage, geringere Latenzen und mehr Ressourcen für zwei Threads. Da kann der Compiler relativ wenig machen. Daher denke ich wird es auch keine allzu grossen Unterschiede zwischen bdver2 und bdver3 Builds geben.
Bdver3 gewinnt seine Performance ja hauptsächlich durch schnelleren L1/L2 Cache, bessere Sprungvorhersage, geringere Latenzen und mehr Ressourcen für zwei Threads. Da kann der Compiler relativ wenig machen. Daher denke ich wird es auch keine allzu grossen Unterschiede zwischen bdver2 und bdver3 Builds geben.
PuckPoltergeist
Grand Admiral Special
aus dem gcc:
;; AMD bdver1 Scheduling
;;
;; The bdver1 contains four pipelined FP units, two integer units and
;; two address generation units.
;;
;; The predecode logic is determining boundaries of instructions in the 64
;; byte cache line. So the cache line straddling problem of K6 might be issue
;; here as well, but it is not noted in the documentation.
;;
;; Three DirectPath instructions decoders and only one VectorPath decoder
;; is available. They can decode three DirectPath instructions or one
;; VectorPath instruction per cycle.
;;
;; The load/store queue unit is not attached to the schedulers but
;; communicates with all the execution units separately instead.
(define_cpu_unit "bdver1-decode0" "bdver1")
(define_cpu_unit "bdver1-decode1" "bdver1")
(define_cpu_unit "bdver1-decode2" "bdver1")
(define_cpu_unit "bdver1-decodev" "bdver1")
;; AMD bdver3 Scheduling
;;
;; The bdver3 contains three pipelined FP units and two integer units.
;; Fetching and decoding logic is different from previous fam15 processors.
;; Fetching is done every two cycles rather than every cycle and
;; two decode units are available. The decode units therefore decode
;; four instructions in two cycles.
;;
;; The load/store queue unit is not attached to the schedulers but
;; communicates with all the execution units separately instead.
(define_cpu_unit "bdver3-decode0" "bdver3")
(define_cpu_unit "bdver3-decode1" "bdver3")
(define_cpu_unit "bdver3-decodev" "bdver3")
PS: Multithreaded interessiert den gcc hier überhaupt nicht. Für den ist wichtig, welche x86-Befehle von der CPU wie dekodiert werden, um einen möglichst optimalen Mix zu erstellen. Ziel ist, alle Units komplett auszulasten dabei.
;; AMD bdver1 Scheduling
;;
;; The bdver1 contains four pipelined FP units, two integer units and
;; two address generation units.
;;
;; The predecode logic is determining boundaries of instructions in the 64
;; byte cache line. So the cache line straddling problem of K6 might be issue
;; here as well, but it is not noted in the documentation.
;;
;; Three DirectPath instructions decoders and only one VectorPath decoder
;; is available. They can decode three DirectPath instructions or one
;; VectorPath instruction per cycle.
;;
;; The load/store queue unit is not attached to the schedulers but
;; communicates with all the execution units separately instead.
(define_cpu_unit "bdver1-decode0" "bdver1")
(define_cpu_unit "bdver1-decode1" "bdver1")
(define_cpu_unit "bdver1-decode2" "bdver1")
(define_cpu_unit "bdver1-decodev" "bdver1")
;; AMD bdver3 Scheduling
;;
;; The bdver3 contains three pipelined FP units and two integer units.
;; Fetching and decoding logic is different from previous fam15 processors.
;; Fetching is done every two cycles rather than every cycle and
;; two decode units are available. The decode units therefore decode
;; four instructions in two cycles.
;;
;; The load/store queue unit is not attached to the schedulers but
;; communicates with all the execution units separately instead.
(define_cpu_unit "bdver3-decode0" "bdver3")
(define_cpu_unit "bdver3-decode1" "bdver3")
(define_cpu_unit "bdver3-decodev" "bdver3")
PS: Multithreaded interessiert den gcc hier überhaupt nicht. Für den ist wichtig, welche x86-Befehle von der CPU wie dekodiert werden, um einen möglichst optimalen Mix zu erstellen. Ziel ist, alle Units komplett auszulasten dabei.
Zuletzt bearbeitet:
Atombossler
Admiral Special
- Mitglied seit
- 28.04.2013
- Beiträge
- 1.425
- Renomée
- 65
- Standort
- Andere Sphären
- Mein Laptop
- Thinkpad 8
- Prozessor
- A8-7600@3.25Ghz
- Mainboard
- Asus A88X-PRO
- Kühlung
- NoFan CR80 EH
- Speicher
- 16Gb G-Skill Trident-X DDR3 2400
- Grafikprozessor
- APU
- Display
- Acer UHD 4K2K
- SSD
- Samsung 850 PRO
- HDD
- 2xSamsung 1TB HDD (2,5")
- Optisches Laufwerk
- Plexi BD-RW
- Soundkarte
- OnBoard Geraffel
- Gehäuse
- Define R2
- Netzteil
- BeQuiet
- Betriebssystem
- Win7x64-PRO
- Webbrowser
- Chrome
Wie mein Vorredner schon sagt, Steamroller (Kaveri) ist bdver3. Die LAME Executables für bdver2 und bdver3 waren aber identisch gross. Daher habe ich bdver3 erst mal weggelassen. Vermutlich gibt's da keine nennenswerten Unterschiede. Die gibt es dann erst wieder mit bdver4 (Excavator). Den Build könnte ich auch bereitstellen. Wird vermutlich nur noch niemand testen können.
Kann ich nach ersten Tests bestätigen.
Beide Encodes werden gleich gross und dauern gleich lang.
Getestet mit einer *.wav von 01h:03m:08s länge, welche in beiden Fällen (bdver2/bdver3) auf Kaveri A8-7600@45W 01m:03s zum Umwandeln brauchte.
Nicht das was man signifikant nennen würde ...
Tritt wenn überhaupt dann mit multithreaded Software zutage, welche dann aber auch länger braucht.
Lame ist da wohl auch der Falsche Use Case für so einen Vergleich.
Wobei ...
Grad noch die K10 Version getestet, die läuft immerhin länger 01m:08s bei gleicher Grösse, also +5s
Ok, Haswell schmiert ab ...
... und, puhhh *schwitz* -> Sandy ist eine Sekunde langsamer als bdver2/3. 8)
Das hätt mich sonst angekotzt ...
Zuletzt bearbeitet:
PuckPoltergeist
Grand Admiral Special
Erklärt mir doch mal bitte, was der Scheduler vom Compiler mit multithreaded zu tun hat.Tritt wenn überhaupt dann mit multithreaded Software zutage, welche dann aber auch länger braucht.
Atombossler
Admiral Special
- Mitglied seit
- 28.04.2013
- Beiträge
- 1.425
- Renomée
- 65
- Standort
- Andere Sphären
- Mein Laptop
- Thinkpad 8
- Prozessor
- A8-7600@3.25Ghz
- Mainboard
- Asus A88X-PRO
- Kühlung
- NoFan CR80 EH
- Speicher
- 16Gb G-Skill Trident-X DDR3 2400
- Grafikprozessor
- APU
- Display
- Acer UHD 4K2K
- SSD
- Samsung 850 PRO
- HDD
- 2xSamsung 1TB HDD (2,5")
- Optisches Laufwerk
- Plexi BD-RW
- Soundkarte
- OnBoard Geraffel
- Gehäuse
- Define R2
- Netzteil
- BeQuiet
- Betriebssystem
- Win7x64-PRO
- Webbrowser
- Chrome
??
Ich meinte das in diesem Fall (singlethreaded lame) einfach keine grösseren Laufzeitdifferenzen zu Tage treten werden.
Erst wenn man eine multithreaded Soft nimmt und die dann in den entsprechenden Optimisierungen vergleicht, wird man da evtl.
etwas entdecken können über längere Laufzeit gemessen. Bei so simplen und kleinen Sachen ist der vermeintliche Unterschied einfach zu klein.
Nebenbei grad noch auf meinem Vichy getestet: bdver2/3/sandy gleich schnell nur k10 ist 2 sek langsamer.
Das finde ich schon eher interessant. Kaveri sollte sich doch eher wieder ein wenig weg von der Modulbauweise
mit shared Frontend und somit wieder ein wenig dem k10 zuwenden und trotzdem ist die Differenz auf dem Vichy kleiner als auf dem Kaveri.
Lame ist wahrscheinlich auch einfach ein Stück zu alt für die neuesten Entwicklungen.
Oder wird da auch an AVX/AVX2 gebastelt?
Keine Ahnung, benutz das nie.
Ich meinte das in diesem Fall (singlethreaded lame) einfach keine grösseren Laufzeitdifferenzen zu Tage treten werden.
Erst wenn man eine multithreaded Soft nimmt und die dann in den entsprechenden Optimisierungen vergleicht, wird man da evtl.
etwas entdecken können über längere Laufzeit gemessen. Bei so simplen und kleinen Sachen ist der vermeintliche Unterschied einfach zu klein.
Nebenbei grad noch auf meinem Vichy getestet: bdver2/3/sandy gleich schnell nur k10 ist 2 sek langsamer.
Das finde ich schon eher interessant. Kaveri sollte sich doch eher wieder ein wenig weg von der Modulbauweise
mit shared Frontend und somit wieder ein wenig dem k10 zuwenden und trotzdem ist die Differenz auf dem Vichy kleiner als auf dem Kaveri.
Lame ist wahrscheinlich auch einfach ein Stück zu alt für die neuesten Entwicklungen.
Oder wird da auch an AVX/AVX2 gebastelt?
Keine Ahnung, benutz das nie.
Zuletzt bearbeitet:
PuckPoltergeist
Grand Admiral Special
Okay, so ergibt das für mich jetzt auch langsam Sinn. Lame nutzt anscheinend auch einiges an handoptimierten Code (kurz den Code überflogen), sprich der Compiler hat wenig Chance sich da zu entfalten. Das ist dann für Compiler-Benchmarks eher suboptimal. Da braucht es eher Programme, die die Optimierungen komplett dem Compiler überlassen.??
Ich meinte das in diesem Fall (singlethreaded lame) einfach keine grösseren Laufzeitdifferenzen zu Tage treten werden.
Erst wenn man eine multithreaded Soft nimmt und die dann in den entsprechenden Optimisierungen vergleicht, wird man da evtl.
etwas entdecken können über längere Laufzeit gemessen. Bei so simplen und kleinen Sachen ist der vermeintliche Unterschied einfach zu klein.
Wie in dem Thread schon erwähnt, die Compiler können das selbstständig nutzen. Bei lame dürfte das aber nicht viel bringen, wenn der rechen-intensive Code von Hand optimiert wurde. Und um den Vorteil von AVX(2) komplett auszuspielen, muss der Code auch vektorisiert werden. Leider ist der auto-vectorizer vom gcc da nicht so überragend.Nebenbei grad noch auf meinem Vichy getestet: bdver2/3/sandy gleich schnell nur k10 ist 2 sek langsamer.
Das finde ich schon eher interessant. Kaveri sollte sich doch eher wieder ein wenig weg von der Modulbauweise
mit shared Frontend und somit wieder ein wenig dem k10 zuwenden und trotzdem ist die Differenz auf dem Vichy kleiner als auf dem Kaveri.
Lame ist wahrscheinlich auch einfach ein Stück zu alt für die neuesten Entwicklungen.
Oder wird da auch an AVX/AVX2 gebastelt?
Keine Ahnung, benutz das nie.
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Sicherlich interessiert GCC erst mal nicht, was multithreaded passiert. Dennoch, wie bereits gesagt, die Optimierungen, die der Compiler vornehmen kann, haben nur wenig Einfluss auf die Performance. Die Änderungen, die bei den Decodern und Schedulern vorgenommen wurden, zeigen mehr Auswirkungen, wenn zwei Threads auf einem Modul laufen. Ansonsten kommen Performanceverbesserungen bei einem Thread hauptsächlich von der Hardware selbst.PS: Multithreaded interessiert den gcc hier überhaupt nicht. Für den ist wichtig, welche x86-Befehle von der CPU wie dekodiert werden, um einen möglichst optimalen Mix zu erstellen. Ziel ist, alle Units komplett auszulasten dabei.
Falls du Assembler meinst, der wird nur bei 32-bit Builds genutzt. Für 64-bit fehlen nach wie vor entsprechend optimierte Assembler Routinen.Lame nutzt anscheinend auch einiges an handoptimierten Code (kurz den Code überflogen), sprich der Compiler hat wenig Chance sich da zu entfalten.
PuckPoltergeist
Grand Admiral Special
Ich gezog mich auf die intrinsics. Die sehe erstmal architekturunabhängig aus, sofern SSE vorhanden ist. Aber wie gesagt, ich hab es nur überflogen.Falls du Assembler meinst, der wird nur bei 32-bit Builds genutzt. Für 64-bit fehlen nach wie vor entsprechend optimierte Assembler Routinen.
Complicated
Grand Admiral Special
- Mitglied seit
- 08.10.2010
- Beiträge
- 4.949
- Renomée
- 441
- Mein Laptop
- Lenovo T15, Lenovo S540
- Prozessor
- AMD Ryzen 7 3700X
- Mainboard
- MSI X570-A PRO
- Kühlung
- Scythe Kama Angle - passiv
- Speicher
- 32 GB (4x 8 GB) G.Skill TridentZ Neo DDR4-3600 CL16-19-19-39
- Grafikprozessor
- Sapphire Radeon RX 5700 Pulse 8GB PCIe 4.0
- Display
- 27", Lenovo, 2560x1440
- SSD
- 1 TB Gigabyte AORUS M.2 PCIe 4.0 x4 NVMe 1.3
- HDD
- 2 TB WD Caviar Green EADS, NAS QNAP
- Optisches Laufwerk
- Samsung SH-223L
- Gehäuse
- Lian Li PC-B25BF
- Netzteil
- Corsair RM550X ATX Modular (80+Gold) 550 Watt
- Betriebssystem
- Win 10 Pro.
Hier mal der Link zu der neuen Version 1.3 von Bolt:
http://developer.amd.com/community/blog/2015/01/19/bolt-1-3-whats-new/
http://developer.amd.com/community/blog/2015/01/19/bolt-1-3-whats-new/
Zuletzt bearbeitet:
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Her gibt's eine ausführliche Liste zu OpenCL Wrappern für verschiedene Programmiersprachen:
https://www.linkedin.com/pulse/list-all-known-opencl-wrappers-vincent-hindriksen
https://www.linkedin.com/pulse/list-all-known-opencl-wrappers-vincent-hindriksen
Unbekannter Krieger
Grand Admiral Special
- Mitglied seit
- 04.10.2013
- Beiträge
- 4.455
- Renomée
- 66
- Mein Laptop
- HP 15-bq102ng (sackteuer u. ab Werk instabil)
- Prozessor
- FX-8320E@4,2 GHz & 2,6 GHz Northbridge (jeweils mit UV)
- Mainboard
- Asus M5A99X Evo R2.0 (eher enttäuschend ggü. ASRock E3)
- Kühlung
- Raijintek Nemesis (Lüfter mittig im sowie hinter dem Kühler; erstklassig)
- Speicher
- 4x4 GiB Hynix DDR3-1866 ECC
- Grafikprozessor
- XFX RX 570 8G (P8DFD6)@1180 & 2150 MHz@starkem, fortdauerndem UV | ASRock RX 570 8G@das Gleiche
- Display
- BenQ XL2411T ~ nach 3 RMAs und 6 Monaten wieder brauchbar
- SSD
- Crucial MX100 256 GB (ein Glückskauf) | SanDisk Ultra Plus 256 GB (ein Glückskauf)
- HDD
- WD20EZRZ u. a. (Seagate, Hitachi, WD)
- Optisches Laufwerk
- TSST SH-222AL
- Gehäuse
- Corsair Carbide 300R (ein Fehlkauf)
- Netzteil
- CoolerMaster V450S (ein Glückskauf)
- Betriebssystem
- Win8.x x64, Win7 x64
- Webbrowser
- welche mit minimalem Marktanteil & sinnvollen Konzepten (nicht Chrome-Seuche und Sieche-Fuchs)
- Verschiedenes
- frühere GPUs: , Asus RX 480 O8G@580 O8G, VTX3D 7850 1G
Bestünde eigentlich die Möglichkeit, die aktuelle HandBrake-Version auf Piledriver zu optimieren?
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Da der Quellcode verfügbar ist, natürlich. Es stellt sich eigentlich nur die Frage, wie aufwändig das ganze ist.
Unbekannter Krieger
Grand Admiral Special
- Mitglied seit
- 04.10.2013
- Beiträge
- 4.455
- Renomée
- 66
- Mein Laptop
- HP 15-bq102ng (sackteuer u. ab Werk instabil)
- Prozessor
- FX-8320E@4,2 GHz & 2,6 GHz Northbridge (jeweils mit UV)
- Mainboard
- Asus M5A99X Evo R2.0 (eher enttäuschend ggü. ASRock E3)
- Kühlung
- Raijintek Nemesis (Lüfter mittig im sowie hinter dem Kühler; erstklassig)
- Speicher
- 4x4 GiB Hynix DDR3-1866 ECC
- Grafikprozessor
- XFX RX 570 8G (P8DFD6)@1180 & 2150 MHz@starkem, fortdauerndem UV | ASRock RX 570 8G@das Gleiche
- Display
- BenQ XL2411T ~ nach 3 RMAs und 6 Monaten wieder brauchbar
- SSD
- Crucial MX100 256 GB (ein Glückskauf) | SanDisk Ultra Plus 256 GB (ein Glückskauf)
- HDD
- WD20EZRZ u. a. (Seagate, Hitachi, WD)
- Optisches Laufwerk
- TSST SH-222AL
- Gehäuse
- Corsair Carbide 300R (ein Fehlkauf)
- Netzteil
- CoolerMaster V450S (ein Glückskauf)
- Betriebssystem
- Win8.x x64, Win7 x64
- Webbrowser
- welche mit minimalem Marktanteil & sinnvollen Konzepten (nicht Chrome-Seuche und Sieche-Fuchs)
- Verschiedenes
- frühere GPUs: , Asus RX 480 O8G@580 O8G, VTX3D 7850 1G
Ich bin da ahnungslos. Wenn du mal schauen möchtest: Meinen Segen hast du.
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
GCC (MinGW) bietet momentan vielleicht die ausführlichsten Optimierungsoptionen. Eine Kompilierung scheint mit MinGW kein Problem zu sein.
https://trac.handbrake.fr/wiki/CompileOnWindows
Theoretisch sollte es also reichen, dem Compiler einfach nur die entsprechenden Optimierungsflags mitzugeben, ohne am Code was machen zu müssen. Für Piledriver wäre das "-march=bdver2".
Problem könnte sein, dass man zusätzliche Bibliotheken ebenfalls neu übersetzen müsste und ggf auch die CLI Executable. Das wiederum könnte dann schon aufwändiger werden.
https://trac.handbrake.fr/wiki/CompileOnWindows
Theoretisch sollte es also reichen, dem Compiler einfach nur die entsprechenden Optimierungsflags mitzugeben, ohne am Code was machen zu müssen. Für Piledriver wäre das "-march=bdver2".
Problem könnte sein, dass man zusätzliche Bibliotheken ebenfalls neu übersetzen müsste und ggf auch die CLI Executable. Das wiederum könnte dann schon aufwändiger werden.
Atombossler
Admiral Special
- Mitglied seit
- 28.04.2013
- Beiträge
- 1.425
- Renomée
- 65
- Standort
- Andere Sphären
- Mein Laptop
- Thinkpad 8
- Prozessor
- A8-7600@3.25Ghz
- Mainboard
- Asus A88X-PRO
- Kühlung
- NoFan CR80 EH
- Speicher
- 16Gb G-Skill Trident-X DDR3 2400
- Grafikprozessor
- APU
- Display
- Acer UHD 4K2K
- SSD
- Samsung 850 PRO
- HDD
- 2xSamsung 1TB HDD (2,5")
- Optisches Laufwerk
- Plexi BD-RW
- Soundkarte
- OnBoard Geraffel
- Gehäuse
- Define R2
- Netzteil
- BeQuiet
- Betriebssystem
- Win7x64-PRO
- Webbrowser
- Chrome
Bestünde eigentlich die Möglichkeit, die aktuelle HandBrake-Version auf Piledriver zu optimieren?
Was versprichst Du Dir davon?
Allzuviel bringen wird es nicht.
Das GUI wird nicht "schneller" werden ...
... und bei den encoding libs (also x264/x265) liegt der Unterschied im Nachkommabereich.
Hier mal ein Vergleich, den ich mit VC/ICC/GCC und x265 gemacht habe.
Results for x265.exe build 1.4+5 [vcru]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 115.11s (9.80 fps), 2991.03 kb/s
encoded 1128 frames in 115.42s (9.77 fps), 2991.03 kb/s
encoded 1128 frames in 114.84s (9.82 fps), 2991.03 kb/s
encoded 1128 frames in 116.42s (9.69 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [vcchroma]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 118.03s (9.56 fps), 2991.03 kb/s
encoded 1128 frames in 118.19s (9.54 fps), 2991.03 kb/s
encoded 1128 frames in 118.38s (9.53 fps), 2991.03 kb/s
encoded 1128 frames in 118.77s (9.50 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [iccru]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 115.23s (9.79 fps), 2991.03 kb/s
encoded 1128 frames in 114.67s (9.84 fps), 2991.03 kb/s
encoded 1128 frames in 115.50s (9.77 fps), 2991.03 kb/s
encoded 1128 frames in 115.25s (9.79 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [gccru]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 116.73s (9.66 fps), 2991.03 kb/s
encoded 1128 frames in 117.00s (9.64 fps), 2991.03 kb/s
encoded 1128 frames in 116.44s (9.69 fps), 2991.03 kb/s
encoded 1128 frames in 116.77s (9.66 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [gcceu]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 118.41s (9.53 fps), 2991.03 kb/s
encoded 1128 frames in 119.12s (9.47 fps), 2991.03 kb/s
encoded 1128 frames in 118.59s (9.51 fps), 2991.03 kb/s
encoded 1128 frames in 119.55s (9.44 fps), 2991.03 kb/s
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 115.11s (9.80 fps), 2991.03 kb/s
encoded 1128 frames in 115.42s (9.77 fps), 2991.03 kb/s
encoded 1128 frames in 114.84s (9.82 fps), 2991.03 kb/s
encoded 1128 frames in 116.42s (9.69 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [vcchroma]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 118.03s (9.56 fps), 2991.03 kb/s
encoded 1128 frames in 118.19s (9.54 fps), 2991.03 kb/s
encoded 1128 frames in 118.38s (9.53 fps), 2991.03 kb/s
encoded 1128 frames in 118.77s (9.50 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [iccru]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 115.23s (9.79 fps), 2991.03 kb/s
encoded 1128 frames in 114.67s (9.84 fps), 2991.03 kb/s
encoded 1128 frames in 115.50s (9.77 fps), 2991.03 kb/s
encoded 1128 frames in 115.25s (9.79 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [gccru]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 116.73s (9.66 fps), 2991.03 kb/s
encoded 1128 frames in 117.00s (9.64 fps), 2991.03 kb/s
encoded 1128 frames in 116.44s (9.69 fps), 2991.03 kb/s
encoded 1128 frames in 116.77s (9.66 fps), 2991.03 kb/s
Results for x265.exe build 1.4+5 [gcceu]
x265 Benchmark: 64-bit
==========================
CRF-20 preset-"fast"
--------------------
encoded 1128 frames in 118.41s (9.53 fps), 2991.03 kb/s
encoded 1128 frames in 119.12s (9.47 fps), 2991.03 kb/s
encoded 1128 frames in 118.59s (9.51 fps), 2991.03 kb/s
encoded 1128 frames in 119.55s (9.44 fps), 2991.03 kb/s
z.B. war die x265-1.5.251 mit GCC 4.6.3 die bisher schnellste (signifikant! + >1fps).
Das liegt auch daran, das der Code generell schon optimiert ist (assembler).
Bei unoptimiertem Code könnte da evtl. einiger benefit zu holen sein, aber so ...
Ähnliche Themen
- Antworten
- 3
- Aufrufe
- 2K
- Antworten
- 37
- Aufrufe
- 13K
- Antworten
- 760
- Aufrufe
- 99K
- Antworten
- 10
- Aufrufe
- 9K
- Antworten
- 0
- Aufrufe
- 52K