wer kennt sich mit dem Thema AVX512 gut aus? Oder hat wer eine CPU mit AVX512 von Intel?

ja das stimmt,weis nur leider nicht mehr wann das war,muss wohl schon etwas länger her gewesen sein.Naja meine Anwendung hat da so ein Ein und Ausschaltet ,wo ich sofern mit AVX 512 Angezeigt wird auch dann die CPU beherrscht,ansonsten ist es ja ausgegraut.
Ich kann also AVX1,AVX2 und AVX 512 jeweils ein Häkchen machen oder auch nicht.
Beim Ryzen 9 5950x wird mir nur AVX 1 und AVX2 angezeigt.
Und nun weis ich ja das sich die nicht so stark Unterscheiden,auch wenn Kern gleich dieser Vergleich leider nicht ist,weil mal Ehrlich bei AVX 512 wollte ich schon einen Fairen Vergleich und keine 120 Kerne vs 196 haben.Das ist halt kein Fairer Vergleich.Wobei man ja scheinbar bei AMD mehr Kerne für weniger Geld bekommt.Dennoch Kerngleich ist das ja eben nicht.
Aber das wäre es wohl nie selbst 80 Kerne zu 96 ist ebenso kein gleicher Test weil AMD noch immer mehr Kerne dann hätte.
Scheint wohl nicht ganz zu gehen.

Aber gut ich weis worauf die Test zeigen,das AMD auch nicht so schlecht ist.Und ja da sind schon gewaltige Ergebnisse dabei gewesen.
Meine Tests gehen wohl nur bis maixmal 32 Kerner,also in einer unteren Ebene bin ich somit Unterwegs.Das sind dann ja eh dann weit über die Grenzen hinaus.Und scheinbar kann ich noch ein fakt nennen,wenn ich mir so die Ergebnisse anschauen,könnte man meinen erst bei so richtig vielen Kernen scheint das wahre Potenzial sich bei AVX 512 zu entfalten.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Auch wenn dieser Thread schon Asbach-uralt ist, vielleicht trotzdem interessant:

Ich habe einen i5-12400 (mit iGPU) und ein MSI Pro B660-A Intel B660 DDR4, Windows 10 Pro.
BIOS Version ist: 7D59v1E (vom 14.09.2023).
... alles Vanilla (keine Hacks) und @ Stock, außer das ich AVX 512 im BIOS angeschaltet habe.
Es wird bei mir nicht nur angezeigt, sondern Windows 10 nutzt es auch.

y-Cruncher Test (Tastenreihenfolge: 0 - 1 - 6):
Total Computing Time (Standard): 45,068s
Total Computing Time (AVX512): 33,396s


-> GreenHeaven
 
Ja gut OK Windows verwendet es, ist ja gut, aber die rechtlichen Programme verwenden es nicht. Also keines von mir verwendet avx 512 , aber gut bleibt mehr für die restliche CPU übrig, was ja echt toll ist.
 
Hi hat wer von euch eine CPU die AVX 512 Nativ beherscht oder kennt sich einfach nur gut aus ohne diese zu besitzen?

Also wie Weit ist Intel noch vor AMD?
Man kann das nicht alleine am Befehlssatz festmachen. AVX-512 spielt vor allem in Bereich der Workstation und Server CPUs eine Rolle d.h. Xeon SP und Xeon W2400/3400 vs. EPYC und Threadripper (Pro), und da wird es reichlich kompliziert die Leistung zu vergleichen. Bei Intel ist die Performance pro Core besser, aber dafür haben AMDs EPYCs deutlich mehr Cores. Dann gibt es andere Speicheranbindungen 12 Kanäle vs. 8 und 3D V-Cache (EPYC) vs. HBM2e Speicher (Xeon Max).

Der Unterschied zwischen AVX2 und AVX-512 besteht nicht nur in der Registerbreite sondern auch in deren Anzahl. Mit AVX-512 wurden 32 Register eingeführt, vorher waren gab es nur 16 MMX/SSE/AVX Register. Dann gibt es viele neue Befehle in AVX-512, die auch die Berechnung mit nur 256Bit Breite deutlich verbessern. Intel will das Wirrwarr um AVX-512, es gibt etliche Subsets, beenden und wird in Zukunft das AVX-10 nennen, und dann den Befehlssatz so ändern, dass man nur noch einen Programmcode erzeugen muss, der dann jeweils auf 128Bit, 256Bit oder 512Bit Registern laufen wird. Da auch Intel für die E-Cores plant eine ähnliche Implementation zu AMDs Zen4 zu wählen, d.h. nur 256Bit Register die aber in der Lage sind Code für 512Bit abzuarbeiten.

