Replace PWR_ACCU_SandyBridge with PWR_ACCU_Skylake
#define PWR_ACCU_Skylake(Pkg, T) \
({ \
RDCOUNTER(Pkg->Counter[T].Power.ACCU[PWR_DOMAIN(PKG)], \
MSR_PKG_ENERGY_STATUS); \
\
RDCOUNTER(Pkg->Counter[T].Power.ACCU[PWR_DOMAIN(CORES)], \
MSR_PP0_ENERGY_STATUS); \
\
RDCOUNTER(Pkg->Counter[T].Power.ACCU[PWR_DOMAIN(UNCORE)], \
MSR_PP1_ENERGY_STATUS); \
\
RDCOUNTER(Pkg->Counter[T].Power.ACCU[PWR_DOMAIN(RAM)], \
MSR_DRAM_ENERGY_STATUS);\
})
KBL RAPL and Voltage during high load ...

... during low load

Measurements issue with i7-3770 (IvyBridge). TDP specifications have to be 77 W



Skylake: add missing code to measure DRAM power
https://github.com/cyring/CoreFreq/blob/6712f73d42313d07f85659eef70cc8dff95797b2/corefreqk.c#L6072
Delta_PWR_ACCU(Proc, RAM);
https://github.com/cyring/CoreFreq/blob/6712f73d42313d07f85659eef70cc8dff95797b2/corefreqk.c#L6090
Save_PWR_ACCU(Proc, RAM);



Workaround for IVB [Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz]
https://github.com/cyring/CoreFreq/blob/68db124338be91b5a97a08cab7830cfbb24e472d/corefreqd.c#L443
Shm->Proc.Power.Unit.Watts = Proc->PowerThermal.Unit.PU > 0 ?
1.0 / (double) (1 << Proc->PowerThermal.Unit.PU) : 0;
Shm->Proc.Power.Unit.Watts /= (Proc->CPU.Count >> Proc->Features.HTT_Enable);

Accurate ?
Issue closed until other hardware is available for testings.
Architecture|Processor|ESU (J)1|Pkg load (J)2|Cores load (J)2|TDP (W)3
----------------|-------------|------|----------------|-----------------|------------
Skylake/S|i5-6600K|0.000061035|84.761535645|75.259704590|91
Skylake/S|i7-6700|0.000061035|55.686950684|44.473632812|65
Haswell/U|i3-4010U|0.000061035|6.958801270|4.341308594|15
Haswell/U|i7-4650U|0.000061035|18.376159668|14.542602539|15
IvyBridge/EP|E5-1607|0.000015259|34.55101032|26.025909424|130
SandyBridge|i7-2710QE|0.000015259|44.356430054|40.928970337|45
Architecture|Processor|ESU (J)|Pkg load (J)|Cores load (J)|TDP (W)
----------------|-------------|------|----------------|-----------------|------------
Pinnacle Ridge|2700X|0.000015259|115.171279907|116.535186768|105
_Remarks_
Power & Voltage view# | Freq MHz | VID | Vcore | Energy(J) | Counter(Raw)
------|---------------|------|-------------|-------------------------------------|------------------
#0 | 4015.73 | . | . | Package 131.852859497 | 9876543210
#1 | 4015.67 | . | . | Cores 122.611679077 | .
#2 | 4015.74 | 54 | 1.2125 | Uncore 10.000000000 | 9876543210
#3 | 4015.73 | . | . | Memory 5.000000000 | .
# | Freq MHz | VID | Vcore | Power(W) | Core(W)
------|---------------|------|-------------|-------------------------------------|------------------
#0 | 4015.73 | . | . | Package 131.852859497 | 13.000000000
#1 | 4015.67 | . | . | Cores 122.611679077 | .
#2 | 4015.74 | 54 | 1.2125 | Uncore 10.000000000 | 11.000000000
#3 | 4015.73 | . | . | Memory 5.000000000 | .
# | Freq MHz | VID | Vcore | Energy(J) | Counter(Raw)
------|---------------|------|-------------|-------------------------------------|------------------
#0 | 4015.73 | . | . | Package 131.852859497 | 876543210987654321
#1 | 4015.67 | . | . | Cores 122.611679077 | 876543210987654321
#2 | 4015.74 | 54 | 1.2125 | Uncore 10.000000000 | 106543210987654321
#3 | 4015.73 | . | . | Memory 5.000000000 | 056543210987654321
# | Freq MHz | VID | Vcore | Power(W) | Core(W)
------|---------------|------|-------------|-------------------------------------|------------------
#0 | 4015.73 | . | . | Package 131.852859497 | .
#1 | 4015.67 | . | . | Cores 122.611679077 | .
#2 | 4015.74 | 54 | 1.2125 | Uncore 10.000000000 | .
#3 | 4015.73 | . | . | Memory 5.000000000 | .
_Remarks_


Processor [AMD Ryzen 7 2700X Eight-Core Processor ]
|- Architecture [Zen+ Pinnacle Ridge]
|- Vendor ID [AuthenticAMD]
|- Microcode [ 134251019]
|- Signature [ 8F_08]
|- Stepping [ 2]
|- Online CPU [ 16/16]
...
Power & Thermal Monitoring:
...
|- Units
|- Power watt [ 0.125000000]
|- Energy joule [ 0.000015259]
|- Window second [ 0.000976562]

