AMD stäms för falsk marknadsföring av Bulldozer med "åtta kärnor"

Permalänk
Medlem
Skrivet av Yoshman:

Tycker logiken är rätt glasklar.

Grundbulten för stämningen...

Det var egentligen inte stämningen jag tänkte på, utan din definition av praktiskt problem.

Skrivet av Yoshman:

Det är inte möjligt att få ut 224 GB/s ur 3,5 GB poolen på ett 970, men det är möjligt på 980 enda 4,0 GB pool. Vad som däremot är möjligt är att skapa en uppsättning GPU-program som använder 3,5 GB poolen ca 7/8 av tiden och 0,5 GB poolen ca 1/8 av tiden, aggregerad bandbredd kommer i det fallet bli 224 GB/s (crossbaren har långt mer bandbredd än VRAM så att två 32-bitars VRAM-bussar delar en crossarport är inte ett oöverstigligt hinder).

Varför ger inte detta 7/8 * 196GB/s + 1/8 * 28GB/s = 172.5+3.5GB/s = 176GB/s?
Borde inte cachning bete sig sämre under detta förhållande?

Oavsett, skulle det gå att skriva exempelvis ett dx11-spel som gör på det här sättet? Det känns lite mer cuda / bare metal att kunna styra grafikallokeringen så, men jag har inte rört grafisk kod på väldigt länge.

Visa signatur

Arch | 1440p 165Hz IPS | 7800X3D | 1080ti | 64GB@6GHz | SN850 2TB

Permalänk
Skrivet av skruvis:

För att kunna utvärdera detta så behövs standarden för hur en processorerkärna skall vara uppbyggd, hur andra bygger sina är ingen standard eller lag så kan du googla fram standarden för hur en kärna skall vara uppbyggd för att få kallas just en kärna så kanske vi kan bringa klarhet i det, inga subjektiviter eller hur andra bygger/konstruerar sin kärnor/cpuer.

Standard. https://sv.wikipedia.org/wiki/Internationell_standard

Covington Celeron har ingen L2 cache så du menar att det är ingen cpu då eller jag missuppfattar dig?
http://www.cpu-world.com/CPUs/Celeron/TYPE-Celeron%20(Covingt...

Edit: Någon som vet vem som äger rättigheterna till namnet cpu-kärna?

Du missuppfattar nog både mig och funktionen av cacheminnet. Det finns två typer av kärnor: Fysiska kärnor och logiska kärnor. Fysiska kärnor är självständiga kretsar kapabla att utföra egna beräkningar. När det bara fanns processorer med en kärna, kallades ofta kärnan för processorn. En fysisk kärna har eget L1 Cacheminne, och oftast L2 också. Så du kan ha en processor utan cacheminne över huvud taget som hämtar all sin information direkt från primärminnet. Nu till AMD och Intel:

AMD har inte åtta kärnor utan åtta logiska kärnor. Det är alltså inte 8 självständiga kärnor utan 4 kärnor som vardera är uppdelad i två moduler som kan utföra två instruktioner parallellt. Exempel på hur din dator identifierar kärnorna:

The New AMD fx8350 with eight cores! Datorn säger: AMD FX8350- 4 physical cores, 8 logical cores:
The New Core i7 6700k with four cores and hyperthreading!: Datorn säger: Intel 6700K 4 physical Cores, 8 logical Cores.
Ser du skillnaden? AMDs moduler är inte kärnor för de delar resurser med de andra modulerna, där modul+modul=1 kärna. Om du tittar noga på en bild av 5960X och FX8350, så ser du att varje kärna i 5960X är en egen krets, medans AMD har fyra kärnor, med två moduler i varje kärna, vilket de klassar som sina 8 kärnor. Men om du har en åtta-kärnig intel-processor och en åtta-kärnig AMD processor, så kan du sätta Hyperthreading på din intel processor och få 16 logiska kärnor, men inte på AMD för i praktiken har den bara 4 kärnor som delats upp i två moduler för att få bättre prestanda i flertrådade applikationer. Det är därför förvirrande att sätta texten 8-cores på sin processor, eftersom man då tror att den har 8 individuella kärnor, vilket den inte har. Logiska kärnor är ett nytt begrepp och har inte alltid funnits, så AMD har gjort en egen tolkning av vad en kärna är. Att processorer nuförtiden kan hantera flera instruktioner visste man ju inte på 50-60 talet när man började producera kretsar som skulle kunna utföra beräkningar, utan då var en kärna kretsen som utförde beräkningar i processorn.

Visa signatur

Chassi: NZXT H442 Silent Ultra Black New Edition || MOBO: Asus Z270E || CPU: Core i7 7700K || GPU: MSI Geforce GTX 1080Ti Gaming X || RAM: Corsair LPX 16Gb DDR4 || PSU: Corsair RM 1000i || SSD:Samsung 850 EVO 500+250 Gb || Kylning: NH-D15 ||

Permalänk
Skrivet av Yoshman:

Det finns praktiska problem med att skriva program för en design likt Pentium D (PS4/XBO har en snarlik design och bl.a. Nauty Dog har noterat samma typ av problem som Pentium D).

"As we’ve discussed before the PS4’s CPU is comprised of eight cores, which are split into two modules of four. Each of these modules has its own set of Level two cache, and for the sake of performance you don’t want the modules to access the others cache. So for example, let’s assume you want core three (which would sit in the first module) to process a piece of data which is being held in the cache of the second module. Doing so incurs a large performance penalty, coming in at around 190 cycles which is over six times slower than accessing data from its own shared level two cache."