Dann hat Intel noch APX in der Planung, was die Performance allgemein verbessern wird, weil es mehr General Purpose Register geben wird und die x86 Architektur modernisieren wird. Die Grundprämisse ist, dass x86 immer RISC-artiger werden wird, was das Design der CPU vereinfachen wird, da Intel auch plant alte Bestandteile aus der CPU zu entfernen. Da wäre das Stichwort x86-S. Sehr vereinfacht will Intel alles bis auf den 64Bit Modus fürs OS aus der CPU werfen, und auf Anwendungsseite nur noch 32Bit und 64Bit Applikationen erlauben. Aktuell kann man eine x86 CPU noch im 16Bit Real-Modus booten. Das soll alles weg. Das ist aber eher ein Diskussionpapier. APX wird definitiv kommen.
 
Auch wenn dieser Thread schon Asbach-uralt ist, vielleicht trotzdem interessant:

Ich habe einen i5-12400 (mit iGPU) und ein MSI Pro B660-A Intel B660 DDR4, Windows 10 Pro.
BIOS Version ist: 7D59v1E (vom 14.09.2023).
..interessant! Ich dachte, MSI hatte das nur in einer einmaligen Trial-Version mal frei geschaltet gehabt. :unsure:
Was sagt denn AIDA64 wenn du unter Motherboard->CPUID den Befehlssatz aufrufst?
 
Man kann das nicht alleine am Befehlssatz festmachen. AVX-512 spielt vor allem in Bereich der Workstation und Server CPUs eine Rolle d.h. Xeon SP und Xeon W2400/3400 vs. EPYC und Threadripper (Pro), und da wird es reichlich kompliziert die Leistung zu vergleichen. Bei Intel ist die Performance pro Core besser, aber dafür haben AMDs EPYCs deutlich mehr Cores. Dann gibt es andere Speicheranbindungen 12 Kanäle vs. 8 und 3D V-Cache (EPYC) vs. HBM2e Speicher (Xeon Max).
Hm ok verstehe,wenn nun die gleiche Anzahl an Kernen miteinander Verlgiechen wird bei AMD VS Intel,dann ist Intel da AMD deutlich üblegen bei der rohleistung?Dann müsste allerdings Intel auch beim Desktopg Mainstream deutlich davor sein,ist es aber nicht.Wie kommt das denn? Und wenn dann der Vorteil von mehr speicher Kanäle sowie der extra Cache verpuffen würde,was bleibt dann noch übrig davon?


Der Unterschied zwischen AVX2 und AVX-512 besteht nicht nur in der Registerbreite sondern auch in deren Anzahl. Mit AVX-512 wurden 32 Register eingeführt, vorher waren gab es nur 16 MMX/SSE/AVX Register. Dann gibt es viele neue Befehle in AVX-512, die auch die Berechnung mit nur 256Bit Breite deutlich verbessern. Intel will das Wirrwarr um AVX-512, es gibt etliche Subsets, beenden und wird in Zukunft das AVX-10 nennen, und dann den Befehlssatz so ändern, dass man nur noch einen Programmcode erzeugen muss, der dann jeweils auf 128Bit, 256Bit oder 512Bit Registern laufen wird. Da auch Intel für die E-Cores plant eine ähnliche Implementation zu AMDs Zen4 zu wählen, d.h. nur 256Bit Register die aber in der Lage sind Code für 512Bit abzuarbeiten.
Das heißt in Zukunft es spielt dann keine Rolle mehr ob nur AVX 1,AVX 0der AVX 512 verwendet wird weil unter einander explezit kompatibel und austauschbar ist? Und spielt es ne Rolle wie stark nur der Anteil bei AVX genutzt wird also sowas wie 5 % als AVX1 usw oder ist das egal?

Dann hat Intel noch APX in der Planung, was die Performance allgemein verbessern wird, weil es mehr General Purpose Register geben wird und die x86 Architektur modernisieren wird. Die Grundprämisse ist, dass x86 immer RISC-artiger werden wird, was das Design der CPU vereinfachen wird, da Intel auch plant alte Bestandteile aus der CPU zu entfernen. Da wäre das Stichwort x86-S. Sehr vereinfacht will Intel alles bis auf den 64Bit Modus fürs OS aus der CPU werfen, und auf Anwendungsseite nur noch 32Bit und 64Bit Applikationen erlauben. Aktuell kann man eine x86 CPU noch im 16Bit Real-Modus booten. Das soll alles weg. Das ist aber eher ein Diskussionpapier. APX wird definitiv kommen.
Mit dieser Aktion will Intel Platz sparen um mehr Einheiten und so auf die CPU zu bekommen.Oder macht es Intel um mehr Leistung zu bekommen oder um einfach Strom zu sparen beim Last Verbrauch? Oder hat es noch nen anderen hintergedanken von Intel?
 
Was sagt denn AIDA64 wenn du unter Motherboard->CPUID den Befehlssatz aufrufst?
Da er sich nicht meldet, wahrscheinlich das es nicht vorhanden ist :ROFLMAO:

Ohne einen Nachweis Glaube ich jedenfalls gar nichts mehr.
 
Ja ohne praktische testen und zeigen sehe ich das auch nicht so. Ich bin auch lieber der selbst Ergebnisse ertesten will weil das so wie ich das betreibe ja auch kein anderer so macht. Da bin ich sehr speziell. Was auch nicht immer so cool ist.
 
Hm ok verstehe,wenn nun die gleiche Anzahl an Kernen miteinander Verlgiechen wird bei AMD VS Intel,dann ist Intel da AMD deutlich üblegen bei der rohleistung?Dann müsste allerdings Intel auch beim Desktopg Mainstream deutlich davor sein,ist es aber nicht.Wie kommt das denn? Und wenn dann der Vorteil von mehr speicher Kanäle sowie der extra Cache verpuffen würde,was bleibt dann noch übrig davon?
Die Sache ist leider nicht so trivial. Intel verwendet unterschiedliche Cores (P- und E-Cores) nicht nur in den Desktop Chips, sondern auch die Cores in den Xeons (gemeint sind die Scalable Xeons) unterscheiden sich von denen in den Core CPUs. Bei AMD gibt es auch unterschiedliche Core Design Zen4 und Zen4c – allerdings nur bei den EPYCs. Die Desktop P-Cores von Intel haben nur eine AVX-512 Einheit, die momentan deaktiviert ist, weil es sonst Probleme gibt, da so der Code von den P- auf die E-Cores nicht verlagert werden könnte. Die Xeon Server P-Cores haben zwei AVX-512 Einheiten. Dann hat Intel noch andere Cores im Programm zum Beispiel die Xeon D oder die neusten Atoms.
Das heißt in Zukunft es spielt dann keine Rolle mehr ob nur AVX 1,AVX 0der AVX 512 verwendet wird weil unter einander explezit kompatibel und austauschbar ist? Und spielt es ne Rolle wie stark nur der Anteil bei AVX genutzt wird also sowas wie 5 % als AVX1 usw oder ist das egal?
Nein, die alten Befehlssätze bleiben so wie sie sind. Da kann man auch wegen der Kompatibilität nichts daran ändern. Aber mit dieser Änderung will Intel die Verbreitung von AVX-512 (in Form des neuen AVX10) Code verbessern. Bei Intel konnte von den Desktop- und Notebook-Produkten nur die 11. Core Generation AVX-512, danach wurde das wegen der Problematik aus P- und E-Cores diese Fähigkeit bei den P-Cores deaktiviert. Bei AMD kann es erst Zen4. Bei den Server Produkten hat Intel einen fürchterlichen Wildwuchs an AVX-512 Implementationen, d.h. nicht jede CPU unterstützt jeden Bestandteil von AVX-512. D.h. es gibt nicht ein AVX-512 sondern mehrere. Mit AVX10 wird es nur noch ein AVX10 geben, dass dann Schrittweise auf die komplette Produktpalette ausgedehnt wird.

Zuerst kommt AVX10.1 was die AVX-512 Implementierungen bei Server auf einen Stand bringen wird. Danach kommt AVX10.2, was es dann erlaubt den Befehlssatz von AVX10 entweder mit Hilfe von 128Bit, 256Bit oder 512Bit Einheiten umzusetzen. Dadurch erhofft sich Intel, dass die Softwarehersteller stärker AVX10 nutzen werden, weil man nur noch einen Code braucht, der dann auf allen CPUs laufen wird. Denn aktuell ist nur AVX2 weit verbreitet.

Mit dieser Aktion will Intel Platz sparen um mehr Einheiten und so auf die CPU zu bekommen.Oder macht es Intel um mehr Leistung zu bekommen oder um einfach Strom zu sparen beim Last Verbrauch? Oder hat es noch nen anderen hintergedanken von Intel?
Die CPUs sollen vereinfacht werden, um die Komplexität zu reduzieren. Da geht es auch um so Aspekte wie Meltdown und Spectre (Exploits mit denen man die CPUs angreifen kann). Desweiteren arbeitet Intel an der Umgestaltung von x86 hin zu einer Load-Store-Architektur (RISC). Die kompletten Befehlssätze für die SIMD-Einheiten beginnend mit MMX (d.h. auch SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, FMA, AVX2, AVX-512) sind bereits 100% Load-Store-Architektur. Bei einer Load-Store-Architektur ist es einfacher für den Compiler, das OS und den Branchpredictor in der CPU den Code zu analysieren, weil es eine strikte Trennung zwischen Befehlen gibt, die Daten in der CPU verarbeiten, und Befehlen, die Daten aus dem Speicher holen bzw. dort ablegen. Intel musste bisher enorm viel Aufwand betreiben, um die Integrität der Caches zu gewährleisten, wenn die klassischen x86 Befehle genutzt werden. Eine Reduktion der Komplexität bei der Cacheverwaltung reduziert das Risiko von Exploits, verbessert die Performance und spart Strom ein.

