Skrivet av DasIch:
Nej, inte ens i närheten. GPU;er är bra på att köra en enkel instruktion på multipla/olika data. En CPU är i regel bra på multipla instruktioner på multipla data (@Yoshman kan säkert förklara det bättre). Jämförelsevis kan en Turing-GPU köra 1024 trådar per kärna (vet inte om det ändrats på senare arkitekturer). Ett 2080Ti har 68 SM's. Nu är siffran för all del teoretisk, men ger i varje fall en fingervisning om hur mycket effektivare en GPU är för sitt specifika ändamål.
Ska man göra en någorlunda äpplen-mot-äpplen jämförelse mellan en GPU och CPU får man jämföra "CUDA-cores".
Närmaste man kommer en "CUDA-core" på en CPU är med formeln: SIMD1 databredd (256 i Zen4) / 32 (antal bitar i FP32) * peak-FLOP-per-kärna (4 st i Zen4) = 32 "CUDA-kärnor" per Zen4 kärna.
Så det är 96*32=3070 st "CUDA-kärnor" i EPYC 9654P/9654P.
Om man sedan utgår från att det går att hålla runt peak-frekvens med tillräcklig kylning, vilket Wendell säger är möjligt (han säger att man inte är så långt från maxfrekvensen i det läget) motsvarar FP32 kapaciteten en nivå mellan RTX3050 och RTX3060, närmare den senare.
Men jämförelsen haltar ändå lite mot CPUer då ovan bara är "shader steget", GPUer har sedan HW för rastrering / texturering som en CPU skulle behöva göra med sanna CPU-resurser som den använder till "shaders".
Oavsett: om någon verkligen försökte skulle man nog kunna göra en rätt bra software rendererare på en sådan här CPU! Dock inte så effektiv givet att CPUn drar ~400 W för att presterar motsvarande en instegs GPU med TDP på <150 W.
Det man gör med GPGPU konkurrera med att göra motsvarande med SIMD på CPU. Superdatorn Fujitsu A64FX som under ett par år var världens snabbaste använder inte GPGPU, istället har den en väldigt "bred" SIMD-data-path vilket fungerar lite som om den hade en integrerad GPU som saknar delarna för rastrering!
1 AMD/Intel/Qualcomm/Arm kör verkligen SIMD på sina GPUer, Nvidia kör en lite annan variant som de kallar SIMT. Innan Turing var det mest en teoretisk skillnad, från Turing och framåt är Nvidia något bättre på att hantera divergerande flöden än vad fallet blir med SIMD p.g.a SIMT. SIMD fungerar exceptionellt bra i traditionell rastrering då shaders där normalt har väldigt låg frekvens av divergerande flöden.
Skrivet av anon132576:
Någon som vet vad för reell prestanda AVX512 ger i Zen5-tappning, jämfört med gamla AVX256? Beräkningsenheterna är ju tydligen fortfarande 256 bitar, så är det en instruktion/2 klockor som gäller då eller hur funkar det? (Med pipelining får man hoppas, så samma prestanda som med 512-bitars enheter, fast längre latency istället.)
Tydligen ingen nedklockning vid användning av AVX512 hos AMD sägs det, vilket ju är bra ur generell prestandasynpunkt.
AVX512 ger i stora drag 3 nyheter
högre generell peak-prestanda, 2x över AVX p.g.a. 512 bitar databredd. Detta är enda saken Zen4 saknar
högre "AI" prestanda via VNNI, 8x i peak varav 2x kommer från punkten ovan -> Zen4 har 4x boost här
SIMD fungerar lysande i fall där alla "CUDA-kärnor" gör samma sak, det är möjligt att hantera divergenta flöden men det kostar prestanda. AVX512 har specifikt stöd för detta (vilket även moderna GPUer har) vilket minska prestandaförlusten
Ska man gå på Wedells video som är postad här verkar punkt 2 vara fokus för AMD när det kommer till AVX512. Låter fullt rimligt givet att Intel valde att stryka AVX512 i Alder Lake och i stället göra SIMD på x86 till än ännu större sörja2 genom att införa 256-bit VNNI.
AI är allt mer kritiskt, på x86 är det accelererat via VNNI instruktioner.
2 Problemet är att det finns allt fler sätt att koda i grunden samma sak. VNNI finns nu i en AVX-512 version som använder sig av EVEX (stödjer 128, 256 och 512 bit) samt VEX (stödjer 128 och 256 men är en annan binär kodning än EVEX...).
AVX/AVX2 har i sin tur ett nära nog 100 % överlapp med SSE sett till funktion, men med olika kodningar då AVX/AVX2 dels har stöd för 256-bit (utöver 128-bit) och stöd för upp till 4 operander per instruktion (mot 2 operander i SSE).