Core2 quad hade en liknande design, själv valde jag Phenom X4 över Core2Quad just för att C2Q designen gjorde analysen av parallellprogrammering lurig när man använde CPU-kärnor som korsade "fel" gräns (samma problem Nauty Dog ser med PS4).

Det stämning handlar om är huruvida en kund kan förvänta sig att "8 CPU-kärnor" betyder att det finns 8 kärnor som i någon form kan utföra 8 gånger så mycket arbete som en kärna, han klagar på att AMDs marknadsföring är vilseledande för "kärnorna" i samma modul påverkar varandra.

Tar man ett problem som är "embarrassing parallel" så kommer både Pentium D och PS4/XBO verkligen köra programmet med linjär "speed-up" motsvarande antalet kärnor, så stämningen i formen den nu har skulle direkt falla där.

Du verkar ju kunna en del om det här på detaljnivå, vet du om det finns en internationell standard på vad som exakt får klassas som en kärna?

Visa signatur

Chassi: NZXT H442 Silent Ultra Black New Edition || MOBO: Asus Z270E || CPU: Core i7 7700K || GPU: MSI Geforce GTX 1080Ti Gaming X || RAM: Corsair LPX 16Gb DDR4 || PSU: Corsair RM 1000i || SSD:Samsung 850 EVO 500+250 Gb || Kylning: NH-D15 ||

Permalänk
Medlem

Har läst om det här länge nu.. Jag har alltid ansett att AMD's octa-core är som en sämre i7:a med Hyperthreading.. men ja, folk som inte kan datorer blir ju besvikna..

Visa signatur

My rig 144hz 1440p 27" samsung g5, xfx 6950xt, 11900K, TM Peerless assassin,Gigabyte z590 UD, 32GB 3200MHz Vengeance, 1tb nv2, 2TB SSD 4TB HDD, corsair750 vengeance, Lancool 215.
GFs rig 144Hz samsung 1080p, Palit 3060Ti, 10400F,corsair H60 , B560 Auros, 16GB 3000MHz, 500GB NV1, 480GB A400, 2TB+750GB HDD, Seasonic 650 gold, Kolink Void Laptop Lenovo Legion 5, 2060, 4800H, 16GB, 1,5TB NVME HTPC 3060, 10400F, 16GB, 500GB NVME, 960GB A400 3rd PC 3060Ti, 3700X, Hyper 212, 16GB, 250GB SSD, 2TB HDD, 650w gold, P300A

Permalänk
Medlem
Skrivet av FlyingKiwibird:

Fysiska kärnor är självständiga kretsar kapabla att utföra egna beräkningar.

Enligt vilken standard/norm då?

Skrivet av FlyingKiwibird:

så AMD har gjort en egen tolkning av vad en kärna är.

Klart dom har gjort dom kan inte göra något annat eftersom det inte finns någon standard för hur en kärna eller processing core ska vara uppbyggd/fungera denna processing core sitter sedan i en CPU i AMD´s fall med FX8xxx består CPU´n av 4st moduler i dessa moduler finns det 2st kärnor/modul.

Operativsystemet identifierar modulerna felaktigt som processing cores samt den hittar även dom 8 kärnorna & presenterar mycket riktigt dom som 8 logiska processorer.

Man kan kalla (som jag skrev i min sign. när jag hade en 8320) exempelvis en FX8320 för 4M/8T vilken gemene man inte hade förstått alls.

Men 8 kärnor har den oavsett hur dom är uppbyggda/fungerar eller vad vi tycker/tror/önskar/vill/hoppas att den har.

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
Skrivet av sniglom:

Det var egentligen inte stämningen jag tänkte på, utan din definition av praktiskt problem.

Varför ger inte detta 7/8 * 196GB/s + 1/8 * 28GB/s = 172.5+3.5GB/s = 176GB/s?
Borde inte cachning bete sig sämre under detta förhållande?

Oavsett, skulle det gå att skriva exempelvis ett dx11-spel som gör på det här sättet? Det känns lite mer cuda / bare metal att kunna styra grafikallokeringen så, men jag har inte rört grafisk kod på väldigt länge.

Bandbredd mot cache är långt högre än minnesbandbredden och vad man specificerar är bandbredd mot VRAM, inte bandbredd mot cache.

Man når 224 GB/s om alla åtta 32-bitars VRAM-bussar används samtidigt, allt "ovanför" VRAM-bussen har långt mer kapacitet än VRAM (bl.a. för att kunna hantera bandbredd från L2$) så gör man det jag beskriver kommer alla åtta 32-bitars VRAM-bussar lastas maximalt och man får sina 224 GB/s. Kör man bara från 3,5 GB poolen är minnet kopplat så varje 1 kB block går mot en ny VRAM-buss och man gör detta för sju 32-bitars VRAM bussar (den 8:e används av 0,5 GB poolen).

Skrivet av FlyingKiwibird:

Du verkar ju kunna en del om det här på detaljnivå, vet du om det finns en internationell standard på vad som exakt får klassas som en kärna?

Så vitt jag vet finns ingen standard, men kom på att Linux använder en standardfunktion för att fråga CPUn själv hur många kärnor och trådar den har. Här har killen med stämningen rätt mycket kött!!!

Här är vad man får om man läser /proc/cpuinfo på ett system med FX-8350