Darüber hinaus werden mit APX die höhere Anzahl an Integerregistern die Ausführung von normalen Code beschleunigen. D.h. APX ist insbesondere für die vielen Gamer hier im Forum sehr viel wichtiger als AVX10.
 
Ja OK verstehe, nun hoffe ich damit auch davon zu profitieren. Weil als ich mal alle mmx Befehle in der Software abgeschaltet hatte, verlor ich 0 an Leistung. Avx 512 brachte bei mir keine Leistungssteigerung. Bald werde ich erfahren ob ich wenigtens von avx2 profitiere oder echt nur von avx1. Das wird dann auch zeigen wie gut die software mit der neuen cpu und so klarkommen wird.
 
Hallo ich habe einen Intel Skylake 9800 Prozessor den ich alleine auf Grund von AVX 512 mir zusammen gestellt habe. Da ich leidenschaftlicher assembler programmierer bin habe ich natürlich AVX512 befehle verwendet um zu sehen wie schnell dieser Prozessor, aber nicht nur dass er 64 byte pro Taktzyklus, sondern auch durch spezielle Befehle die logik die man implementieren müsste vereinfacht hat.
z.B.
Ein Auszug aus meiner Bibliothek welche ich vor Jahren erstellt habe:

;;; Function only can be executed by 64 Byte aligned string address (ZMM aligned)
;;; Gets the Lentgh of an char16_t ( UNICODE UTF16)
;;; Params: rcx=Pointer to String
;;; RetValue: Lentgh of string in UNICODE (WORDS)
;;; --------------------------------------------------------------------------------------------------------------------------------
align 10h
prcGetLengthAligned16 PROC
@start:
xor rax, rax
xor r9, r9
vpxorq zmm0, zmm0, zmm0
mov eax, 11111111111111111111111111111111y
kmovd k2, eax

align 10h
@@:
vpcmpeqw k1 {k2}, zmm0, ZMMWORD PTR[rcx]
kmovd eax, k1
cmp eax, 0
jnz @F
add rcx, 40h ;;; Size for ZMM Address is 512 Bit ( 64 BYTE )
add r9, 20h ;;; Add 32 Characters to length (This is the Size of Comparison for ZMM Register Size = 32 WORDS = 512 Bits )
jmp @B

@@:
tzcnt rdx, rax
add r9, rdx
mov rax, r9

@Exit:
ret
prcGetLengthAligned16 ENDP
;;; --------------------------------------------------------------------------------------------------------------------------------
Beitrag automatisch zusammengeführt:

Und das ist die Variante wo der Input String nicht an 64 Byte Grenzen ausgerichtet sein muss

;;; Gets the Lentgh of an char16_t ( UNICODE UTF16)
;;; Params: rcx=Pointer to String ( can be unaligned )
;;; RetValue: Lentgh of string in UNICODE (WORDS)
;;; --------------------------------------------------------------------------------------------------------------------------------
align 10h
prcGetLength16 PROC
@start:
PROLOG 1
xor r9, r9 ;;; Result
test ecx, 111111y ;;; Checking for 64 Byte alignment ( ZMM WORD )
jz @StartFromAlignedPart ;;; OK address is 64 Byte aligned ( ZMM WORD )

mov HOME_RCX, rcx ;;; Save original address RCX in HOME_RCX
add rcx, 40h ;;; Set RCX to the next 64 Byte Aligned address
mov rax, 0ffffffffffffffc0h
and rcx, rax
mov LOCAL_VAR1, rcx ;;; Save next 64 Byte aligned address on LOCAL_VAR1
mov rcx, HOME_RCX

align 10h
@@:
mov WORD PTR ax, [rcx]
cmp ax, 0
jz @ExitFromUnalignedPart

inc r9
add rcx, 2
cmp rcx, LOCAL_VAR1
jnz @B

@StartFromAlignedPart:
vpxorq zmm0, zmm0, zmm0
mov eax, 0ffffffffh
kmovd k2, eax

align 10h
@@:
vpcmpeqw k1 {k2}, zmm0, ZMMWORD PTR[rcx]
kmovd eax, k1
cmp eax, 0
jnz @F
add rcx, 40h ;;; Size for ZMM Address is 512 Bit ( 64 BYTE )
add r9, 20h ;;; Add 32 Characters to length (This is the Size of Comparison for ZMM Register Size = 32 WORDS = 512 Bits )
jmp @B

@@:
tzcnt rdx, rax
add r9, rdx

@ExitFromUnalignedPart:
mov rax, r9

@Exit:
EPILOG
ret
prcGetLength16 ENDP
;;; --------------------------------------------------------------------------------------------------------------------------------
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh