Skrivet av osgorth:
Jag är tämligen säker på att det inte är möjligt. Nu hittar jag tyvärr inte källan, men jag vill minnas att det nämnts i nåt sammanhang att konfigurationen måste vara symmetrisk, dvs med identiskt antal kärnor på varje CCX. Så är det också på samtliga lanserade SKUs.
Inte så du läst det på Reddit eller möjligen i denna artikel?
"At the chiplet-level you can dial down core counts from 4+4 to 3+3, 2+2, and 1+1, but never asymmetrically, such as 4+0 (which was possible on first-generation Zen)."
Det som står där är uppenbart fel givet att nyligen lanserade 3300X just har en 4+0 konfiguration.
I Linux kan man slå av/på alla kärnor utom den första kärnan runtime. Det går att läsa ut konfigurationen för en CPU, det intressanta här är att på en 3900X så rapporterar faktiskt CPUn att det rent fysiskt finns 16 CPU-kärnor och 32 trådar, men det är inte möjligt att slå på de sista 4 kärnorna.
Kärnan märker att det rent fysiskt finns 16 kärnor, så den har allokerat utrymme för upp till 16 kärnor och 32 trådar
# cat /sys/devices/system/cpu/possible
0-31
Firmware eller motsvarande hindrar de sista 4 kärnorna och 8 trådarna från att någonsin aktiveras
# cat /sys/devices/system/cpu/present
0-23
Men vad som är fullt möjligt att att ta bort en kärna ur två av de fyra CCX, d.v.s. göra min 3900X till en 10C/20T CPU. Här är en kärna nedstängd i andra och tredje CCX
# cat /sys/devices/system/cpu/online
0-4,6-7,9-16,18-19,21-23
Givet hur cache-hierarkin fungerar hos Zen gissar jag att L3$ (som är bunden till en viss CCX) endera måste vara helt nedstängd (storlek noll bytes) eller vara lika stor som i alla andra CCX. Det är ju fallet här, både de CCX med tre aktiva kärnor och de med två aktiva kärnor har samma 16 MB L3$.