ARM bringt den Bulldozer zurück

Olstyle

Moderator
Teammitglied
Mit dem Cortex A510, dem neuen little Teil der bigLittle A-Architektur für Smartphones und ähnliches bringt ARM eine alte AMD Design Idee wieder zurück. In der "shared core" Konfiguration, welche unter anderem Qualcomm bereits für seine erste Umsetzung gewählt hat, teilen sich zwei Rechenkerne eine gemeinsame FPU.
a510_single_dual.png

Die Begründung bleibt dabei die selbe wie früher: Die meisten Rechenaufgaben im Alltag basieren aus logischen Entscheidungen und integer Arithmetik, nur gelegentlich muss mal eine Gelitkommazahl verrechnet werden (für viele Gleitkomma Berechnungen nimmt man nämlich eh besser eine GPU). Also warum nicht den Platz sparen und die wenig benötigte Ressource nur ein Mal pro Kernpaar implementieren?
Das Konzept scheint bei den kleinen Kernen laut Chips And Cheese auch auf zu gehen. Der A510 leidet in den Benchmarks noch eher unter dem geteilten L2 Cache als an vermehrten Wartezeiten auf die FPU.
Interessant ist dabei auch der dort ebenfalls gezogene Vergleich zum alten Bulldozer Design:
Note on Bulldozer
Bulldozer is an obvious comparison because it also shares substantial resources between core pairs. However, shared resources had little to do with Bulldozer’s performance problems. In fact, Bulldozer was most competitive in multithreaded applications where there could be contention for shared resources. Bulldozer issues came from having less per-thread reordering capacity and higher cache latency than Sandy Bridge in a market where single-thread performance was of paramount importance. Cortex A510 does not target the high performance market. If performance did matter A510 would be held back by its in-order execution scheme, not shared resources. Instead of performance, A510 targets low power and area. Sharing resources fits that goal perfectly.
Das Problem von Bulldozer sei nämlich gar nicht die geteilte FPU gewesen, sondern die schlechtere Cache Latenz und eingeschränktere Fähigkeiten Aufgaben umzusortieren, im Vergleich zu Intels Sandy Bridge.
Die Argumentation dazu klingt nachvollziehbar, war doch der "Bulli" gerade in Multithread Anwendungen durchaus Konkurrenzfähig, obwohl ihn gerade da das besondere Layout hätte bremsen müssen.
Detailierterer Aufbau der Kombi-Cores:
cortex-a510.drawio.png

Quelle:
 
Der Bulldozer war die reinste Enttäuschung.
Relativ wenig Rechenleistung und hohe TDP.
Deswegen bin ich damals auch noch bei Intel geblieben bis Ryzen kam.
Aber bei Smartphones mag die Architektur vielleicht mehr Sinn ergeben.
 
