Skrivet av mpat:
Det finns ju SMT med fyra eller åtta trådar per kärna, så man kan fråga sig varför Intel inte byggt något sådant. En möjlighet är att det är på gång, och att ändringarna i Haswell (två nya issue-ports) och Skylake (bredare avkodning) är en förberedelse för detta. En annan är att Intel gillar att ta bra betalt för sina extra kärnor. Det är dock lite intressant att ingen bland de som utvecklar mobila processorer gett sig på SMT än. Det kanske är så att SMT inte är så användbart på modern användar-inriktad kod?
I de flesta fall ger SMT ett positivt tillskott av prestanda, i alla fall så länge man har 2-4 trådar per CPU.
Finns två primära nackdelar med tekniken
Den första punkten är orsaken till varför man i princip alltid slår av SMT i SIMD-optimerade algoritmer. Med rätt gjord SIMD-optimering får man så hög kapacitet att bandbredd blir primär flaskhals, att då minska cachen sett per tråd har i flera fall en större negativ effekt jämfört med den vinst man får med SMT.
Cache-effekten blir ju större ju fler trådar man har per kärna, SMT-8 är därför bara en fördel i applikationer där "working-set" ändå är så stort att cachen inte tillför så mycket (finns absolut sådana laster på servers, men de är inte supervanliga).
POWER8 har stöd för SMT-8, men normalfallet är att man konfigurerar dessa system med SMT-4.
Den andra fallet blir ju också mer uttalat ju fler trådar man har. Svarstiden kan dock bli lägre med SMT om servern hanterar väldigt många fler sessions än den har CPU-kärnor och sessionerna kräver mycket CPU. Så här är det väldigt mycket från fall till fall.
I just fallet Cascade Lake AP verkar den plattformen inte vara en generell serverplattform om man kikar på presentationerna. Det verkar vara en plattform specifikt inriktad på HPC (Linpack) och maskininlärning (inferens steget). Detta är typexempel på sådant där man normalt stänger av SMT, så är ju inte omöjligt att Cascade Lake AP är en relativt nischad produkt mot dessa områden vilket i så fall inte alls gör det osannolikt att den saknar SMT stöd.
Skrivet av anon159643:
Arm i sin tur ser jag som utvecklad för mindre krävande system, det var ofta dit man hoppade efter man pillade med 8 bitars mikrokontrollerna Atmel och Pic när ville göra något större.
Jag är tveksam till om ARM i sin tur är helt optimerad för massiva laster som körs datacenters som är i storleksordningen Facebooks datacenter i Luleå. Utvecklingen går emot brutalt stora datacenters som kör hur mycket som helst, ofta från helst olika kunder genom cloudtjänster. Ofta används flyttalsdelen väldigt lite och jag kan faktisk tänka mig lite bulldozer design med att ha mindre flyttals FPUer.
Du kan inte bara säga "ARM", att jämföra 32-bitars ARM med 64-bitars ARM är rätt mycket som att jämföra x86 med SPARC.
SPARC och x86 har samma minneskonsistensmodell (båda kör med något som kallas TSO, lätt för människor att förstå men allt annat än optimalt ur optimeringssynpunkt), båda ser stor nytta av SMT men är väl någonstans där de stora likheterna.
32-bitars ARM är på många sätt en lika horribel instruktionsuppsättning som x86. T.ex. så är i princip alla instruktioner villkorade på tillståndet hos statusregistret. Vem f-n tyckte det var en bra ide? Fanns säkert fördelar sent 80-tal / tidigt 90-tal om man siktade på mikrokontrollers, men en sådan design gör det rätt svårt att designa något med riktigt högt IPC.
Finns en rad andra designmissar i 32-bitars ARM, överhuvudtaget är 32-bitars ARM ett lysande exempel på att RISC/CISC uppdelningen är meningslös. Tror nog alla klassar 32-bitars ARM som "RISC", men den har massor med riktigt komplicerade instruktioner, finns en instruktion som kan spara/ladda godtyckligt antal register till/från stacken och den måste i praktiken mikrokodas (och är en instruktion som används väldigt mycket...).
64-bitars ARM är en helt ny instruktionsuppsättning, man har samma minneskonsistensmodell som 32-bitars ARM (då den modellen är både strömsnål och ger väldigt mycket utrymme för optimeringar på multicore CPUer). Däremot är formatet på instruktioner helt annorlunda, bara de instruktioner man förväntar sig vara villkorade är nu villkorade medan majoriteten är opåverkade samt påverkar inte själv statusregister (vissa instruktioner finns i två varianter, en som påverkar statusregister och en som inte gör det).
Går man in lite mer på detaljer så ser man också att det egentligen bara är de CPU-modeller som enbart stödjer 64-bitars ARM som presterar riktigt bra, rätt säker att förklaringen ligger rätt mycket i att man under en övergångsperiod var tvungen att stödja båda instruktionsuppsättningarna och då kunde man inte heller riktigt nå (och numera klå) x86 prestanda.
Apples riktigt snabba modeller är enbart 64-bit, ARMs första "desktop-class" krets (deras egna ord) är Cortex A76 som också är deras första rena 64-bitars krets.
Om du fortfarande är skeptiskt. Titta vad Crays nuvarande top-of-the-line produkt använder för CPU, det är Cavium Thunder X2 (som naturligtvis är en ren 64-bitars ARM).
Kan hålla med om "intressant", inte lika övertygad om "djuplodande".
Karln måste ju ha något personligt agg mot Intel.
Han kallar Cooper Lake för "två ihop-packade Skylake SP kretsar". Hade hade läst det material som visas i hans egen video borde han noterat att redan Cascade Lake är en delvis ny krets då den stödjer funktioner som Skylake SP saknar (detta finns i Intels officiella dokumentation för deras CPUer). Vidare stödjer Cascade Lake Optane memory (vilket var nyheten som presenterades, precis som nämns lanserades själva minneskretsarna tidigare i år).
Självklart finns möjligheten att Copper Lake aldrig släpps, men om den släpps är det redan känt att även etta är en krets med nya funktioner, som stöd för ett relativt nytt flyttalsformat som är tänkt för maskininlärning.
Fast hade han läst på de slides han visar i videon borde ju han inte säga "impossible to believe". Något som nämns är att Cascade Lake får stöd för något som kallas VNNI (som också det är beskrivet i den officiella dokumentationen för Intels CPUer).
VNNI är i princip HW-acceleration av "DL inference", så x17 i en CPU som består av två kretsar + får VNNI är rätt mycket vad man bör förvänta sig om man kollar vad VNNI faktiskt gör.
Givet design av Cascade Lake AP (framförallt om den saknar SMT) pekar ju på att det är en produkt nischad mot HPC, något som www.top500.com också gissar. D.v.s. det ser inte ut att vara en generell server-krets utan en mer en direkt ersättare för nyligen nedlagda Xeon Phi.