processor : 0 vendor_id : AuthenticAMD cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor stepping : 0 microcode : 0x6000822 cpu MHz : 1400.000 cache size : 2048 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold bmi1 bogomips : 8026.61 TLB size : 1536 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

Här är hur Linux läser denna information.

D.v.s. läser man den information AMD själva stoppat ner i i CPU, som beskriver vilka egenskaper modellen har, så säger man att FX-8350 har fyra kärnor och åtta "syskon" (Linux benämning på CPU-trådar).

Bättre "bevis" än så lär han inte hitta kring att "åtta kärnor" är vilseledande.

Edit:
@skruvis: tror inte CPU-Z frågar CPU om konfiguration som t.ex. antal kärnor och cache-storlek utan den har någon form av databas. Den lär i alla fall inte fråga på "rätt" sätt då CPUID uppenbarligen hävdar att FX-8350 är fyrkärnig. CPUID är en standardfunktion i moderna x86or.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Bandbredd mot cache är långt högre än minnesbandbredden och vad man specificerar är bandbredd mot VRAM, inte bandbredd mot cache.

Man når 224 GB/s om alla åtta 32-bitars VRAM-bussar används samtidigt, allt "ovanför" VRAM-bussen har långt mer kapacitet än VRAM (bl.a. för att kunna hantera bandbredd från L2$) så gör man det jag beskriver kommer alla åtta 32-bitars VRAM-bussar lastas maximalt och man får sina 224 GB/s. Kör man bara från 3,5 GB poolen är minnet kopplat så varje 1 kB block går mot en ny VRAM-buss och man gör detta för sju 32-bitars VRAM bussar (den 8:e används av 0,5 GB poolen).

Så vitt jag vet finns ingen standard, men kom på att Linux använder en standardfunktion för att fråga CPUn själv hur många kärnor och trådar den har. Här har killen med stämningen rätt mycket kött!!!

Här är vad man får om man läser /proc/cpuinfo på ett system med FX-8350

processor : 0 vendor_id : AuthenticAMD cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor stepping : 0 microcode : 0x6000822 cpu MHz : 1400.000 cache size : 2048 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold bmi1 bogomips : 8026.61 TLB size : 1536 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

Här är hur Linux läser denna information.

D.v.s. läser man den information AMD själva stoppat ner i i CPU, som beskriver vilka egenskaper modellen har, så säger man att FX-8350 har fyra kärnor och åtta "syskon" (Linux benämning på CPU-trådar).

Bättre "bevis" än så lär han inte hitta kring att "åtta kärnor" är vilseledande.

Edit:
@skruvis: tror inte CPU-Z frågar CPU om konfiguration som t.ex. antal kärnor och cache-storlek utan den har någon form av databas. Den lär i alla fall inte fråga på "rätt" sätt då CPUID uppenbarligen hävdar att FX-8350 är fyrkärnig. CPUID är en standardfunktion i moderna x86or.

Windows själv ser väl alla som logiska processorer, AMD själva har alltid varit tydliga med att det inte är åtta självständiga processorer, något som skulle kunna prestera ännu sämre än en 4M Bulldozer för den delen, sen är ju traditionell CMP ofta uppdelat i olika delar där de delar cache i olika grupper o.s.v. där prestandan påverkas av om trådarna delar cache eller inte med mera.

Pratar vi GPUer så kan de absolut inte brytas ner till "en Cuda-kärna", "en EU" eller "en stream-processor", för där ingår varken en hel pipeline eller front-end, de har oftast någon form av global command stream/dispatch och sen någon form av subslice med beräkningsenheter och fetch. Ändå marknadsförs det som "cores" till konsumenter. Maxwell har ju t.ex. 128 CUDA-kärnor per SMM (kluster, minsta enheten med scheduler och registerfil) och minst 512 CUDA-kärnor i en grafikprocessor. Ska vi inte börja kalla GTX 960 för en GPU med åtta CUDA-kärnor? Ser inte hur det skulle vara relevant, för utvecklarna finns modul/int-cluster och SMM-konceptet (där "cuda-cores" blir block? för programmeraren) med i det hela ändå.

Permalänk
Medlem
Skrivet av Yoshman:

Edit:
@skruvis: tror inte CPU-Z frågar CPU om konfiguration som t.ex. antal kärnor och cache-storlek utan den har någon form av databas. Den lär i alla fall inte fråga på "rätt" sätt då CPUID uppenbarligen hävdar att FX-8350 är fyrkärnig. CPUID är en standardfunktion i moderna x86or.

Även om det är en standard funktion så får man fråga sig om den tolkar modulerna rätt, verkar inte så enligt AMD iaf. eftersom AMD är tydlig med att det är moduler, eller?

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
Skrivet av Petterk:

Windows själv ser väl alla som logiska processorer, AMD själva har alltid varit tydliga med att det inte är åtta självständiga processorer, något som skulle kunna prestera ännu sämre än en 4M Bulldozer för den delen, sen är ju traditionell CMP ofta uppdelat i olika delar där de delar cache i olika grupper o.s.v. där prestandan påverkas av om trådarna delar cache eller inte med mera.

Pratar vi GPUer så kan de absolut inte brytas ner till "en Cuda-kärna", "en EU" eller "en stream-processor", för där ingår varken en hel pipeline eller front-end, de har oftast någon form av global command stream/dispatch och sen någon form av subslice med beräkningsenheter och fetch. Ändå marknadsförs det som "cores" till konsumenter. Maxwell har ju t.ex. 128 CUDA-kärnor per SMM (kluster, minsta enheten med scheduler och registerfil) och minst 512 CUDA-kärnor i en grafikprocessor. Ska vi inte börja kalla GTX 960 för en GPU med åtta CUDA-kärnor? Ser inte hur det skulle vara relevant, för utvecklarna finns modul/int-cluster och SMM-konceptet (där "cuda-cores" blir block? för programmeraren) med i det hela ändå.

Varken Nvidia eller AMD säger att deras GPUer har ett visst antal kärnor, de säger att korten har ett visst antal CUDA-kärnor / stream-kärnor vilket signalerar att det handlar om något annat än "vanliga" kärnor. CUDA-kärna är, till skillnad från "CPU-kärnor", faktiskt väldigt väl definierad. För att begripa CUDA-kärna definitionen måste man förstå de absoluta grunderna kring programmeringsmodellen i CUDA-program (samma modell används också av OpenCL och DirectCompute).

För att ta ett väldigt simpelt fall, tänk addition av vektorer. Om vi addera vektor A med vetor B får vi en ny vektor, låt oss kalla den R

R = A + B

vektoraddition utförs genom att addera det element i A som ligger på samma position i B, summan blir då värdet för den positionen i R.

I traditionell kod beskriver man denna process som att gå element för element och addera Ai med Bi. Om vektorn är lagrad i minnet som en sekvens av flyttal skulle det kunna se ut så här

vector_add (float * R, const float * A, const float * B, int dim) { for (int i = 0; i < dim; i++) { R[i] = A[i] + B[i]; } }

Är extremt svårt för en kompilator att lura att det faktum att varje addition faktiskt är helt oberoende av alla andra, detta är ett data-parallellt problem. CUDA är specifikt framtaget för att beskriva data-parallella system, man skriver då sitt program för EN av beräkningarna och problemets dimension (antal fält i vektorn i detta fall) är skickas med vid starten av programmet i stället för att vara argument. Samma program i CUDA skulle kunna se ut så här

vector_add (float * R, const float * A, const float * B) { int i = threadIdx.x; /* den implicita x-koordinaten den position som denna tråd ska hantera */ R[i] = A[i] + B[i]; }

D.v.s. man beskriver hur ett fält beräknas och det är upp till runtime att lägga ut alla fälten på tillgängliga resurser.

En GPU med X antal CUDA-kärnor kan varje cykel köra en instruktion för upp till X sådana program. Faktum att man kan enkelt räkna ut antalet "CUDA-kärnor" i t.ex. FX-8350 och i7-4790.

FX-8350 kan köra två SSE-instruktioner eller en AVX-instruktion per cykel och modul, då AVX-register är dubbelt så breda blir båda fallen samma antal CUDA-kärnor. Det är 256 (bredden på ett AVX-register) / 32 (antal bitar i en float) = 8 st. Så 8 CUDA-kärnor per modul, 32 CUDA-kärnor totalt.

i7-4790 kan köra två AVX-instruktioner per cykel och kärna, så det är 16 CUDA-kärnor per CPU-kärna, 64 CUDA-kärnor totalt.

Så lär knappast bli någon stämning kring CUDA-kärnor (eller stream-kärnor som har samma definition) då det är väldigt väldefinierat vad en sådan är och dagens GPUer uppfyller detta.

Skrivet av skruvis:

Även om det är en standard funktion så får man fråga sig om den tolkar modulerna rätt, verkar inte så enligt AMD iaf. eftersom AMD är tydlig med att det är moduler, eller?

Är inte så mycket att tolka, funktionen i fråga returnerar information om antal processorer (är alltid en för konsumentprodukter, kan vara flera för servers), antal logiska CPU-trådar, antal "CPU-kärnor" (OBS att det är AMD som gjort denna definition). Finns ett program du kan ladda ner och köra lägst ned på AMDs sida (har inte testat själv men om den använder CPUID kommer man få samma svar som på Linux, d.v.s. FX-8350 säger att den har 4 kärnor).

Här måste man ändå säga att det blir lite vilseledande. I den information som är tänkt för människor, men som för OSet saknar relevans står det

"AMD FX(tm)-8350 Eight-Core Processor"

I den information som är tekniskt viktig då OS behandlar "riktiga" kärnor annorlunda än "logiska" kärnor säger CPUn att det är 4 kärnor och 8 trådar. Verkar dock som Windows, i alla fall tidigare, inte använde denna information då det initialt krävdes en patch för schemaläggaren i Windows för att hantera Bulldozer-designen väl. Linux kunde redan från start anpassa sig då den baserar sina beslut på CPUID informationen.

Notera också att det är AMDs ingenjörer som gjort definitionen/klassifikationen, de anser att rent tekniskt är det en CPU med fyra kärnor och SMT.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Bandbredd mot cache är långt högre än minnesbandbredden och vad man specificerar är bandbredd mot VRAM, inte bandbredd mot cache.

Man når 224 GB/s om alla åtta 32-bitars VRAM-bussar används samtidigt, allt "ovanför" VRAM-bussen har långt mer kapacitet än VRAM (bl.a. för att kunna hantera bandbredd från L2$) så gör man det jag beskriver kommer alla åtta 32-bitars VRAM-bussar lastas maximalt och man får sina 224 GB/s. Kör man bara från 3,5 GB poolen är minnet kopplat så varje 1 kB block går mot en ny VRAM-buss och man gör detta för sju 32-bitars VRAM bussar (den 8:e används av 0,5 GB poolen).