Der Bulldozer war die reinste Enttäuschung.
Relativ wenig Rechenleistung und hohe TDP.
Deswegen bin ich damals auch noch bei Intel geblieben bis Ryzen kam.
Aber bei Smartphones mag die Architektur vielleicht mehr Sinn ergeben.
Siehe die zitierten "Notes on Bulldozer". Bulldozer war eine Enttäuschung, dem wird niemand widersprechen, nach dem Autor war daran aber nicht die besondere Ressurcenverteilung schuld. Jedenfalls nicht direkt. Die Cache Latenzen könnten davon nicht ganz unabhängig gewesen sein.
Die großen Verbesserungen hat Ryzen aber eigentlich durch uOP Cache und optimierte Latenzen gebracht, nicht durch die nun wieder doppelt vorhandene FPU (siehe z.B. https://www.anandtech.com/show/1117...-review-a-deep-dive-on-1800x-1700x-and-1700/6).
Das ging imo in der Mainstream Berichterstattung viel zu sehr unter.
 
Das ging imo in der Mainstream Berichterstattung viel zu sehr unter.
Problematisch war damals auch die Aufteilung auf zwei Plattformen bei AMD gewesen. Denn Excavator und Steamroller kamen nur für FM2+, was im Gegensatz zu AM3+ sogar die moderne Plattform war. Diese brachten ihrerseits aber Verbesserungen mit, wo man sich manchmal wundert wie die performt hätten, wenn es sie als "ausgewachsene" Version mit L3 Cache und mehr Modulen gegeben hätte. Der fehlende L3 Cache hatte bei denen auch zur Folge, dass sie, auch bei Verwendung einer dezidierten Grafikkarte, bedeutend stärker von schnellen Ram profitierten, als im Vergleich Piledriver.
 
Zuletzt bearbeitet:
ha ha lol .... ich habe immer noch ein fx 8320 laufen... der hat jahre gute dienste gleistet zum gamen.
Der verbrauch war natürlich utopisch hoch, grade mit oc :ugly: aber er läuft und läuft..
zusammen mit einer rx 570 im Wohnzimmer als Media PC.
 
Klärt mich auf: Wird da jetzt die FPU geshared (Text) oder eine VPU (Bilder)? Das ist ein Unterschied, denn letztere ist meinem Wissen nach ein Co-Prozessor z.B. für Decoding-Aufgaben, die anderen Produkten teils komplett außerhalb der CPU erledigt werden, sodass ein geringere Anzahl in der CPU kaum stört. Ersteres ist ein elementarer Bestandteil für alle Berechnungen, die sich nicht in ganzen Zahlen ausdrücken lassen und genau das war eins der beiden großen Probleme von Bulldozer: Seine SIMD-Einheiten boten viermal zwei, in der Summe also acht, FPUs.* Die Intel-Konkurrenz müsste viermal drei gehabt haben und der Phenom Vorgänger sechsmal zwei, also jeweils 50 Prozent mehr.*

Mit Threading hat das nur in sofern etwas zu tun, als dass Bulldozer umgekehrt mehr oder zumindest höher taktende Integer-ALUs hatte (8× 2 vs. 6× 3 vs. 4× 3*) und außerdem deutlich mehr Hilfseinheiten (AGUs,...). Wenn die von gut optimierter Software genutzt wurden, konnte das seine SIMD-Schwäche kompensieren. Aber gerade Spiele sind gerne SIMD-lastig und außer Spielern hatte damals kaum jemand AMD im Blick.
(Zudem liefen Anwendungen teilweise in das andere Problem: Die ursprüngliche Bulldozer-Architektur hatte relativ zu ihren Ausführungseinheiten auch deutlich weniger Befehls-Decoder. Das wurde erst mit der letzten, APU-only-Generation behoben – und die war ja dann durchau leistungsfähig, wenn man sie mit Intel-CPUs aus einer vergleichbaren Fertigungsgeneration und einem vergleichen Marktbereich vergleicht. Gut, das waren dann 1-2 Jahre* ältere Einsteigermodelle weil Alien-years und so, aber das ist ja kein Architekturaspekt.)


*: Alle Zahlenangaben aus dumpfer Erinnerung. Bitte nicht ohne vorherige Überprüfung weiterverwenden.
 
Klärt mich auf: Wird da jetzt die FPU geshared (Text) oder eine VPU (Bilder)? Das ist ein Unterschied, denn letztere ist meinem Wissen nach ein Co-Prozessor z.B. für Decoding-Aufgaben, die anderen Produkten teils komplett außerhalb der CPU erledigt werden, sodass ein geringere Anzahl in der CPU kaum stört.
Das erste Bild zeigt in der ARM Intention Powerdomains. Da ist alles was nicht Core ist als externer VPU Bereich einzeln abschaltbar. Vector Processing und Floating Point Processing macht hier, so wie ich das zweite Bild sehe, und auch den verlinkten Text lese, eine gemeinsame 128Bit SMID Einheit.
Das V statt dem F scheint mir hier vor allem Marketingsprech für "wir können ein paar mehr Befehle als reines 64bit FP add/sub/mull" zu sein.
 
Ok. Ungünstige Kürzel-Doppelvergabe von ARM an der Stelle. Neben einer "Vector Processing Unit" hatten die nämlich auch schon mal eine "Visual Processing Unit".
 
Zurück