Henties Posted October 25 Author Share Posted October 25 @MaLd0nI have done a few more experiments and was able to jack up the numbers slightly albeit at the cost of quite higher operating temperatures. the duration of copying huge files also increased slightly, therefore overall I think I am better off without CPUFriend... and his partner as well as the -ctrmst boot arg. For the kernel boot args and for this particular test I only use "alcid=11 agdpmod=pikera revpatch=sbvmm -ctrsmt", watchdog=0 I don't need as I do not use a debugging version of opencore, neither do I need ncpi=0x3000 because i can set decoding above 4 meg. to on in the bios of my mobo, neither do I need ncpi=0x2000 as booting this hack is smoothe and flawless without any stoppages or hangs whatsovever. I have plugged your "optimized" code into my SSDT-PLUG-ALT.aml and confirm that it works great, thank you for that suggestion of yours. I think what made the difference, in the performance figures for single and multi-core Geekbench test, was the addition of 3841 for the ProcessorType. Initially I had it set at 0 (zero). 3841 is referring to processors with more than 8 cores, therefore without 3481 the 12 core cpu might actually be under performing, at least as far as concerns the output that Geekbench is producing, will need to test a bit more. I have attached a screenshot reflecting the single as well as the multi-core Geekbench results with the configuration as per your suggestion, please note these figures relate to an Alder Lake cpu running in a Z790 chipset environment equipped with DDR4 ram at a speed of 3600 Mhz. One cannot expect the Geekbench figures that ar obtainable when using a Raptor Lake CPU or even an Alder lake CPU running in a DDR5 memory environment. Just my 2 cents. I think @Miezewould also be quite interested in the findings that the further testing actually revealed. Greeting Henties and thank you @MaLd0nfor hanging on to this thread. 2 Link to comment Share on other sites More sharing options...
Henties Posted October 25 Author Share Posted October 25 @MaLd0n or @Mieze or both, I have been trying to find out some technical details about the -ctrsmt boot arg which, in combination with CPUfriend... and it's partner(s) increases the performance figures that Geekbench is "spitting" out. Can one of you, or both, provide me with a link where this particular boot arg is described and under which circumstances it is deployable. For the time being I am "test using" this boot arg and discovered that: it does not impair the performance of my flight sim one iota, it actually "feels" as though flying is slightly smoother, my observation might however be illusionary, more concrete testing will have to be done to eliminate any unscertainty in this regard. it seems to impose a slight time or rather duration penalty when copying large files, but in my particular environment it feels insignificant, again I need to test this more thoroughly in order to eliminate any doubt. Looking forward to hear from you so that I can get clarity on the mystery surrounding the -ctrsmt boot arg. I don't like to have entries in my opencore config.plist file for which I don't know and understand their deployment criteria. Great having you both onboard. Greetings Henties 1 Link to comment Share on other sites More sharing options...
Mieze Posted October 25 Share Posted October 25 (edited) @Henties The boot arg "-ctrsmt" influences the CPU topology so that E-Cores appear to be additional SMT threads of the P-Cores. For the 12700KF you get 8 cores, 4 of them with 3 threads and the other 4 cores with only 2 threads. Further tests have shown that setting ProcessorType to 3841 as suggested by @MaLd0n resolves some of the problems causes by CPUFriend. Thank you very much! Obviously OpenCore's auto detection doesn't work with this CPU. The I/O performance issue with IntelLucy is gone. Also the CPU name is now displayed correctly in System Information as "3,6 GHz 12-Core Intel Core i7" but one thing remains and this is a deal breaker: CPU power consumption is limited to ~130W. With CPUFriend installed it is impossible to make use of the 12700KF's 190W of power budget. As Geekbench never drives CPU power up to its limits, it is unsuitable to detect this issue, but Cinebench R23 does. Therefore I consider Geekbench as scrap and would suggest to use Cinebench R23 for benchmarking instead. Another problem of any benchmark is the fact, that there is no chance to predict or control if single core tests are scheduled to run on a P-Core or E-Core which results in arbitrary results with no meaning. The situation may be better with fully balanced CPU topologies but this is impossible on an 12700KF, provided you aren't willing to disable the E-Cores completely. Edited October 25 by Mieze 1 1 Link to comment Share on other sites More sharing options...
MaLd0n Posted October 25 Share Posted October 25 11 hours ago, Henties said: Wow. Now looks ok for ur i7 15 minutes ago, Mieze said: CPU power consumption is limited to ~130W. With CPUFriend installed it is impossible to make use of the 12700KF's 190W of power budget. In my case before last bios/uefi update my processor go to 380w and restart or shut down(I used a 400w power supply on PCs with IGPU😆). Now all is ok with 253w max. On previous bios/uefi i need to set TDP to 253w direct on setup. With iMacPro1,1 perfomance is fantastic and we don't need fix these things. 1 Link to comment Share on other sites More sharing options...
MaLd0n Posted Friday at 10:15 PM Share Posted Friday at 10:15 PM Other thing is Plugin type. We don't need it since Monterey. A little one for all Alder and Raptor Lake MiNi.600.700.aml.zip. Just need inject _STA if using official OpenCore instead MOD. Quote DefinitionBlock ("", "SSDT", 2, "MiNi", "600.700", 0x00000000) { External (_SB_.PC00.LPCB, DeviceObj) External (_SB_.PC00.PEG1.PEGP, DeviceObj) External (HPTE, UnknownObj) External (STAS, UnknownObj) Scope (\) { Method (_INI, 0, NotSerialized) // _INI: Initialize { HPTE = Zero STAS = One } } Scope (\_SB) { Device (EC) { Name (_HID, "MINI0001") // _HID: Hardware ID } } Scope (\_SB) { Processor (CP00, 0x00, 0x00000510, 0x06){} Processor (CP01, 0x01, 0x00000510, 0x06){} Processor (CP02, 0x02, 0x00000510, 0x06){} Processor (CP03, 0x03, 0x00000510, 0x06){} Processor (CP04, 0x04, 0x00000510, 0x06){} Processor (CP05, 0x05, 0x00000510, 0x06){} Processor (CP06, 0x06, 0x00000510, 0x06){} Processor (CP07, 0x07, 0x00000510, 0x06){} Processor (CP08, 0x08, 0x00000510, 0x06){} Processor (CP09, 0x09, 0x00000510, 0x06){} Processor (CP10, 0x0A, 0x00000510, 0x06){} Processor (CP11, 0x0B, 0x00000510, 0x06){} Processor (CP12, 0x0C, 0x00000510, 0x06){} Processor (CP13, 0x0D, 0x00000510, 0x06){} Processor (CP14, 0x0E, 0x00000510, 0x06){} Processor (CP15, 0x0F, 0x00000510, 0x06){} Processor (CP16, 0x10, 0x00000510, 0x06){} Processor (CP17, 0x11, 0x00000510, 0x06){} Processor (CP18, 0x12, 0x00000510, 0x06){} Processor (CP19, 0x13, 0x00000510, 0x06){} Processor (CP20, 0x14, 0x00000510, 0x06){} Processor (CP21, 0x15, 0x00000510, 0x06){} Processor (CP22, 0x16, 0x00000510, 0x06){} Processor (CP23, 0x17, 0x00000510, 0x06){} Processor (CP24, 0x18, 0x00000510, 0x06){} Processor (CP25, 0x19, 0x00000510, 0x06){} Processor (CP26, 0x1A, 0x00000510, 0x06){} Processor (CP27, 0x1B, 0x00000510, 0x06){} Processor (CP28, 0x1C, 0x00000510, 0x06){} Processor (CP29, 0x1D, 0x00000510, 0x06){} Processor (CP30, 0x1E, 0x00000510, 0x06){} Processor (CP31, 0x1F, 0x00000510, 0x06){} } Scope (\_SB) { Device (USBX) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer () { 0x03 // . }) } Return (Package () { "kUSBSleepPowerSupply", 0x13EC, "kUSBSleepPortCurrentLimit", 0x0834, "kUSBWakePowerSupply", 0x13EC, "kUSBWakePortCurrentLimit", 0x0834 }) } } } Scope (\_SB.PC00.LPCB) { Device (PMCR) { Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadWrite, 0xFE000000, // Address Base 0x00010000, // Address Length ) }) } } Scope (\_SB.PC00.PEG1.PEGP) { Device (BRG0) { Name (_ADR, Zero) // _ADR: Address Device (PEGP) { Name (_ADR, Zero) // _ADR: Address } Device (HDAU) { Name (_ADR, One) // _ADR: Address } } } } 1 Link to comment Share on other sites More sharing options...
Mieze Posted Saturday at 12:59 PM Share Posted Saturday at 12:59 PM (edited) Trying to improve performance I turned to the UEFI setup and did some optimisations: Increased PL1 and PL2 to 200W. Set PLtau to the maximum allowed value 448s. Increased P-core frequency to 5GHz. Running Cinebench R23 I observed a strange behaviour which is most likely related to the scheduler being unaware of the differences between P-cores and E-cores. Each run ended up in one of the two scenarios: *** Processor usage **** Intel energy model derived package power (CPUs+GT+SA): 199.95W LLC flushed residency: 0% System Average frequency as fraction of nominal: 131.67% (4740.06 Mhz) Package 0 C-state residency: 0.00% (C2: 0.00% C3: 0.00% C6: 0.00% C7: 0.00% C8: 0.00% C9: 0.00% C10: 0.00% ) Performance Limited Due to: CPU LIMIT PL2_PL3 CPU/GPU Overlap: 0.00% Cores Active: 99.99% GPU Active: 0.00% Avg Num of Cores Active: 12.00 Core 0 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 136.70% (4921.25 Mhz) Core 1 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 136.70% (4921.27 Mhz) Core 2 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 137.92% (4965.19 Mhz) Core 3 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 137.92% (4965.20 Mhz) Core 4 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.83% (4997.85 Mhz) Core 5 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.83% (4997.85 Mhz) Core 6 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.83% (4997.85 Mhz) Core 7 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.83% (4997.85 Mhz) Core 8 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.62% (4990.19 Mhz) Core 9 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 138.62% (4990.18 Mhz) Core 10 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 137.16% (4937.93 Mhz) Core 11 C-state residency: 0.00% (C3: 0.00% C6: 0.00% C7: 0.00% ) CPU Average frequency as fraction of nominal: 137.16% (4937.94 Mhz) In the first scenario all cores seem to go up to the maximum P-core frequency of 5GHz (I doubt that this is true for the E-cores. Might be just an artefact?) and the CPU power consumption reaches it's programmed limit of 200W (see above). The MC scores exceed 23000 points. In the second scenario all cores won't exceed the E-cores maximum frequency of 3.9GHz and CPU power consumption is limited to about 130-140W. MC scores are between 18000-20000 points. **** Processor usage **** Intel energy model derived package power (CPUs+GT+SA): 132.14W LLC flushed residency: 0% System Average frequency as fraction of nominal: 107.72% (3878.04 Mhz) Package 0 C-state residency: 0.00% (C2: 0.00% C3: 0.00% C6: 0.00% C7: 0.00% C8: 0.00% C9: 0.00% C10: 0.00% ) CPU/GPU Overlap: 0.00% Cores Active: 100.04% GPU Active: 0.00% Avg Num of Cores Active: 11.37 Core 0 C-state residency: 0.08% (C3: 0.00% C6: 0.08% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.26% (3897.18 Mhz) Core 1 C-state residency: 0.08% (C3: 0.00% C6: 0.08% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.31% (3899.22 Mhz) Core 2 C-state residency: 0.14% (C3: 0.00% C6: 0.14% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.28% (3897.96 Mhz) Core 3 C-state residency: 0.14% (C3: 0.00% C6: 0.14% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.30% (3898.98 Mhz) Core 4 C-state residency: 0.07% (C3: 0.00% C6: 0.07% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.06% (3890.20 Mhz) Core 5 C-state residency: 0.07% (C3: 0.00% C6: 0.07% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.32% (3899.36 Mhz) Core 6 C-state residency: 0.14% (C3: 0.00% C6: 0.14% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.30% (3898.69 Mhz) Core 7 C-state residency: 0.14% (C3: 0.00% C6: 0.14% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.31% (3899.15 Mhz) Core 8 C-state residency: 2.20% (C3: 0.00% C6: 2.20% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.04% (3889.26 Mhz) Core 9 C-state residency: 2.20% (C3: 0.00% C6: 2.20% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.31% (3899.28 Mhz) Core 10 C-state residency: 2.73% (C3: 0.00% C6: 2.73% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.30% (3898.97 Mhz) Core 11 C-state residency: 2.73% (C3: 0.00% C6: 2.73% C7: 0.00% ) CPU Average frequency as fraction of nominal: 108.31% (3899.11 Mhz) All tests were performed without CPUFriend but with ProcessorType set to 3841. Edited Saturday at 12:59 PM by Mieze 1 1 Link to comment Share on other sites More sharing options...
Henties Posted Saturday at 05:16 PM Author Share Posted Saturday at 05:16 PM (edited) @MiezeStrange behavior indeed, at my first best opportunity I will echo your settings and tests and see if I get more or less the same results. If I understand you correctly the test outcome fluctuates between your scenario one and or two but seems unpredictable as to which one it will be. Just to confirm my understanding of the above results, you are using one set of modified UEFI values with the test results fluctuating between one of the results that you documented above. If my understanding is correct then there seems to be a flaw somewhere, maybe with Cinebench R23 itself ? I am presently away from base and will hopefully be back home by Wednesday, the coming week, whence I will also have a go at this. Thanks for sharing. While I am away my new Alder Lake hack is switched off because I noticed that all of a sudden, usually during a fairly lengthy sleep spell, the machine tries to wake from sleep but only gets to the point where the fans start spinning without ever reaching the desktop. To get control back I need to power toggle the hack to reboot after which everything is working fine again. It could well be that I need to add the boot arg "ncpi=0x2000" again, to fix this nagging problem. Perhaps you have an idea what else it could be. It could also be CPUFriend.. etcetera in combination with the -ctrsmt boot flag. Before I started experimenting with CPUFriend... this problem did not manifest itself, go figure. Looks like there is still some work to do before everything works the way it should. Greetings Henties Greetings Henties Edited Saturday at 05:18 PM by Henties 1 1 Link to comment Share on other sites More sharing options...
Mieze Posted Saturday at 05:59 PM Share Posted Saturday at 05:59 PM (edited) @Henties I can confirm that the sleep/wake failure is caused by removing "npci=0x2000" from the boot args. I tried it myself and ran into the same problem. I restored it and the problem is solved. 😺 Edited Sunday at 12:08 AM by Mieze 1 1 Link to comment Share on other sites More sharing options...
Henties Posted Saturday at 06:50 PM Author Share Posted Saturday at 06:50 PM @MiezeI guessed so because it is used precisely to eliminate what I am experiencing, at least according to what I picked up via Google on this issue - console loss. "You need npci=0x2000 under kernel flags to avoid losing console output during boot after the "PCI Configuration begin" message appears" It therefore appears to me that the console is also lost when the machine wakes or rather dark wakes from an extended sleep phase. During a straight forward boot process, I have not lost the console yet, but am obviously glad that ncpi=0x2000 fixes wake with a console that is accessible once the machine has come alive after sleep. Will just reinsert it when back home again. Greetings Henties 1 Link to comment Share on other sites More sharing options...
Henties Posted yesterday at 10:25 AM Author Share Posted yesterday at 10:25 AM @Mieze and @MaLd0nI did some extensive testing with the Bios PL1, PL2, P-Core freq. as well as PL2tau settings and have come to the conclusion, that in my particular environment, the cooler I am using plus the ambient temperatures under which this new Alder Lake build is operating, setting PL1,PL2 as well as PL2tau to Auto, with the P-Core frequency at 4.9 GHz. yields a Cinebench R23 result of 21087 points, with which I can live with. The cooler I am using is an age old Noctua NH-14D with a NSPR (Noctua Standard Performance Rating) of 161 combined with a Noctua Intel socket 1700 adapter bracket. An NSPR of 161 is ample, according to Noctua's database, for cooling an i7-12000KF CPU without restriction, even allowing overclocking, which I am presently not really interested in. CPUFriend as well CPUFriendDataProvider were both enabled, in the applicable Kernel --> Add config.plist section with the -ctrsmt boot flag also active, when the Cinebench R23 21087 points performance value was achieved. I believe it to be superfluous to tinker with the PL2tau duration when both PL1 as well as PL2 are set equal ie. 190W, 190W or whatever wattage. The rationale behind my thinking is that when the PL2tau time in seconds that PL2 is allowed to be active in its set power, lapsed, bios is then supposed to toggle to the power setting for PL1, which when that also equals PL2, makes no sense to me, it's sort of nothing gained nor lost, for me therefore a non starter to begin with. Should my interpretation be wrong then kindly enlighten me on this issue. BTW I am aware that macOS is unable to differentiate between P and E cores for the CPU under discussion because Apple never used an Alder Lake cpu in any of it's recent opsyses, this could also, at least in my humble view and limited understanding of the subject matter, lead to performance evaluation software getting confused in generating consistently reliable outputs, as you are indeed experiencing, especially when E-Cores are mistakenly treated as though they are P-Cores, by the evaluation software used. Just my 2 cents. Greetings Henties 1 Link to comment Share on other sites More sharing options...
Mieze Posted yesterday at 12:50 PM Share Posted yesterday at 12:50 PM (edited) @Henties PL1 = PL2 = 190W and PLtau = unlimited are the Intel recommended values for the 12700K(F). See Core-i 12000 Power Limits. Unfortunately the Gigabyte UEFI doesn't allow PLtau to be set to unlimited, so that I decided to choose the maximum supported value of 448s. As my Thermalright Phantom Spirit 120 can easily handle 200W without getting loud, I decided to increase PL1 and PL2 a little bit in order to gain some extra performance. Technically speaking, modifying the power limits isn't considered to be overclocking, at least not from Intel's point of view, and has been a reliable and efficient way of getting maximum performance since the introduction of Comet Lake even with non-K CPUs and non Z-chipsets. 😁 Edited yesterday at 12:52 PM by Mieze 1 1 Link to comment Share on other sites More sharing options...
Henties Posted yesterday at 04:05 PM Author Share Posted yesterday at 04:05 PM @MiezeThank you for your explanation and rationale as to why you opted to go for slightly higher power values as well as setting your PL2tau to the max. of 448s setting. When I do so, in my particular environment, the Cinebench R23 scores stay below 21000 as is evident from the attachment I posted. With everything set to Auto I seem to get the best Cinebench scores possible. What the Auto settings actually apply to PL1, PL2 and PL2tau is obviously unbeknown to me. I do however experience a very slight increase in the fps figure when flying my favorite plane around Heathrow and London or JFK and New York although it might be illusionary because the frame rate increase is nothing to write home about. Flying the Simm is graphic intensive and should actually not be affected much or at all by slightly more aggressive CPU power settings. I am achieving Cinebench R23 figures that are consistent with test results, published on the internet by others, using an i7-12000KF cpu paired with a GA-Z790 D DDR4 mobo, I am therefore quite content leaving my particular UEFI power settings on Auto. Greetings Henties Link to comment Share on other sites More sharing options...
Henties Posted 8 hours ago Author Share Posted 8 hours ago (edited) @Mieze and @MaLd0n I can also now confirm that reintroducing npci=0x2000 as a boot flag, the console loss, from a wake after an extensive sleep period is now also fixed and soething of the past. I am still trying to get some sensors to show in the menu bar using iStatMenus 7.02, it does work on my Comet Lake hacks but I can just not get it to work on this new Alder Lake computer. I generated a SSDT-SBUS.aml and renamed MC__ to MCHC in the ACPI patches section of the config.plist file but that does not seem to provide access to the MCHC (management bus), would appreciate some assistance to solve this last and final problem. Greetings Henties EDIT: I done some further testing by running this terminal command, the output of which should tell me whether my SMBus is accessible or not : kextstat | grep -E "AppleSMBusController|AppleSMBusPCI" I get this result after running this command from terminal no matter whether the SSDT-SBUS-MCHC.aml file is enabled in the ACPI setction of the config.plist file or not. ---------------------------------------------------------------- kextstat | grep -E "AppleSMBusController|AppleSMBusPCI" Executing: /usr/bin/kmutil showloaded No variant specified, falling back to release 133 0 0xffffff7f9526c000 0x1000 0x1000 com.apple.driver.AppleSMBusPCI (1.0.14d1) 39845D9A-A618-31ED-98F9-5F906ACDCD75 <18 7 6 3> 158 1 0xffffff7f95260000 0x6ffd 0x6ffd com.apple.driver.AppleSMBusController (1.0.18d1) B7BB13CF-C689-38C1-97A8-44BC649CBFAB <157 18 17 7 6 3> ------------------------------------------------------------------ I am not certain as to the meaning of this output and what needs to be done to get access to the SMBUS. I have attached the SSDT-SBUS-MCHC.aml file, specially tailored by me for this Alder Lake hack, I would appreciate your input should you discover something wrong. Greetings Henties SSDT-SBUS-MCHC.aml Edited 4 hours ago by Henties Link to comment Share on other sites More sharing options...
Recommended Posts