Så vitt jag vet finns ingen standard, men kom på att Linux använder en standardfunktion för att fråga CPUn själv hur många kärnor och trådar den har. Här har killen med stämningen rätt mycket kött!!!

Här är vad man får om man läser /proc/cpuinfo på ett system med FX-8350

processor : 0 vendor_id : AuthenticAMD cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor stepping : 0 microcode : 0x6000822 cpu MHz : 1400.000 cache size : 2048 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold bmi1 bogomips : 8026.61 TLB size : 1536 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

Här är hur Linux läser denna information.

D.v.s. läser man den information AMD själva stoppat ner i i CPU, som beskriver vilka egenskaper modellen har, så säger man att FX-8350 har fyra kärnor och åtta "syskon" (Linux benämning på CPU-trådar).

Bättre "bevis" än så lär han inte hitta kring att "åtta kärnor" är vilseledande.

Edit:
@skruvis: tror inte CPU-Z frågar CPU om konfiguration som t.ex. antal kärnor och cache-storlek utan den har någon form av databas. Den lär i alla fall inte fråga på "rätt" sätt då CPUID uppenbarligen hävdar att FX-8350 är fyrkärnig. CPUID är en standardfunktion i moderna x86or.

Windows identifierar också fx8350 som 4 physical cores och 8 logical cores, och rent praktiskt borde man väl kunna använda en physical core som egen beräkningsenhet, medans man behöver 2 moduler från AMDs processor för att kunna utföra samma beräkning? eller kan man utföra samma arbete med 1 modul som med en kärna, även om det går långsammare i singeltrådade applikationer?

Visa signatur

Chassi: NZXT H442 Silent Ultra Black New Edition || MOBO: Asus Z270E || CPU: Core i7 7700K || GPU: MSI Geforce GTX 1080Ti Gaming X || RAM: Corsair LPX 16Gb DDR4 || PSU: Corsair RM 1000i || SSD:Samsung 850 EVO 500+250 Gb || Kylning: NH-D15 ||

Permalänk
Datavetare
Skrivet av FlyingKiwibird:

Windows identifierar också fx8350 som 4 physical cores och 8 logical cores, och rent praktiskt borde man väl kunna använda en physical core som egen beräkningsenhet, medans man behöver 2 moduler från AMDs processor för att kunna utföra samma beräkning? eller kan man utföra samma arbete med 1 modul som med en kärna, även om det går långsammare i singeltrådade applikationer?

Ok, i så fall använder Windows med stor sannolikhet också CPUID för att detektera "fysiska kärnor" och totala antalet CPU-trådar (logiska-kärnor).

I det läget är varje modul en "fysisk kärna" och varje sådan har två CPU-trådar. Hur beräkningsenheter används styrs inte av OSet, men vad schemaläggaren försöker göra är att först använda en CPU-tråd per fysisk kärna och börja använda "den andra" CPU-tråden i en viss kärna först när det inte finns fler lediga "fysiska" kärnor.

Tanken med detta är att "fysiska" kärnor är oberoende så skalningen är linjär (om problemet i fråga är oberoende), medan man får en mindre effekt när man börja köra flera trådar per fysisk kärna.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

FX-8350 kan köra två SSE-instruktioner eller en AVX-instruktion per cykel och modul, då AVX-register är dubbelt så breda blir båda fallen samma antal CUDA-kärnor. Det är 256 (bredden på ett AVX-register) / 32 (antal bitar i en float) = 8 st. Så 8 CUDA-kärnor per modul, 32 CUDA-kärnor totalt.

i7-4790 kan köra två AVX-instruktioner per cykel och kärna, så det är 16 CUDA-kärnor per CPU-kärna, 64 CUDA-kärnor totalt.

Haswell kan köra två 256-bit FMA eller FMUL per cykel, men det är en op för heltal och lite annat och en op per cykel för FADD. Men det hela betyder givetvis en stor skjuts för AVX2/FMA-kod, något 2011-era Sandy Bridge såklart inte hade stöd för. FMA i CUDA kom inte fören Fermi, CUDA-kärnor kom såklart innan. Jag har inte skrivit något i CUDA, men noterade att de inte använder begreppet kärnor/cores utan talar istället om sina blocks och kallar deras SM för "multiprocessors" som är minsta enheten som har någon egen pipeline att tala om. Talar vi om 64-bit FP add, multiply och multiply-add så har en SM i Maxwell möjlighet att köra upp till 4 ops per cykel. Eftersom SB/Ivy kan köra 8 ops per cykel för samma sak så hjälper det inte att GTX 960 har 8 SMs och är ju ingen definition på vad en Cuda-kärna är. Vad en Cuda-kärna eller SM är kapabel till skiljer mellan olika generationer, så för utvecklare är knappast den siffran av antalet alltid det mest intressanta och är något de riktar till konsumenterna som en detalj för att skilja mellan olika kort/prestanda snarare.

BD/PD bör väl nästan räknas som en hybrid då heltalsklustren i praktiken nyttjar FGMT samt nyttjar en tråd i taget och FPUn SMT. Hur som har AMD varit tydliga med att det inte är ren och traditionell CMP. För utvecklarna gör den ju det som dokumentationen säger.

Permalänk
Medlem
Skrivet av FlyingKiwibird:

Du missuppfattar nog både mig och funktionen av cacheminnet. Det finns två typer av kärnor: Fysiska kärnor och logiska kärnor. Fysiska kärnor är självständiga kretsar kapabla att utföra egna beräkningar. När det bara fanns processorer med en kärna, kallades ofta kärnan för processorn. En fysisk kärna har eget L1 Cacheminne, och oftast L2 också. Så du kan ha en processor utan cacheminne över huvud taget som hämtar all sin information direkt från primärminnet. Nu till AMD och Intel:

AMD har inte åtta kärnor utan åtta logiska kärnor. Det är alltså inte 8 självständiga kärnor utan 4 kärnor som vardera är uppdelad i två moduler som kan utföra två instruktioner parallellt. Exempel på hur din dator identifierar kärnorna:

The New AMD fx8350 with eight cores! Datorn säger: AMD FX8350- 4 physical cores, 8 logical cores:
The New Core i7 6700k with four cores and hyperthreading!: Datorn säger: Intel 6700K 4 physical Cores, 8 logical Cores.
Ser du skillnaden? AMDs moduler är inte kärnor för de delar resurser med de andra modulerna, där modul+modul=1 kärna. Om du tittar noga på en bild av 5960X och FX8350, så ser du att varje kärna i 5960X är en egen krets, medans AMD har fyra kärnor, med två moduler i varje kärna, vilket de klassar som sina 8 kärnor. Men om du har en åtta-kärnig intel-processor och en åtta-kärnig AMD processor, så kan du sätta Hyperthreading på din intel processor och få 16 logiska kärnor, men inte på AMD för i praktiken har den bara 4 kärnor som delats upp i två moduler för att få bättre prestanda i flertrådade applikationer. Det är därför förvirrande att sätta texten 8-cores på sin processor, eftersom man då tror att den har 8 individuella kärnor, vilket den inte har. Logiska kärnor är ett nytt begrepp och har inte alltid funnits, så AMD har gjort en egen tolkning av vad en kärna är. Att processorer nuförtiden kan hantera flera instruktioner visste man ju inte på 50-60 talet när man började producera kretsar som skulle kunna utföra beräkningar, utan då var en kärna kretsen som utförde beräkningar i processorn.

Jag är rätt säker att du har det omvänt. 83xx har fyra moduler som vardera kan köra två trådar. Alltså är det två trådar per modul, inte 2 moduler per kluster.

Skickades från m.sweclockers.com

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem
Skrivet av Yoshman:

Ok, i så fall använder Windows med stor sannolikhet också CPUID för att detektera "fysiska kärnor" och totala antalet CPU-trådar (logiska-kärnor).

I det läget är varje modul en "fysisk kärna" och varje sådan har två CPU-trådar. Hur beräkningsenheter används styrs inte av OSet, men vad schemaläggaren försöker göra är att först använda en CPU-tråd per fysisk kärna och börja använda "den andra" CPU-tråden i en viss kärna först när det inte finns fler lediga "fysiska" kärnor.

Tanken med detta är att "fysiska" kärnor är oberoende så skalningen är linjär (om problemet i fråga är oberoende), medan man får en mindre effekt när man börja köra flera trådar per fysisk kärna.

Om en modul är en fysisk kärna då innebär det att när man kör cinebench enkeltråd så använder Fx propparna bara en halvkärna menar du? Inte konstigt att dom kommer efter Intel som tillåts använda en hel kärna!

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
Skrivet av skruvis:

Om en modul är en fysisk kärna då innebär det att när man kör cinebench enkeltråd så använder Fx propparna bara en halvkärna menar du? Inte konstigt att dom kommer efter Intel som tillåts använda en hel kärna!

Nej, de använder en tråd ur en fysisk kärna. Precis som alla Intels modeller med HyperThreading.

Det intressanta i informationen från CPUID är främst att den är skapad av AMDs och enligt AMDs definition är det 4 kärnor och 8 CPU-trådar i FX-8xxx serien.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av philipborg:

Jag är rätt säker att du har det omvänt. 83xx har fyra moduler som vardera kan köra två trådar. Alltså är det två trådar per modul, inte 2 moduler per kluster.

Skickades från m.sweclockers.com

Det är helt rätt, skrev fel där när jag skulle jämföra dem med Intels version av kärnor och hyperthreading.

Visa signatur

Chassi: NZXT H442 Silent Ultra Black New Edition || MOBO: Asus Z270E || CPU: Core i7 7700K || GPU: MSI Geforce GTX 1080Ti Gaming X || RAM: Corsair LPX 16Gb DDR4 || PSU: Corsair RM 1000i || SSD:Samsung 850 EVO 500+250 Gb || Kylning: NH-D15 ||

Permalänk
Medlem
Skrivet av Yoshman:

Nej, de använder en tråd ur en fysisk kärna. Precis som alla Intels modeller med HyperThreading.

Det intressanta i informationen från CPUID är främst att den är skapad av AMDs och enligt AMDs definition är det 4 kärnor och 8 CPU-trådar i FX-8xxx serien.

Skillnaden är att i AMD´s fall så nyttjas modulen (kärnan ) bara till 50% medans Intels kärna nyttjas till 100%. (Då kanske bänktesterna/applikationer etc. ska skrivas om till att nyttja kärnor istället för trådar??)

Hittade detta. (angående prestanda, korrekthet okänd)
https://www.youtube.com/watch?v=dYvNv_xYqss

Var hämtade du cpuid informationen ifrån?

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
Skrivet av skruvis:

