April 19, 20206 yr Let me preface this by saying that I'm kinda perplexed by this result. I've messed around with affinity masks before in previous versions of Prepar3D and never had any conclusive results. Always some vague placebo "I think it's smoother if I do this..." but never the numbers to back it up. However, during my 'performance killer' run, I saw some major differences under v5. To explain, that run simply consists of taking off in a default jet (F-35 in this case) out of OrbX's SoCal and then fly for a few minutes. That will usually give you shaky FPS and stutters as the vast amounts of autogen cells are loaded. If the sim runs acceptable here, it'll most likely run acceptable everywhere else. Under v5, I saw a huge difference. Turning HT off via an affinity mask, gave me a very smooth result, smoother than my sim has ever been here, whereas the default all cores mask was the usual shaky, low FPS like the previous entries (I'd say it was a good bit lower but my settings are also higher). Sim still stutters in both cases when a cell loads, which can be down to OrbX's models or just the sim of course. I will also note, I had to use OBS instead of Nvidia Share, as that would make the sim crash with the RTSS overlay (It's a sensitive mistress this), so that could potentially have taken a bit of performance as well. These are my settings and specs can be found in the signature. Framerate capped to 30 via Nvidia settings. Has anyone been playing around with affinity masks under v5 and seen any differences? Edited April 19, 20206 yr by Sethos [MSI MPG X870E Carbon | 9800X3D (PBO +200Mhz / -20 Offset) | Corsair 64GB DDR5 (Custom Timings) | RTX 4090 Founders Edition (Undervolted) | WD SNX 850X 4TB + 4TB | Antec Flux Pro]
April 19, 20206 yr 21 minutes ago, Sethos said: Turning HT off via an affinity mask Can you explain? I am under the impression HT is controlled by a BIOS setting and in a then-booted system optimized within an individual application with Affinity Mask. Frank Patton Corsair 5000D Airflow Case; MSI B650 Tomahawk MOB; Ryzen 7 7800 X3D CPU; ASUS RTX 4080 Super; NZXT 360mm liquid cooler; Corsair Vengeance 64GB DDR5 4800 MHz RAM; RMX850X Gold PSU;; ASUS VG289 4K 27" Display; Honeycomb Alpha & Bravo, Crosswind 3's w/dampener. Former USAF meteorologist & ground weather school instructor. AOPA Member #07379126 "I will never put my name on a product that does not have in it the best that is in me." - John Deere
April 19, 20206 yr @Sethos I have an 9900KS. So 8 cores and HT on makes it 16. I added an affinity mask to disable the HT part of the cores. It runs way way way smoother. I tested it for 24 hours using the same scenario. And the conclusion is, that the hyper threading causes stuttering, and the affinity mask to turn it off removes the stuttering.
April 19, 20206 yr 6 minutes ago, fppilot said: Can you explain? I am under the impression HT is controlled by a BIOS setting and in a then-booted system optimized within an individual application with Affinity Mask. Yes you are correct. I disable HT in BIOS instead of setting it up as an affinity mask in the cfg. Sean Green
April 19, 20206 yr Author 8 minutes ago, fppilot said: Can you explain? I am under the impression HT is controlled by a BIOS setting and in a then-booted system optimized within an individual application with Affinity Mask. It is but you can technically 'turn it off', which is what I'm referring to here, by simply masking off the logical cores, i.e only using the physical cores through an affinity masks. Then you end up with the same effect as disabling hyper-threading without having to do it globally. [MSI MPG X870E Carbon | 9800X3D (PBO +200Mhz / -20 Offset) | Corsair 64GB DDR5 (Custom Timings) | RTX 4090 Founders Edition (Undervolted) | WD SNX 850X 4TB + 4TB | Antec Flux Pro]
April 19, 20206 yr 1 minute ago, Sethos said: It is but you can technically 'turn it off', which is what I'm referring to here, by simply masking off the logical cores, i.e only using the physical cores through an affinity masks. Then you end up with the same effect as disabling hyper-threading without having to do it globally. I would love to gain a better understand of that. If you have time would you PM me a bit more about it? Frank Patton Corsair 5000D Airflow Case; MSI B650 Tomahawk MOB; Ryzen 7 7800 X3D CPU; ASUS RTX 4080 Super; NZXT 360mm liquid cooler; Corsair Vengeance 64GB DDR5 4800 MHz RAM; RMX850X Gold PSU;; ASUS VG289 4K 27" Display; Honeycomb Alpha & Bravo, Crosswind 3's w/dampener. Former USAF meteorologist & ground weather school instructor. AOPA Member #07379126 "I will never put my name on a product that does not have in it the best that is in me." - John Deere
April 19, 20206 yr Nothing new for my system. P3D v4.x was always a lot smoother with HT off. It's well documented that HT/SMT off can improve performance in some games as well, not all however.
April 19, 20206 yr 27 minutes ago, Sethos said: It is but you can technically 'turn it off', which is what I'm referring to here, by simply masking off the logical cores, i.e only using the physical cores through an affinity masks. Then you end up with the same effect as disabling hyper-threading without having to do it globally. That's not the same as disabling HT in the BIOS, because other running processes (there are hundreds) can still be tasked by the OS to run on the LPs that you masked-off in the P3D affinity mask. Consider this case: HT on and an affinity mask that restricts P3D to run on only one LP per core (e.g. AM=85 or 01010101 on a 4-core CPU). In this case, P3D's main thread will place a heavy load on LP 0, and no load on its paired LP 1. The OS sees LP 1 as a good target to assign threads because it has no load. So it puts threads from other processes on LP 1, which shares CPU's physical processing unit with LP 0. You really don't want CPU 0 diverting its work from the main thread, but that's what will happen as the processing unit alternates between the instruction stacks on LP 0 and LP 1. Additionally, with HT on, CPU 0 is sharing it's limited and super-fast cache memory between the processes running on the two LPs instead of using it all for the P3D main thread. With HT off in the BIOS, LP 0 is CPU 0...with it loaded way up by P3D's main thread, the OS will then assign other processes to the other less-heavily utilized CPUs. Bob Scott | President and CEO, AVSIM Inc ATP Gulfstream II-III-IV-V Sys1 (MSFS20+24/XPlane12+11): AMD 9800X3D, water 2x240mm, MSI MPG X670E Carbon, 64GB GSkill 6000/30, nVidia RTX4090FE Alienware AW3821DW 38" 21:9 GSync, 2x4TB Crucial T705 PCIe5 + 2x2TB Samsung 990 SSD, EVGA 1000P2 PSU, 12.9" iPad Pro Thrustmaster TCA Boeing Yoke, TCA Airbus Sidestick, Twin TCA Airbus Throttle quads, PFC Cirrus Pedals, Coolermaster HAF932 case Sys2 (P3Dv5/v4): i9-13900KS, water 2x360mm, ASUS Z790 Hero, 32GB GSkill 7800MHz CAS36, ASUS RTX4090 Samsung 55" JS8500 4K TV@60Hz, 3x 2TB WD SN850X 1x 4TB Crucial P3 M.2 NVME SSD, EVGA 1600T2 PSU Fiber link to Yamaha RX-V467 Home Theater Receiver, Polk/Klipsch 6" bookshelf speakers, Polk 12" subwoofer, 12.9" iPad Pro PFC yoke/throttle quad/pedals with custom Hall sensor retrofit, Thermaltake View 71 case, Stream Deck XL button box Sys3 (DCS/P3Dv4/ATS/ETS): AMD 7800X3D, MSI MPG X870E Carbon, Noctua NH-D15S, 64GB GSkill 6000/30, EVGA RTX3090 Alienware AW3420DW 34" 21:9 GSync, Corsair HX1000i PSU, 4TB Crucial T705 PCIe5 + 2TB Samsung 970Evo Plus, TM TCA Officer Pack, Saitek combat pedals, TM Warthog, TM RS300 FF wheel/pedals, Coolermaster HAF XB case
April 19, 20206 yr Commercial Member 2 minutes ago, w6kd said: In this case, P3D's main thread will place a heavy load on LP 0, and no load on its paired LP 1. The OS sees LP 1 as a good target to assign threads because it has no load. So it puts threads from other processes on LP 1, which shares the processing unit on CPU 0 with LP 0. Bob, that assumes that the Windows scheduler isn't aware of Hyperthreaded CPUs. It most certainly is, and has been since XP. Cheers Luke Kolin I make simFDR, the most advanced flight data recorder for FSX, Prepar3D and X-Plane.
April 19, 20206 yr 5 minutes ago, Luke said: Bob, that assumes that the Windows scheduler isn't aware of Hyperthreaded CPUs. It most certainly is, and has been since XP. Cheers And yet observation of LP 1 when running P3D on an HT-enabled CPU with an AM restricting P3D to a single LP per core does reveal that LP 1 is being tasked by the OS. Bob Scott | President and CEO, AVSIM Inc ATP Gulfstream II-III-IV-V Sys1 (MSFS20+24/XPlane12+11): AMD 9800X3D, water 2x240mm, MSI MPG X670E Carbon, 64GB GSkill 6000/30, nVidia RTX4090FE Alienware AW3821DW 38" 21:9 GSync, 2x4TB Crucial T705 PCIe5 + 2x2TB Samsung 990 SSD, EVGA 1000P2 PSU, 12.9" iPad Pro Thrustmaster TCA Boeing Yoke, TCA Airbus Sidestick, Twin TCA Airbus Throttle quads, PFC Cirrus Pedals, Coolermaster HAF932 case Sys2 (P3Dv5/v4): i9-13900KS, water 2x360mm, ASUS Z790 Hero, 32GB GSkill 7800MHz CAS36, ASUS RTX4090 Samsung 55" JS8500 4K TV@60Hz, 3x 2TB WD SN850X 1x 4TB Crucial P3 M.2 NVME SSD, EVGA 1600T2 PSU Fiber link to Yamaha RX-V467 Home Theater Receiver, Polk/Klipsch 6" bookshelf speakers, Polk 12" subwoofer, 12.9" iPad Pro PFC yoke/throttle quad/pedals with custom Hall sensor retrofit, Thermaltake View 71 case, Stream Deck XL button box Sys3 (DCS/P3Dv4/ATS/ETS): AMD 7800X3D, MSI MPG X870E Carbon, Noctua NH-D15S, 64GB GSkill 6000/30, EVGA RTX3090 Alienware AW3420DW 34" 21:9 GSync, Corsair HX1000i PSU, 4TB Crucial T705 PCIe5 + 2TB Samsung 970Evo Plus, TM TCA Officer Pack, Saitek combat pedals, TM Warthog, TM RS300 FF wheel/pedals, Coolermaster HAF XB case
April 19, 20206 yr Same here, as for every version since FSX, best results on my rig are with an AM basically "turning off" HT. Greetings, Chris AMD Ryzen 7 9800X3D, 2x32GB DDR5 6000MT/s RAM, MSI RTX 4090 Ventus 3X, Windows 11 Home, MSFS2024
April 19, 20206 yr Commercial Member 38 minutes ago, w6kd said: And yet observation of LP 1 when running P3D on an HT-enabled CPU with an AM restricting P3D to a single LP per core does reveal that LP 1 is being tasked by the OS. I think both can be true at the same time. 🙂 I'd be curious as to what processes were being scheduled and for how long. I'm not convinced that core contention or cache thrashing causes latency great enough to visible by the naked eye. I suspect manually changing the core affinity is either doing just enough to not trigger a specific race condition, or it's indirectly preventing said condition from happening. Cheers! Luke Kolin I make simFDR, the most advanced flight data recorder for FSX, Prepar3D and X-Plane.
April 19, 20206 yr What is noticeable in the video is the P3D5 Task Scheduler can easily bloat many cores on the left video at 100% for a certain amount of time, whereas on the right video, it seems to balance things out more evenly. It looks looks like it is non-HT aware and wrongly assigns tasks competing for the same resource on the same core which is mutually blocking both LP0 and LP1 at the same time. I've never looked at whether P3D is using mainstream Microsoft CCRT, Intel TBB or their own task scheduler, but this video makes me wondering.
April 19, 20206 yr I noticed in the video, that with „HT off“ the GPU load is way higher than with „HT on“. So maybe P3D is shifting more load to the GPU when it has less CPU threads available, and the GPU handles this load actually better than the CPU?! Regards Oliver Holstein
Archived
This topic is now archived and is closed to further replies.