Processor [AMD Ryzen 7 3700X 8-Core Processor ]
|- Architecture [Zen/Summit Ridge]
|- Vendor ID [AuthenticAMD]
|- Microcode [ 141561873]
|- Signature [ 8F_71]
|- Stepping [ 0]
|- Online CPU [ 16/16]
...
Power & Thermal
...
|- Units
|- Power watt [ 0.125000000]
|- Energy joule [ 0.000015259]
|- Window second [ 0.000976562]
CPU Pkg Apic Core Thread Caches (w)rite-Back (i)nclusive
# ID ID ID ID L1-Inst Way L1-Data Way L2 Way L3 Way
00: BSP 0 0 0 32 8 32 8 512 8 32768 9
01: 0 2 1 0 32 8 32 8 512 8 32768 9
02: 0 4 2 0 32 8 32 8 512 8 32768 9
03: 0 6 3 0 32 8 32 8 512 8 32768 9
04: 0 8 4 0 32 8 32 8 512 8 32768 9
05: 0 10 5 0 32 8 32 8 512 8 32768 9
06: 0 12 6 0 32 8 32 8 512 8 32768 9
07: 0 14 7 0 32 8 32 8 512 8 32768 9
08: 0 1 0 1 32 8 32 8 512 8 32768 9
09: 0 3 1 1 32 8 32 8 512 8 32768 9
10: 0 5 2 1 32 8 32 8 512 8 32768 9
11: 0 7 3 1 32 8 32 8 512 8 32768 9
12: 0 9 4 1 32 8 32 8 512 8 32768 9
13: 0 11 5 1 32 8 32 8 512 8 32768 9
14: 0 13 6 1 32 8 32 8 512 8 32768 9
15: 0 15 7 1 32 8 32 8 512 8 32768 9
Remark: Threadripper results below are from an old _CoreFreq_ version
Processor [AMD Ryzen Threadripper 2950X 16-Core Processor ]
|- Architecture [Zen+ Colfax]
|- Vendor ID [AuthenticAMD]
|- Microcode [ 134251019]
|- Signature [ 8F_08]
|- Stepping [ 2]
|- Online CPU [ 32/32]
...
Power & Thermal
...
|- Units
|- Power watt [ 0.007812500]
|- Energy joule [ 0.000000954]
|- Window second [ 0.000976562]
CPU Pkg Apic Core Thread Caches (w)rite-Back (i)nclusive
# ID ID ID ID L1-Inst Way L1-Data Way L2 Way L3 Way
00: BSP 0 0 0 64 4 32 8 512 8 32768 10
01: 0 2 1 0 64 4 32 8 512 8 32768 10
02: 0 4 2 0 64 4 32 8 512 8 32768 10
03: 0 6 3 0 64 4 32 8 512 8 32768 10
04: 0 8 4 0 64 4 32 8 512 8 32768 10
05: 0 10 5 0 64 4 32 8 512 8 32768 10
06: 0 12 6 0 64 4 32 8 512 8 32768 10
07: 0 14 7 0 64 4 32 8 512 8 32768 10
08: 1 16 0 0 64 4 32 8 512 8 32768 10
09: 1 18 1 0 64 4 32 8 512 8 32768 10
10: 1 20 2 0 64 4 32 8 512 8 32768 10
11: 1 22 3 0 64 4 32 8 512 8 32768 10
12: 1 24 4 0 64 4 32 8 512 8 32768 10
13: 1 26 5 0 64 4 32 8 512 8 32768 10
14: 1 28 6 0 64 4 32 8 512 8 32768 10
15: 1 30 7 0 64 4 32 8 512 8 32768 10
16: 0 1 0 1 64 4 32 8 512 8 32768 10
17: 0 3 1 1 64 4 32 8 512 8 32768 10
18: 0 5 2 1 64 4 32 8 512 8 32768 10
19: 0 7 3 1 64 4 32 8 512 8 32768 10
20: 0 9 4 1 64 4 32 8 512 8 32768 10
21: 0 11 5 1 64 4 32 8 512 8 32768 10
22: 0 13 6 1 64 4 32 8 512 8 32768 10
23: 0 15 7 1 64 4 32 8 512 8 32768 10
24: 1 17 0 1 64 4 32 8 512 8 32768 10
25: 1 19 1 1 64 4 32 8 512 8 32768 10
26: 1 21 2 1 64 4 32 8 512 8 32768 10
27: 1 23 3 1 64 4 32 8 512 8 32768 10
28: 1 25 4 1 64 4 32 8 512 8 32768 10
29: 1 27 5 1 64 4 32 8 512 8 32768 10
30: 1 29 6 1 64 4 32 8 512 8 32768 10
31: 1 31 7 1 64 4 32 8 512 8 32768 10
MSRC001_029B [Package Energy Status] (Core::X86::Msr::PKG_ENERGY_STAT)
Read-only,Volatile. Reset: 0000_0000_0000_0000h.
_lthree[1:0]; MSRC001_029B
Bits Description
63:32 Reserved.
31:0 TotalEnergyConsumed.
CCX: Core Complex where more than one core shares L3 resources.
md5-85d02d0574b430f0ab1bb02f99801589
Each Core::X86::Apic::ApicId[ApicId] register is preset as follows:
• ApicId[6] = Socket ID.
• ApicId[5:4] = Node ID.
• ApicId[3] = Logical CCX L3 complex ID
• ApicId[2:0]= (SMT) ? {LogicalCoreID[1:0],ThreadId} : {1'b0,LogicalCoreID[1:0]}.
md5-0f5a4dcbad8f7ade7faab65361faddb5
CPUID_Fn8000001E_EAX [Extended APIC ID] (Core::X86::Cpuid::ExtApicId)
Read-only.
If Core::X86::Cpuid::FeatureExtIdEcx[TopologyExtensions] == 0 then CPUID Fn8000001E_E[D,C,B,A]X are reserved.
If (Core::X86::Msr::APIC_BAR[ApicEn] == 0) then Core::X86::Cpuid::ExtApicId[ExtendedApicId] is reserved.
_lthree[1:0]_core[3:0]_thread[1:0]; CPUID_Fn8000001E_EAX
Bits Description
31:0 ExtendedApicId: extended APIC ID. Read-only. See 2.1.12.2.1.3 [ApicId Enumeration Requirements].
Reset: Core::X86::Msr::APIC_BAR[ApicEn] ? Fixed,{00_0000h , Core::X86::Apic::ApicId[ApicId]} :
Fixed,0000_0000h.
CPUID_Fn8000001E_EBX [Core Identifiers] (Core::X86::Cpuid::CoreId)
Read-only.
See Core::X86::Cpuid::ExtApicId.
_lthree[1:0]_core[3:0]_thread[1:0]; CPUID_Fn8000001E_EBX
Bits Description
31:16 Reserved.
15:8 ThreadsPerCore: threads per core. Read-only. Reset: XXh. The number of threads per core is
ThreadsPerCore+1.
7:0 CoreId: core ID. Read-only. Reset: Fixed,XXh.
Description: For Family 17, Model 1, Revision 1 and later:
CoreId = ({2'b0, DieId[1:0], LogicalComplexId[0], LogicalThreadId[2:0]} >> SMT).
CPUID_Fn8000001E_ECX [Node Identifiers] (Core::X86::Cpuid::NodeId)
Read-only.
_lthree[1:0]_core[3:0]_thread[1:0]; CPUID_Fn8000001E_ECX
Bits Description
31:11 Reserved.
10:8 NodesPerProcessor: Node per processor. Read-only. Reset: XXXb.
ValidValues:
Value Description
0h 1 node per processor.
1h 2 nodes per processor.
2h Reserved.
3h 4 nodes per processor.
7h-4h Reserved.
7:0 NodeId: Node ID. Read-only. Reset: Fixed,XXh.
Description: For Family 17, Model 1, Revision 1 and later:
{5'b00000,1'b[SOCKET_ID],2'b[DIE_ID]}.
CPU#|Pkg ID|Apic Ext_ID|Core ID|Thread ID|Apic[3:0]|CCX ID1|_lthree scope2
--------|---------|----------------|----------|-------------|------------|-----------------------------|-----------------------------
00|BSP|0|0|0|0000|0|Y
01|0|2|1|0|0010|0|.
02|0|4|2|0|0100|0|.
03|0|6|3|0|0110|0|.
04|0|8|4|0|1000|1|Y
05|0|10|5|0|1010|1|.
06|0|12|6|0|1100|1|.
07|0|14|7|0|1110|1|.
08|0|1|0|1|0001|0|.
09|0|3|1|1|0011|0|.
10|0|5|2|1|0101|0|.
11|0|7|3|1|0111|0|.
12|0|9|4|1|1001|1|.
13|0|11|5|1|1011|1|.
14|0|13|6|1|1101|1|.
15|0|15|7|1|1111|1|.
CCX_ID = ( leaf8000001e.EAX.ExtApicId & 0b1000 ) >> 1
After long hours of the 3700X debugging, it appears that the RAPL Package Energy Counter delta remains the same, whatever the CPU is used to read the msr

Edit: as specified, the RAPL Energy status is package scope which returns the same value whatever is the Core used for reading.
CCX is not involved in the issue.
_Call for help on Reddit_
Here are my Screenshots + Output as requested in #129
To all reading this issue, look in the above screenshots for the Package Power measurements; Cores all stressed :
X370 (Crosshair VI Hero) = 9.28W
X570 (Prime X570 Pro) = 91.76W
Both cases, same algorithm based on RAPL registers; what can we conclude ?
CoreFreq showing a little more I think is because "Conic Compute" stresses the CPU even more than Blender Benchmark, since on Windows the CPU, according to the most reliable tool, Ryzen Master peaks at temp 79.xx-80.xx C (stays just a couple of seconds at 80.xx C and then goes below 80 C for a couple of seconds, then up again and so on, and above 80 C the color of the bar turns orange so easy to see)
Conclusion: CoreFreq is right for my 3600X on an X570 MB
IMPORTANT NOTE:
EDIT: Some additional info... Please read IMPORTANT NOTE section for X370/X470, especially the first.
What I wrote very much confirmed:
CoreFreq manages to get it to at least more than this, using "Conic Compute" IIRC, even maybe 82-84 C IIRC
Is the B450 Chipset supported ? Because we also have the Package Power issue above
Processor|Chipset|Pkg Pwr
---|---|---
3700X|X370|KO
3700X|B450|KO
3600X|X570|OK
Conic is an _old_ friend of the 486DX age
https://github.com/cyring/CoreFreq/blob/e21a6d5480fff6a095edec7b6ea01310ad25c0e9/corefreqm.c#L196
Software Algorithm
The following algorithm should be used to calculate the average power consumed by a processor core
during the measurement interval TM. To obtain a stable average power value, TM should be on the
order of several milliseconds.
• Determine the value of the ratio of Tsample to the TSC period (CpuPwrSampleTimeRatio) by
executing CPUID Fn8000_0007. Call this value N.
N = CPUID Fn8000_0007_ECX[31:0].
• Read the full range of the cumulative energy value from the register MaxCpuSwPwrAcc.
Jmax = value returned from RDMSR MaxCpuSwPwrAcc.
• At time x, read CpuSwPwrAcc and the TSC
Jx = value returned by RDMSR CpuSwPwrAcc
Tx = value returned by RDTSC
• At time y, read CpuSwPwrAcc and the TSC again
Jy = value returned by RDMSR CpuSwPwrAcc
Ty = value returned by RDTSC
Calculate the average power consumption for the processor core over the measurement interval TM =
(Ty – Tx).
• If (Jy < Jx), rollover has occurred; set Jdelta = (Jy + Jmax) – Jx
else Jdelta = Jy – Jx
• PwrCPUave = N * Jdelta / (Ty - Tx)
Units of result is milliwatts.
I think we need results from the 3700X + X570 combinaison.
That will work just like 3600X.
That will work just like 3600X
I think the same, but the table won't be completed without such combination.
Does the issue happen because of the chipset or the Processor model...
Well you need people with other/more HW then, or make it easy to PayPal donate to you so you can buy CPUs. MBs matter little for CoreFreq, so those you can get very cheap.
I can't say anything before getting my 3950X, which is Ryzen 9, but if works like 3600X, why should Ryzen 7 don't?
I'll pre-order as soon as available here. If I'm quick maybe I'll get it in the end of September or beginning of October (depending on when AMD actually launches it, but says already on amd.com September), and if that CPU works exactly the same in CoreFreq, why wouldn't the 3700X?
IDK why they call all CPUs up to 3700X Ryzen 5, then 3700X up to 3900X Ryzen 7 and 3900X+ Ryzen 9. The Ryzen 5 is what makes no sense for me, for a 3600X CPU. Shouldn't it then be Ryzen 6? And 3800X be Ryzen 8?
Very few should buy the 3700X and no one the 3800X, after some reading. If for gaming? Buy the 3600 (without X), which doesn't bottleneck any modern GPU, at least not on X570, but I've seen similar results on X470 which is a cheaper option (and both that CPU and those older Gen MBs will lower in price).
At first considered the 3700X. AMD called it the competition to the latest i7-8700K I think, which is a darn good CPU so. But many said that they should call it more a direct competition to the latest i9, although the i9 does better in benchs, it's mostly because of the 5 GHz Turbo. But no real world usage difference, that probably goes in favor of AMD.
AMD said the 3900X was the direct competitor to the i9-9900K. Here the 3900X cost €60 more. Those prices will drop though - they were just released. Nobody has it in stock. It was but super demand.
And AMD's Turbo out of the box is SMT which equals to Sync All Cores which even in Auto mode, meaning all Turbo to max stock Turbo and not above that, is a pretty serious OC on Intel, letting all cores Turbo makes it MUCH hotter in my experience, while not noticable on AMD. Requires good cooling, and I imagine especially since it has Hyperthreading, which my latest didn't.
With a good cooler the 3700X/3800X can probably get a decent bump in Turbo GHz, maybe not 5 GHz but beat the i9 anyways.
At least maybe it can compete with the i9-9900 it (a CPU I never see mentioned in videos), but both are Gen "Coffee Lake Refresh". When I checked my Norwegian online store, it seemed a better choice as cheaper with a fan included (doesn't say which, just that the product is "In Intel Box", but so does the K, but fan the K does never have, just an overly fancy box that people give it lower OR higher rating for, lower because really after opening it's just a waste of carton. Non-K being about just €2 cheaper though.
Differences:
Similarities:
EPYC Rome 64C/128T in a 2 sockets configuration is so far my dream setup.
But true, any Ryzen should be enough to study the architecture and those RAPL registers....
You mean this?
AMD EPYC 7742 64-Core 2.25GHz (3.4 GHz Max Boost) Socket SP3 225W 100-100000053WOF Server Processor
https://www.newegg.com/p/N82E16819113581
$7,219.99 (can't promise such a donation...)
And that's just the price for the CPU :-O
I count 6 Authorized Distributors & Online Retailers from amd.com :P
Try it in the cloud first at least just for a short time? :P Can run bare metal there I assume, and for much less.
O-la-la:
A screenshot of popular benchmarking tool Geekbench revealed by regular Twitter leaker APISAK (@TUM_APISAK) supposedly shows AMD's new 16-core Ryzen 9 3950X beating Intel's current desktop flagship – the Core i9-9980XE. The latter has 18 cores and costs $2000 while AMD’s new king of the hill costs just $749 and has two fewer cores.

Think this is worth it. We'll see Norwegian highest cost of living in the world price. Almost doubles my Geekbench score from 3600X, but this is probably without any OC except SMT which seems to be on on all MBs.
(just kidding) Should we report to them that we found some RAPL Package counter - chipset issues before they launch such a monster processor ?
Processor|Chipset|Pkg Pwr
---|---|---
3700X|X370|KO
3700X|B450|KO
3600X|X570|OK
3700X|X570|OK

Sorry I didn't understand this. If you were really kidding. Remember I'm not a CPU expert, and don't have enough RAM in my brain for more.
Should we report to them that we found some RAPL Package counter - chipset issues before they launch such a monster processor ?
Yes, as said the 3700X would surely work similar in CoreFreq on X570 since 3600X does. I wouldn't care about X370 as AMD doesn't recommend it. Though you should really try to get or loan an X470 and see if it works on that (after all BIOS updates applied). That is what budget users will go for, and likely the 3600 (without X) as IIRC AMD and YT videos recommend TDP = 65W and not more. It'll surely work with the 3700X as well, and if so I assume the 3600 shows correct data. I think the recommendation of TDP not higher than 65W is because of better OC capabilities.
Also X570 has a new standardized motherboard design all manufacturers follow. Like the PCH fan, VRAM cooling and these things work together for cooling the chips. May be the reason of the 65W recommendation as well on X470. I don't think AMD is lying here, since they DO want to sell their new CPUs, even if you use an X470. They have en entire program for compatibility after all (BIOS updates sent to all manufacturers, before launch, telling both them and sellers to update the MBs before selling to make sure a 3rd Gen Ryzen CPU actually works).
I'll have some more screenshots and Power Usage comparisons Linux vs Windows. Managed to improve both using AMD supported OC (not much). Linux improved more than Windows, but both improved.
In what PCs is B450 used?
I do not know the PC which hosts the B450. I just report the strings the kernel has probe through its DMI implementation.
Whatever I won't go further into this Ryzen RAPL issue, X570 is the way to go.
(BTW plz let me know if you have a chance to test the modified code in the issue #140 )
Regards
I think I see. MBs, most mATX or mITX. Looking at the "MSI B450I GAMING PLUS AC" and the "Gigabyte B450 I AORUS PRO WIFI" (latter having both Intel for Wi-Fi/Bluetooth and Ethernet, former Realtek...) both mITX they're pretty impressive considering the price, both have 802.11ac Wi-Fi, and seems to have 2 antenna connectors, antennas don't seem to be included. People write positive things about all that have reviews. About the mITX that they're perfect for a PC in the bookshelf and such, and that Wi-Fi coverage is just "fine" (probably 2 antennas would make that much better).
The most expensive is ATX, "ASUS ROG STRIX B450-E GAMING" and comes with antennas. And being the most expensive it's still only €189 in Norway. And the first with Wi-Fi just €129.
They haven't updated the site that they support 3rd Gen Ryzen, but looked at the cheapest ASUS one (mATX) to see CPU support for it, and the mentioned ATX above, the one I would have bought since the sister I suppose to my PRIME-PRO, although it's not a PRO, and called "PRIME B450M-A". Both say they support even the 3900X so... Surely the 3950X when coming.
Of course lacking is PCIe4 or 3200 MHz RAM without (OC) behind it, but several has 2 x M.2 and says they support RAID 0. The MSI ones have most reviews.
MSI ones also brags about "2 x Turbo M.2 with up to 32 GB/s per unit using PCIe3 x4 and support for RAID 0" (so per unit, with RAID 0 it can give like 64 GB/s? Ehm fastest M.2 I can find is a Premium 2T actually packaged for a PCIe slot and has about 7 GB/s and only supports Windows Server on the Windows front, but also says "Linux 3.3 and newer and FreeBSD" haha.
Surely other stores have faster ones but 32 GB/s? Marketing? What the heck does Turbo M.2 even mean? It's just PCIe3 on all and that'll be the limit. Also don't like how some B450's brag about supporting having an SSD and an HDD and making sure often used files are on the SSD and less used files on, yeah, you get it. Like the complete disaster Apple's Hybrid drives were. Speeds usually HDD-ish. And how's the setup? UEFI or probably require some Windows software.
Seems to be pretty RGB heavy built-in and connectors for more, all of them, kind of weird for a small MB that's not usually put for display? IDK, maybe they are. I've never built with anything else than ATX so.
Want space, and my Chassis is the Graphite Series 760T Arctic White Full-Tower Windowed Case (see extensive gallery). The "red" is really nice if you want all black, just you must change the 3 chassis fans it comes with then because they have yeah, red LEDs, while mine has white. And mix of "artic white" color with black and black tinted windows makes it fit perfectly my room. Chassis' fans aren't bad either.
With the Ryzen without custom OC can really set in UEFI "Allow fan stop" for the individual or all, and just spin them to max when reaching 75 C on the CPU, but they're always on. The CPU runs just fine with a sweetspot of lowest possible duty cycle 20% and 60% when 62 C and 100% when 72 C. This makes it silent even in games like CS:GO. More or less only benchs spins it up. 20% is barely noticable. Whereas the built-in "Silent" profile is more like 35-40%, and then the fan (well I always have TV/podcast/music on, but if silent it becomes like a little annoying, not as "white noise" as the bigger chassis fans).
At max the chassis' fans really makes the CPU fan not so audible. It all mixes together. Though people buying this chassis typically do serious overclocking, and say the chassis fans are a bit loud and replace them with Noctua ones (without LEDs but one can always add RGB strips or whatever if wanted, set to white always if wanted). AND/OR they primarily use water cooling which it has plenty of room for (radiator vertical or top, everything like the HDD/SSD mounts and 3 slots CD-ROM sized module can easily be removed, or one can stack the 2 x 3 HDD/SSD mounts on top of each other instead of side by side).
They're all awesome, no screws, and 2.5 disks is not a problem, just remove one snap pin and screw in the 4 SSD's screws from below. There's also room for 4 x 2.5 disks behind the back door, which are 2.5 only so snaps in, so in total 10 SATA disk slots, and 2 x M.2 disks which doesn't occupy SATA cables.... And of course in the 3 x CD-ROM module you can stack in a ton but they're not snap-ins. Haven't checked but may very well be screw holes for at least 3.5 disks. Otherwise some cheap stuff of eBay for a nice mount. Really just depends on SATA ports on MB and PSU SATA cables... UEFI supports hot-plug of SATA disks, but haven't tried. Wonder if it works...
I actually have an ASUS CD+RW ROM, not the cheapest but the cheapest ASUS black nice-looking one I found which was almost the cheapest. I really bought for my previous penguin chassis when buying Skylake (so it's pretty new and as fast as CD+RWs today) because the penguin chassis didn't come with a cover there, just a hole, or we put in one on a LAN decades ago for Linux server live ISO, maybe losing the cover, if so IDK where it is so if going to build in it again must buy a CD-ROM or maybe my cover from the Corsair fits hah.
Before it was a white one which we used a permanent marker to more or less align the colors (see CD-ROM below).
Finishing touches at my LAN crew partner's house. State of the art camera then with diskette slot for easy image transfer. Printed Bill Gates on crappy printer and cut sloppy to make it look like it is being chewed on:


Sorry, I won't have time for the code just yet, monster laptop packed away, but Linux installed. Won't boot since HDD in 2nd slot so must also be swapped. It's really time to put in the second PCIe4 NVMe and try RAID 0 from UEFI and install a clean installation. Also going to Spain on Tuesday and won't bring the monster laptop. Have CRON daily backups of necessary system folders using rsync and actually use Deja-Dup (GNOME 3's program called "Backups" for the home folder excluding folders not necessary like the huge hidden Gradle folder for Android Studio, the SDK, the Android VMs, and Downloads folder, never know what's there of huge files, all easy to reinstall/download). Works well. At least reliable. Kind of Time Machine for macOS, going back in time to day X. My CRON script has a folder for each day of the week so at least 7 days back. HDDs LUKSv2 encrypted backs up once in a while (manually) to LUKSv2 encrypted external USB drives.
To simulate _Per Core RAPL_ with this Xeon processor, code has been temporary modified for data injection.
The sum of each CPU measurement has to be equaled to the value of Cores: (in footer),
whatever the unit (Watt, Joule) and interval (sec) are.
This exemple: 6.1035 + 6.1035 + 12.2070 + ... + 6.1035 = 109.8630
Version 1.67.3 is releasing _Per Core RAPL_ for AMD Zen architecture.
Tests instructions
Per core values do seem to sum to the summary Cores value, in all-core load, single-core load, and idle conditions.
Power and Energy both report the same values. ([$] Key)

Looks great, thank you
I'm now waiting for Ryzen 3000 results to pursue with the cosmetics: masking zero values of temps and accus, single Vcore....
Ryzen 3rd Gen + X570 seems fine (or does it?) - here under stress. Under idle we're talking 0.00x Watts per Core and Total way below Package (0.xxx Watts Cores Total vs Package 13 Watts). Package Total still seem to match Ryzen Master at idle and stress and TDP. Don't think RM shows Per Core Watts, IIRC. See comment below.
Didn't do precise math, but 12.6 * 6 = 75.6, pretty below total Package but might be the expected result (?) because of hyperthreading, boost etc, other Power Usage the CPU use than just to Cores. Package Total is correct as before:

NUC/Intel however is still showing 0, but still a total of > 4 Watts calculated from Cores Total it seems (like if per Cores should be really 1.xxx Watts). At both Idle and Stress it does this, but strangely again calculates Cores Total it seems anyway. Package is still correct:

Sorry for all the comments, didn't see 2700X screenshot properly first. Deleted them.
Seems like screenshot from @adatum shows Cores Total SHOULD match Package Total?
As seen below, idle in this case but as seen above also under stress, and written above, Cores Total don't match Package Total on 3600X/X570. If this is a bug or simply the different architecture/platform/CPU, IDK.
NUC calculating a total still strange when Cores show 0?
Not on the NUC does Cores vs Package Total Watts match either (0.0086 Watts Cores vs 0.9 Watts Package).


IIRC Ryzen Master doesn't show Watts per Core, but I might be wrong. Gotta see next time I boot Windows. Probably an update to RM now as well. But can't promise when I'm gonna boot Windows the next time :P Could check out other tools that show more details, like popular HWMonitor, but I never trusted those readings for MB and CPU as their last release was before the X570 + Ryzen 3rd Gen was released, a release that was a very well hidden release from AMD, and really made Intel scared and others happy (AMD back in the game, competition!).
Causing large queues at physical stores in Taiwan and US, which doesn't happen much today in (still the few) physical shops selling computer parts directly. Maybe because they knew all the websites would already have tons of preorders. Still looked like an iPhone launch back in the days with iSheep waiting all night lol.
Maybe HWMonitor has gotten an update now. They tend to be the go-to tool for many, so maybe they even get some help from AMD for correct readings if they don't manage it properly.
@olejon : thanks a lot.
To clarify the difference between Intel and AMD RAPL registers : the first is per socket counter whereas the last is per physical core (thus no SMT values). However AMD is per socket for Package.
Intel specs are telling us that Package counter gathers socket and other RAM, Uncore, perhaps SOC, iGPU
The remaining programming task is to mask contextually the zero values...
NUC is an issue : the issue may come from the Joule and Watt units also probed from registers. These adjustments are undocumented and it will take several calibration tests. I believe most low power processors will be a painful journey to program.
Specification update of Mobile 4th Gen Intel Core Processor Family:
See the Errata HSM82 about RAPL: is your NUC updated with the latest BIOS ?
Did update it 1-2 months back. Can check again later. Intel is very good at supporting NUCs even from 2013 with improvements and security fixes, so maybe a new one is out BUT I doubt it. They own the entire shebang of chipset, MB and iGPU so they can do a lot if they find a bug or bottleneck.
NUCs should be one of the best documented Intel complete solutions out there, all kinds of weirdness one can do with them, at least some later models than mine (I jumped on board quickly), like their answer to Raspberry Pi. Their cheapest one now isn't very expensive and also supported by Ubuntu Core (2 of them are, cheapest out, and latest powerful and most expensive, basically).
They're of course supported by Intel's own Clear Linux, which you probably should check out on an all-Intel PC, most are supported I think, at least consumer grade. That distro kind of trashes all others in benchs on Phoronix for instance, and has more and more packages, plenty for a complete desktop. But not for a daily driver. Still I wished I had tried it on my workstation. My NUC is a little busy and headless...
Just RAM and disk is your choice, and optional Wi-Fi/Bluetooth.
Did update it 1-2 months back. Can check again later. Intel is very good at supporting NUCs even from 2013 with improvements and security fixes, so _maybe a new one is out BUT I doubt it_. They own the entire shebang of chipset, MB and iGPU so they can do a lot if they find a bug or bottleneck.
NUCs should be one of the best documented Intel complete solutions out there, all kinds of weirdness one can do with them, at least some later models than mine (I jumped on board quickly), like their answer to Raspberry Pi. Their cheapest one now isn't very expensive and also supported by Ubuntu Core (2 of them are, cheapest out, and latest powerful and most expensive, basically).
They're of course supported by Intel's own Clear Linux, which you probably should check out on an all-Intel PC, most are supported I think, at least consumer grade. _That distro kind of trashes all others in benchs on Phoronix for instance_, and has more and more packages, plenty for a complete desktop. But not for a daily driver. Still I wished I had tried it on my workstation. My NUC is a little busy and headless...
Just RAM and disk is your choice, and optional Wi-Fi/Bluetooth.
It could be interesting to compare with the PAPI measurements. You may have the PAPI package in your Linux distribution or clone/build. PAPI depends on the msr.ko driver and probably Perf.
As a reminder: MSR 0x64d for the SOC Power Domain added on the development roadmap.
I'll see what I can do and check in to that when I have time, if it isn't to time expensive. Watching a documentary now (news & documentary slave here).
Just one of the cool things one can do with NUCs for instance; buy a cheap HDMI-CEC chip and connect it to the right pins on the (tiny) MB, and boom it appears as a HDMI-CEC adapter in Kodi (formerly XBMC), and such worked in harmony with my AV Receiver and TV when I used it as an HTPC. RPi has HDMI-CEC out of the box though. Last spec sheet I saw NUCs says HDMI-CEC supported (with mod). Also a USB to HDMI passthrough can be used for those less tech savvy.
Having a BIOS update in 2019, with this CPU from 2012 I think, shows that Intel cares about these things at least. And Canonical probably supported them officially from Ubuntu 12.04, if not 14.04 for sure. And then surely Red Hat. That means 2 major industry players supporting this thing for over 6 years now.
That's actually better than a Mac Mini... Which it's kind of a brilliant substitution for if you want that form factor as a desktop PC, for instance. No doubt it will be supported on Ubuntu 20.04 as well so 12+ years of official Linux support (Intel supported Linux on it from day 1, kind of why I bought it, comes with no OS, no "MS tax"). Probably best tech investment ever, considering price, different usage over the years, power consumption, just worked and works, as server or desktop. Has plenty of I/O ports... Went for the i3 model over the Celeron for future security, and SATA SSD version (which is now cheaper than the one with M.2), since there was no M.2 and the expansion disk card thing was kind of, well, bad reviews. M.2 NVMEs didn't exist basically. Fast but cheap enough SSD, didn't need 1 TB or anything, and kind of blew my mind, just like, very easy to upgrade RAM and disk, how nice, quiet and fast it was, even with "Ultra low TDP". And everything just worked, and still does. Only think lacking is UEFI support for BIOS updates through the Internet directly. Have to physically move it too, to get it to a monitor so. And cable and keyboard and USB with BIOS. Very easy and well made process, and as said still BIOS updates, just the hassle in my case now as a server.
Anyway would be really cool if you checked out Clear Linux (separate disk or whatever). CoreFreq should compile I assume with little deps. And benchs against Arch etc. AFAIK it's also a rolling release distro. Highly optimized for Intel.
Anyway would be really cool if you checked out Clear Linux (separate disk or whatever).
I would prefer you create another issue for this request but
_CoreFreq_ is dkms ready. dkms.conf released here
One has to follow this Clear Linux procedure
Thanks to a nice contribution, Makefile has been enhanced with install and module_install
Just type make help
As a reminder: MSR
0x64dfor the SOC Power Domain added on the development roadmap.
As mentioned In the SDM specifications, there is no guarantee this counter exists for the listed architecture families. Tested with a Skylake i7-6700, this MSR returns a zero value on all cores.

enum POWER_FORMULAS {
POWER_FORMULA_NONE = \
(0b000000000000000000000000 << 8) | FORMULA_SCOPE_NONE,
POWER_FORMULA_INTEL = \
(0b000000000000000000000001 << 8) | FORMULA_SCOPE_NONE,
POWER_FORMULA_INTEL_ATOM = \
(0b000000000000000000000011 << 8) | FORMULA_SCOPE_NONE,
POWER_FORMULA_AMD = \
(0b000000000001000000000000 << 8) | FORMULA_SCOPE_CORE,
POWER_FORMULA_AMD_17h = \
(0b000100000001000000000000 << 8) | FORMULA_SCOPE_CORE
};


Results for IvyBridge/EP : OK

Please, let me know about yours -;)

@adatum : thank you
Looks like the voltages per core are independent, but the threads on the same core (threads 2 & 10 in screenshot) show the same voltage:

Looks like the voltages per core are independent, but the threads on the same core (threads 2 & 10 in screenshot) show the same voltage:
My understanding of the Zen SMT architecture is that CPU 10 is the logical peer of the core CPU 2, and they have the Vcore in common.
The view is showing the relation between them.
CPU 10 is the logical peer of the core CPU 2, and they have the Vcore in common.
Yes, that's what I meant to highlight. It makes sense for the two virtual cores (what I meant by "threads") to have the same Vcore since it is the same physical core. I'm not sure if that necessarily has to be the case, but at least it makes sense.
The Topology is the clue. Just checking at the screenshots inside the Wiki CPU Support and both 2700X and 3600X have a similar Topology, where the (CCX, CoreID, ThreadID) forms the cluster.
Tests will also be interesting when facing the topology of the dual EPYC
@olejon : nice to read from you but do you mind to move your 2 last comments to our dedicated tchat thread.
I believe you'll understand that I want to focus on specific and tiny details such as this RAPL subject
See U soon on the tchat thread
Regards
Cyril
If I stress 2 to the max, stress does the job (CoreFreq cannot) almost as good as Conic Compute (to raise temperature) on AMD, and on Intel it's even or even better at stressing the CPU (above Windows tools always).
I get pretty much expected results. So using stress -c 2:
They're divided into CCX0 and CCX1, you can see from screenshot, counting down 4 first (CCX0), then counting down just 2 after that, since then it's come to CCX1 (for my CPU with 12 threads), and then counting down 4 again, still CCX1, but goes 4 down again, I assume for the CPU logic, which again I assume is made that way so it comes down to efficient heat spreading, later handling over to other cores with the same pattern to maintain performance.
So makes perfect sense how CoreFreq represents the "spread", like Ryzen Master would if using say CPU-Z on Windows, choosing same amount of threads.

On a 8c/16t CPU like the 3700X I would assume the same pattern, just different "counting".
For what I've seen from your debug output it seems CoreFreq can already show CCXs', and it would be nice if the GUI to separate them, like showing a column for CCX{X} or whatever. I doubt AMD will do any significant changes there when it comes to "grouping" in 4th gen.
So far still best tool for monitoring I'd say, Watts per core etc my NUC doesn't show (and IIRC not RM either, gotta check later, maybe another popular tool at least does it).
Ryzen Master of course an advantage of very nice GUI (not that I expect that from you!), drag and slide OC and whatnot, for RAM stuff as well, but it changes UEFI settings of course, it doesn't come with a Windows CPU driver or anything, so anyone can do it. Just easier for the regular user. But as posted in the chat thread, OC is very limited anyway, performance is great out of the box and the quick settings are easy peasy in UEFI. In the end most will end up with Auto Overclock in Ryzen Master anyway, a Precision Boost Override of 100 MHz, which can be increased there to 200 MHz - kind of more obvious for anyone into OC on Intel as well, in UEFI. Except AMD has put it into both Tuning and XFR parts of UEFI (one set to freq, another just enabled an all other values "Auto", is what RM does).
Point is, CoreFreq seems basically complete for me on X570. Let's see with 3950X, but shouldn't be any different. Same arch, (much) more cores, basically.
I really don't see you have to do more for X570... Got all the data I need + more stress test than Windows can do. Only showing CCXs'... Cosmetics and stuff. Maybe showing N/A, or maybe simply the same value as the "cores" above for the corresponding below - the "cores" with Watts reading, since on a 12t CPU only the first 6 shows that reading, show same on corresponding core with the same thread (voltage reading). I think you know what I mean, 6c shows as 12c basically but isn't, and there's a corresponding thread with the same reading as the actual core, of course (Hyperthreading yeah).
Now a power user should probably understand, but well, just a suggestion.
If anyone were to want to make a Ryzen Master desktop GUI equivalent on Linux they should be able to do so using say Qt + CoreFreq as backbone. At least monitoring will be the same, if not better.
Only showing CCXs'... Cosmetics and stuff. Maybe showing N/A, or maybe simply the same value as the "cores" above for the corresponding below ,,,
That was indeed the purpose of all these changes requested by CoreFreq's users:
It took hundreds of source code lines to refactor this View, please feel free to draw an ascii proposal of your ideas. After debate, changes could be engaged.
FYI, CCX is available in the Topology view
There are tons of remaining things to do with the Zen uarch: we are just at the middle of the subject.
Yesterday, reading the September's revision of the specifications update just left me feel that there are still many unpublished registers yet among those erratum ...
True that! It's available in Topology. I'm not very skilled at image editing, but I know GIMP well enough I guess. Anyway I think you'll always have a better idea (like a "rejection").
I mainly just think a column for CCX just as in Topology...
I totally understand your hard work and don't ask for anything requiring tons of code. You're already a super FOSS hero! You should know I think that way about you by now. Like heck - no other tools even shows temperatures for Ryzen 3rd Gen, so!
Sometimes I even wish you didn't respond so quickly. I mean if you really enjoy the project, go on! But if you're tired, don't be afraid of taking a week offline at least...
Any more requests regarding debugging my NUC or my X570+3600X, you'll get it. More specific the better. NUC has that 0 Watts per core, still all cores Watts shown, correctly I assume, BUT then interpreted false by many I guess. I assume you refer to this as "masking zero values for Intel". Well, maybe just show total Cores Watts then. Highlighted. Like all cores showing total or "See below" (as a stupid example)
I'm not as skillful as you in this nor as understanding of the vocabulary so the easier instructions the better :) I think you more or less know my knowledge. I might sometimes be a sysadmin of hundreds of crucial govt servers. Doesn't mean I read hundreds of pages of CPU specs. We simply don't have to, we have absolutely no reason to. Things work since we always buy compatible HW for Linux and VMs. What I have at home is another case.
My monster laptop - I think you asked me to try some code changes on it - sorry haven't been able to get the time to it yet. All my previous posts are from my phone too. Haven't been close to a workstation for weeks. All is SSH. That laptop needs SATA2 disk moved to SATA1 as it apparently won't boot otherwise, although HDD set as first boot device and installation successfull. Tired of live USBs so it has a solid installation that doesn't boot basically. Also the arch is so old, is it very important or more of a "challenge/curiosity" from your side? CPU from 2009 you know... I seems to me it can help you with some newer ones, but still worth it? I mean for me, not even being were it is and bad health? Not to play that card, but yeah.
I might be stupid but let's say you support only CPUs from 2014+ minimum and get rid of legacy code, and officially support mainly Intel, but AMD is basically supported as well, Alpha or Beta depending.
I assume you know the difference, but since you add more features it seems Alpha for both 2nd Gen and 3rd Gen. A very stable Alpha though! still adjusting/adding features it's per definition Alpha. But never caused a crash or nothing of the sort. And CoreFreq does deep level sh*t I assume 1 wrong like could easily freeze the system just loading the module or starting a stress test or whatever.
Still it might be considerable to stop supporting like ALL 64-bit x86 CPUs out there? How many would use CoreFreq on my monster laptop's CPU you think? I hate to throw away still good HW as I guess you do, but most do, or they at least don't expect GitHub projects to work on their 9+ years old HW.
For cosmetics I think Power Usage has "lost" some of it's easiness of reading. People won't necessarily look at the bottom strip and seeing "Package" and "Cores". They're not highlighted nor do they have even W behind them. Should be the entire Watts. Before that was completely seen immediately, I mean Power Usage in Joules and Watts. Now you gotta know where to seek and to look AND know it's Watts estimate.
EDIT: Just added last paragraph. Think it's kind of important. Should be more present and clearly shows power usage WITH what type of measurement. Like RM uses % of Watts but at least clearly says (and shows) it's X % of Watts, if you get it. Easy to see, a top priority measurement shown as a "wheel" AT THE TOP, meaning highlighted, not asking for a wheel, but before it was more clear.
Of course I know where to look know, now, but even I had to "look around".
Remember new users just following your instructions to compile and run may "dumb in our book", MANY DON'T EVEN HAVE A GITHUB ACCOUNT, so they'll never report and issue. I assume you haven't added hidden analytics or whatever, haven't even bothered to check, but probably a lot testing, running, trying stuff and expect like official tool experience. Which you actually have, and more, for Intel CPUs regarding changing stuff on demand, and for AMD monitoring (the most important after all).
I'd always thought about your README.md, *that needs some update to show the true power of this software. Good sections, or very understandable links to the Wiki with no "crazy" (for a regular person) CPU topology talk etc. Installation and usage. I can probably commit an update to it.
Point is, however how powerful this software is, keep installation, first use and navigation and main highlights and switches people look for KISS (Keep It Simple Stupid). I assume you know the acronym.
You can delete this comment after reading the last added paragraph to the comment before.
BTW: I'm sure there's still lot to do regarding Zen2 on X570 and later, but I think if you perfect Zen2 on X570, it'll work perfectly fine, maybe with some slight mods for 4th Gen. Just saying it may be worth the while. Although I'm perfectly happy, just saying doubt AMD will change anything drastically for 4th Gen, if you keep up reading on 3rd Gen, you'll probably have 4th Gen working perfectly. AMD seems to have set a path. I assume any 4000 CPU to just slide into my X570 socket and work. If not, AMD has not kept its promise, and with 3rd Gen it really seems they mean business. If you think 4th Gen will give you more core insight, fine. I'm happy. But kind of assume 4th Gen will be an incremental update to 3rd Gen using more or less same chipset, just more cores etc. Do you think they'll go say PCIe5? It's out as a standard, but nobody needs it - nobody use PCIe4 to its max at all yet. IDK just feels it'll be yet another "hush hush, surprisingly bash Intel on price vs performance with all manufacturers on board" (kind of incredible how AMD pulled of 3rd Gen without any leaks basically, and having MBs from ALL major manufacturers already lined up and ready to ship at launch just days later).
PU = 2 << ( ( <val1> & 0x0f ) - 1 )
TDP = ( ( <val2> & 0x7fff ) / PU )
_Where PU is an unsigned integer (default value is 0011b, indicating power unit is in 1/8 Watts increment). <val1> is the value of CPU MSR 0x606 and <val2> of MSR 0x614_
# rdmsr -acx 0x606
0xa0e03
0xa0e03
0xa0e03
0xa0e03
0xa0e03
0xa0e03
0xa0e03
0xa0e03
# rdmsr -acx 0x614
0x208
0x208
0x208
0x208
0x208
0x208
0x208
0x208
PU = 2 << ( ( 0xa0e03 & 0x0f ) - 1 )
PU = 2 << 2
PU = 8
TDP = ( ( 0x208 & 0x7fff ) / 8 )
TDP = 0x208 / 8
TDP = 65
md5-f89804f6c1a44886a8e5a41219b9c5c4
# rdmsr -acx 0x606
0xa1003
0xa1003
0xa1003
0xa1003
0xa1003
0xa1003
0xa1003
0xa1003
# rdmsr -acx 0x614
0x10024001200168
0x10024001200168
0x10024001200168
0x10024001200168
0x10024001200168
0x10024001200168
0x10024001200168
0x10024001200168
md5-892fa3778fd45423008e1d9ecba416b4
PU = 2 << ( ( <val1> & 0x0f ) - 1 ) = 2 << ( ( 0xa1003 & 0x0f ) - 1 ) = 8
TDP = ( ( <val2> & 0x7fff ) / PU ) = ( ( 0x10024001200168 & 0x7fff ) / 8 )
TDP = 45
TDP of SandyBridge i7-2710QE = 45 Watts
So far the Power Unit MSR is available for Intel and AMD Zen but the Power Info MSR is only found on Intel



That's cool! My NUC shows 15 TDP, although a full stress test gives 6+ Watts. Haven't checked specs for the CPU but 99 % sure it's 15 Watts (or in that area).
EDIT: Need a screenshot for that?
Just gone through the hassle of BIOS update, latest Windows Insider Update, Radeon Update (really just GPU, no chipset), reset BIOS and adjusted all settings again in case new settings.
Using Ryzen Master (no updates to it yet) for PBO I know very well what it does to UEFI now. Thank God AMD it's at least OS transparent (you can do exactly the same without Windows, just gotta change like 3 things in UEFI for a RM standard 100 MHz PBO, where 200 is max, it's not recommended nor gives really any better results, really).
I've done Geekbench again, this time v 4.4.2, even though GB 5 is out, it uses very different scores and is quite new, and previous results were from 4.4.1. Will post screenshots but can say Linux vs Windows totally idle and CLI, Linux crushes Windows again, maybe even more. Gotta check Blender Benchmark tool though, if there's still like a 3-4 minute gain. Heck it's the only bench tool on Windows that it's possible to get the CPU Package Watts to max... CoreFreq is just Conic... There's a new version of CPU-Z and HWMonitor, but at least CPU-Z isn't close to stress the CPU to max set to max threads, but it seems HWMonitor is more precise, but still waaay too inaccurate compared to official RM, where CoreFreq gives basically the same result as RM. So again CoreFreq is just as good as the official Windows tool for Watts, temperature and Voltage ;-)
EDIT: Need a screenshot for that?
Yes, please, such as the IvyBridge screenshot above: showing the TDP in Power window, plus the view Voltage with Package and Cores watt, doing a full stressed processor, with algorithm Conics - 2 plans
Indeed, same issue encountered with IVB where TDP is computed to 130W but the stressed processor does not consume that TDP power.
About AMD and _pre_ SandyBridge processors, I've not found any MSR, PCI registers to compute the TDP. _I'll avoid to maintain a values table for those_ thus they are showing a zero TDP result.
With "Conic 2 plans" do you mean the "Two parallel planes"?
Well on AMD the TDP can at least be obtained by simply stressing the CPU with Conic and look at the Package Watts usage, which corresponds to the TDP (on my CPU at least). Actually getting a little above, like 96.x Watts (probably due to PBO which is an official tiny overclock).
Windows don't seem to be able to reach TDP completely, even using the installed Ryzen Performance Power Plan == Performance Governor on Linux == CPU always at highest frequency, C0, at all times, when stressed to the max, which only Blender Benchmark manages on Windows.
Maybe that's why Linux crushes Windows in benchmarks...? Weird anyway.
Didn't do a full test yesterday as the renders take 20+ minutes, but saw Ryzen Master showing a significant higher % of 128 Watts (which is how RM shows Power Usage) than if stressing, choosing all cores, with say CPU-Z.
Anyway Watts % tends to drop slightly in RM as the CPU gets hotter, so I doubt a full render will reach max TDP, although the second render (classroom) is harder on the CPU than the first (bmw).
Here you go from my NUC (Conic Compute - Two Parallel Planes):
EDIT: Indeed the TDP is 15 Watts according to the Intel datasheet.

As said for AMD it seems to just be to stress the CPU using whatever Conic Compute stresstest, and the Package Watts will raise to the TDP it seems (perfectly for me, unless you've changed some UEFI stuff that touches that).
As CoreFreq shows exactly what CPU model you have, it's just a Google search away anyway. AMD has the basics people care about, like TDP, listed for every CPU on that CPU's "homepage" at the bottom. I can only assume when I get a 3950X, which has a TDP of 105 Watts, stressing it with Conic will raise it to that. Well this for at least X570 + 3rd Gen it seems.
Maybe write "Missing" instead of "0" for TDP on AMD? Since you use the words "Capable" and "Missing". People will understand, that of course a TDP exists, but that CoreFreq can't read it.
Cheers.
The general formula for the energy units might be the issue. My formula based on Intel specs is OK for SandyBridge and afterward architectures. However, specs also mention an exception for Atom kind processors.
I put those conditions here:
https://github.com/cyring/CoreFreq/blob/e746dff67bfa0b49f6cab9e799ad07339391eb62/corefreqd.c#L638
I presume other architectures, such as NUC and IVB-EP, may be subject to other computation exceptions to resolve the power unit formula.
Unfortunately I have not found any datasheets which specify some _good_ values or equation to apply.
We could tune the NUC power formula until we reach the TDP but how to be sure this approximation is true for the whole architecture...
Well the CPU in the NUC is from the third quarter of 2013 so I don't expect full support. Don't think many users with Atom processors do either (if you buy that then well you're probably not a power user, a 4th Gen Raspberry Pi can probably be faster, at least iGPU). The cheapest NUCs now come with Pentium Gold CPUs, and as mine the second cheapest has an i3.
The lower-than-TDP usage may be just the way Intel has built the board for maximum power saving - just putting in a CPU otherwise sold in laptops - but for the NUCs they maybe don't need as much, and headroom for peripherals.
Remember when I had the peripherals plugged in? With HDMI, dongle for wireless keyboard and mouse and a USB stick, the power usage was quite higher on the CPU, several Watts higher IIRC, so Intel has made some headroom there in case you use all the ports, which seems to make the CPU use several Watts more.
In this screenshot it's headless, no desktop, only Ethernet and power.
It has 4 USB ports, 1 mini-HDMI, 1 mini-DisplayPort, analog audio out and in (microphone) and an Infrared sensor as well (which works perfectly with LIRC BTW, like mapping a generic or common IR remote control).
Feature is stable