Skillnaden är att i AMD´s fall så nyttjas modulen (kärnan ) bara till 50% medans Intels kärna nyttjas till 100%. (Då kanske bänktesterna/applikationer etc. ska skrivas om till att nyttja kärnor istället för trådar??)

Hittade detta. (angående prestanda, korrekthet okänd)
https://www.youtube.com/watch?v=dYvNv_xYqss

Var hämtade du cpuid informationen ifrån?

Exakt. Det är just den delen som är en så total designmiss i Bulldozer, i stället för att få fördelarna de flesta SMT-implementationer har, högre enkeltrådprestanda då alla resurser kan användas av en CPU-tråd, så fick man i stället långt fler av nackdelarna (t.ex. mindre skalning med CPU-trådar än "riktiga" kärnor).

CPUID informationen läser man ut med en assemblerinstruktion. Linux skriver ut den informationen "mänskligt läsbar" via filen /proc/cpuinfo, så jag googlde bara fram någon som listat innehållet i den filen på en FX-8350 då jag inte har någon själv.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av anon5930:

AMD behöver inte detta nu. Processorn har åtta kärnor även om varje kärna inte riktigt ser ut som en traditionell kärna nödvändigtvis gör. Förhoppningsvis så stoppas detta tidigt.

Får hoppas att han inte snokar reda på hur Intel gamla Core 2 Quads faktiskt var byggda.

Jasså berätta?

Permalänk
Medlem
Skrivet av Anon@tor:

Jasså berätta?

Core 2 Quad-processorerna hade två separata Core 2 Duo-kisel under heatspreadern med två kärnor vardera. Dvs fyra fristående kärnor med egna trådar, cache och allting, så jag vet inte hur det skulle vara relevant.

Permalänk
Medlem
Skrivet av Yoshman:

Nej, de använder en tråd ur en fysisk kärna. Precis som alla Intels modeller med HyperThreading.

Det intressanta i informationen från CPUID är främst att den är skapad av AMDs och enligt AMDs definition är det 4 kärnor och 8 CPU-trådar i FX-8xxx serien.

Skulle det inte kunna vara så att AMD har angett 4 kärnor och 8 trådar för att få moderna OS att dela cache mellan kärnorna?

Skickades från m.sweclockers.com

Visa signatur

Mjölnir: Ryzen 9 3900X | X570-I | Ballistix Sport 32GB | Powercolor RX 5500XT 4GB ITX | Kolink Sattelite
Server: Ryzen 5 1400 | X470-F | Ballistix Sport 24GB | ASUS HD 7790 2GB | Sapphire RX 470 8GB ME | NZXT Switch 810

Permalänk
Medlem

@kangarooster:
Nej du har rätt. Jag måste fått det hela om bakfoten.

Visa signatur

i5 4790K, 8 GB XMS3 1600 Mhz, RX 5700XT, Gigabyte G1.Sniper M5

Permalänk
Skrivet av Sgt. Stinger:

@kangarooster:
Nej du har rätt. Jag måste fått det hela om bakfoten.

Rätt angående vad?

Edit: Jaha, nu kom jag på. Hade glömt bort det inlägget

Permalänk
Medlem
Skrivet av Dr.Mabuse:

Bilen stod still och hon skulle öppna locket varpå hon fick kaffet över sig. En olycka, inte felaktigt användande.
Man kan diskutera vem fel det är men att servera kaffe med en temperatur på nästan 100°C i en kaffemugg är ansvarslöst.

Om jag minns rätt ang den händelsen så var det just att McDonalds vägrade fixa felet, och vägrade iaf betala hennes sjukhuskostnader som drev på det, två saker som de självklart bör ha gjort. Hon själv ville inte stämma för miljoner, utan bara ha nog för att täcka hennes skador.

Sen när advokater drogs in så blev det stora summor och stort mål, vilket ofta gör att USA reagerar och då blir ofta summorna orealistiskt stora. Dock i detta fallet tycker jag personligen det var rätt åt McDonalds när de betedde sig som skit stövlar.

@jOnÄTÄn
Du kan stämma i Sverige också, men du hade troligen inte fått några vansinnes skadestånd dock, men du kan lätt få alla räkningar, omkostnader samt extra för skada och värk mm.

Permalänk
Hjälpsam

MacDonalds gjorde tre fel.
De serverade skadligt hett kaffe.
De serverade kaffet i en ostadig kaffemugg, utan att skicka med en bricka med mugghållare.
De kände till att folk fått problem tidigare på grund av detta men valde att inte göra något åt det.

Efter domen sänkte McDonalds temperaturen på kaffet och började leverera brickor med mugghållare.
Orsaken till det höga skadeståndet var på en regel som finns i USA, som säger att om företaget känner till problemet sätts skadeståndet, så högt att det svider för företaget, inte för att kompensera den drabbade.
Den drabbade var en 79 år gammal tant som fick tredje gradens brännskador i skrevet, hon hade nog med pengar, även innan denna olycka och hade nog hellre sluppit allt lidande och sjukdom, pengarna fick hon inte mycket glädje av.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Avstängd
Skrivet av Ratatosk:

MacDonalds gjorde tre fel.
De serverade skadligt hett kaffe.
De serverade kaffet i en ostadig kaffemugg, utan att skicka med en bricka med mugghållare.
De kände till att folk fått problem tidigare på grund av detta men valde att inte göra något åt det.

Efter domen sänkte McDonalds temperaturen på kaffet och började leverera brickor med mugghållare.
Orsaken till det höga skadeståndet var på en regel som finns i USA, som säger att om företaget känner till problemet sätts skadeståndet, så högt att det svider för företaget, inte för att kompensera den drabbade.
Den drabbade var en 79 år gammal tant som fick tredje gradens brännskador i skrevet, hon hade nog med pengar, även innan denna olycka och hade nog hellre sluppit allt lidande och sjukdom, pengarna fick hon inte mycket glädje av.

Fel?

Kaffe ska vara ca 92-96c för bästa smak.
Bricka med mugghållare behövs inte.
Varför göra något åt kunders slarv?

Tanten får helt enkelt skylla sig själv för att ha slarvat med kaffet och spillt ut det över sig (troligen medvetet för att driva skadeståndsprocessen) då det i USA stäms för precis allt, bara för att få pengar och driva en process.

Visa signatur

System: Corsair Obsidian 550D Midi Tower Svart || Corsair AX 850W PSU || Intel® Core i7-3770K Processor || ASUS P8P67-M || 2 x Intel® SSD 520 Series 180GB || Gigabyte GeForce GTX 670 2GB PhysX CUDA ||

Permalänk
Avstängd
Skrivet av Ratatosk:

MacDonalds gjorde tre fel.
De serverade skadligt hett kaffe.
De serverade kaffet i en ostadig kaffemugg, utan att skicka med en bricka med mugghållare.
De kände till att folk fått problem tidigare på grund av detta men valde att inte göra något åt det.

Efter domen sänkte McDonalds temperaturen på kaffet och började leverera brickor med mugghållare.
Orsaken till det höga skadeståndet var på en regel som finns i USA, som säger att om företaget känner till problemet sätts skadeståndet, så högt att det svider för företaget, inte för att kompensera den drabbade.
Den drabbade var en 79 år gammal tant som fick tredje gradens brännskador i skrevet, hon hade nog med pengar, även innan denna olycka och hade nog hellre sluppit allt lidande och sjukdom, pengarna fick hon inte mycket glädje av.

I USA verkar dock sunt förnuft inte vara nödvändigt.

Skickades från m.sweclockers.com

Visa signatur

||NZXT H440 Black/Red||Intel i5 2500k @ 4,2GHz ||Noctua NH-D14 ||GA-Z77X-UD3H ||8 gb Corsair Vengeance 1600mhz DDR3 ||MSI GeForce GTX 970 ||OCZ Agility 3 120GB SSD ||Samsung Spinpoint F3 1TB ||Corsair HX750W||
Software is like sex, it's better when it's free. - Linus Torvalds

Permalänk
Medlem

Mycket gnäll mot ett av de få länder som har en konsumentlagstiftning värd namnet.

Permalänk
Hjälpsam
Skrivet av PowerNet:

Fel?

Kaffe ska vara ca 92-96c för bästa smak.
Bricka med mugghållare behövs inte.
Varför göra något åt kunders slarv?

Tanten får helt enkelt skylla sig själv för att ha slarvat med kaffet och spillt ut det över sig (troligen medvetet för att driva skadeståndsprocessen) då det i USA stäms för precis allt, bara för att få pengar och driva en process.

Kaffe skall bryggas med 92-96 för bästa smak, själv brygger jag med kokande vatten, men jag dricker fan inte inte kaffe som är nästan hundra grader.
Det går utmärkt att brygga skållhett kaffe för att sedan kyla ned det till en lagom varm temperatur, du kan tex brygga det i kyld porslinsmugg för att sedan hälla över det till en pappmugg.

Hälla kokhett kaffe i skrevet medvetet vad är det för trams!

Du kan själv titta på hennes skador 5:10 in i videon, VARNING!, det är jävligt otäcka bilder.
https://www.youtube.com/watch?v=pCkL9UlmCOE

edit För att förtydliga, det är alltså frågan om servering i en drivetrough, bilen saknar som många andra bilar mugghållare bak, det följer inte med någon bricka eller mugghållare med det skållheta kaffet, tanten skall alltså ballansera en pappmugg med skållhett kaffe mellan knäna, det gick åt skogen och det var inte heller första gången, McDonalds kände till problemen, därav det höga skadeståndet.

Citat:
  • Första graden innebär att hudens yttersta lager skadas och huden blir röd.

  • Andra gradens skada går ner i hudens mellanlager. Huden blir röd, svider och det bildas blåsor.

  • Tredje gradens skada förstör alla tre hudlager. Huden blir vit eller brun och känns hårdare än vanligt. Att få tredje gradens brännskada av vatten tar 1 sekund vid 65 °C, 5–10 sekunder vid 57 °C, 1,5 minut vid 52 °C och mer än 5 minuter vid 50 °C.

http://www.omboende.se/sv/Aga1/Hus/Varmattnets-temperatur/

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av PowerNet:

Fel?

Kaffe ska vara ca 92-96c för bästa smak.
Bricka med mugghållare behövs inte.
Varför göra något åt kunders slarv?

Tanten får helt enkelt skylla sig själv för att ha slarvat med kaffet och spillt ut det över sig (troligen medvetet för att driva skadeståndsprocessen) då det i USA stäms för precis allt, bara för att få pengar och driva en process.

Hemska tanke att försöka dricka det kaffet. xD

Bryggtemperatur är en sak och temperaturen när man ska dricka det en annan.

Dricker mest kokkaffe själv, men man får ju vänta längre då såklart innan man kan dricka det.