New DAW build - High CPU-usage in FL Studio

dishwashertaco

New member
Hi,

I built myself a new desktop a few days ago, but i am not sure if it's performing to its full capabilities. My last system was a laptop with an Intel Duo Core cpu, so i really dont have any decent reference point to whats "normal" performance.


As a test, i loaded up Serum (64bit) which i know is CPU-heavy, playing a legato triad chord over 4 bars in a loop (Using a pad-sound with 16 voices on both oscillators). No effects enabled. I wanted to see how many instances of this my computer would handle.

With 1024 in buffer size i was able to have 4 instances simultaneously with peaks up to 79% in the CPU buffer. Adding a 5th would cause my meter to go to 100%, and crackling audio as a result, but no underruns during playback. Tried ASIO4ALL driver with same result.

My settings:
cputest.jpg

Hardware:
CPU: Intel i7 5820k overclocked to 4.4Ghz (CPU Mark: 15627, Single Threaded: 2641)
MB: Asrock X99 Taichi
RAM: Kingston HyperX Fury, 16GB DDR4 2133Mhz
SSD: Samsung 850 series
GPU: MSI GeForce GT 710, 1GB
PSU: Evga Supernova G2 650W
Sound interface: Focusrite Scarlett Solo(2nd Gen)

Software:
Windows 10 Pro
FL Studio 12.3.

So my questions are:
Is this performance to be expected when running a VST like Serum?
Why am i getting 100% buffer load, but no underruns?
Can this be DPC-latency related, even though i get no underruns?

I tried disabling Intel VT, Thermal throttling, hyperthreading, and C-states in BIOS with no major improvement.

If someone can point me in the direction of a more generalized DAW benchmark test, which takes DPC into calculations i would be really greatful.

Any feedback is appreciated
:D
 
Last edited:
That sounds pretty bad, to be honest. I just made the same test with a 2014 MBP (2,5Ghz i7, 16Gb RAM) & was happily running 12 instances...with the CPU barely at 40%, with a 128 sample buffer. Would've done more, but I only have the demo of Serum and you have to enter the settings for each instance so I didn't bother. You should be easily running at least 20+ instances with that rig.
 
That sounds pretty bad, to be honest. I just made the same test with a 2014 MBP (2,5Ghz i7, 16Gb RAM) & was happily running 12 instances...with the CPU barely at 40%, with a 128 sample buffer. Would've done more, but I only have the demo of Serum and you have to enter the settings for each instance so I didn't bother. You should be easily running at least 20+ instances with that rig.
Thx for your reply! Can I ask you how many voices Serum played per instance in your test? I found i had not only set Unison to max on both oscillators, but polyphony was also set to 16. A total of 102/544 voices (shown in the lower right corner of Serum) per instance was playing on mine. It has a huge impact on how many i can run.

During my testing, CPU-usage in task manager is showing a max of 37% on one core. The remaining 5 cores are hovering below 5%. This leads me to believe this is a DPC-latency issue.

I tried running a diagnose with xperf from Windows Performance Toolkit, but i dont have enough knowledge to analyse the data it found. The 3 top modules it listed was: Wdf01000.sys, dxgkrnl.sys and nvlddmkm.sys. Wdf01000.sys appeared on top, but is appearently no driver. The other two are graphics-drivers, so i will attempt to find another driver for my MSI GeForce GT 710, to see if this solves my problem.

EDIT: Im wondering if i might have this problem because im using my tv as a monitor.
 
Last edited:
I used the same settings, no point in comparing the results otherwise. But yeah, if you say your actual CPU usage is only 37% on one core, then there's something else amiss.
 
I used the same settings, no point in comparing the results otherwise. But yeah, if you say your actual CPU usage is only 37% on one core, then there's something else amiss.
Okey thanks, that confirms i have an issue. I realise the title of my thread is somewhat misleading, but wasn't able to edit it. I dont have high system CPU-usage, but CPU-buffer fills up fast. Also i AM getting underruns i FL studio, its just the counter doesnt work on specific settings.

I tried downloading LatencyMon and according to it DPC shouldn't be an issue on my system. However it's reporting alot(?) of hard pagefaults. Log:
_________________________________________________________________________________________________________
CONCLUSION
_________________________________________________________________________________________________________
Your system appears to be suitable for handling real-time audio and other tasks without dropouts.
LatencyMon has been analyzing your system for 0:00:50 (h:mm:ss) on all processors.




_________________________________________________________________________________________________________
SYSTEM INFORMATION
_________________________________________________________________________________________________________
Computer name: DESKTOP-GMOK5DF
OS version: Windows 8 , 6.2, build: 9200 (x64)
Hardware: ASRock, X99 Taichi
CPU: GenuineIntel Intel(R) Core(TM) i7-5820K CPU / 3.30GHz
Logical processors: 12
Processor groups: 1
RAM: 16304 MB total




_________________________________________________________________________________________________________
CPU SPEED
_________________________________________________________________________________________________________
Reported CPU speed: 3299 MHz
Measured CPU speed: 1 MHz (approx.)


Note: reported execution times may be calculated based on a fixed reported CPU speed. Disable variable speed settings like Intel Speed Step and AMD Cool N Quiet in the BIOS setup for more accurate results.


WARNING: the CPU speed that was measured is only a fraction of the CPU speed reported. Your CPUs may be throttled back due to variable speed settings and thermal issues. It is suggested that you run a utility which reports your actual CPU frequency and temperature.






_________________________________________________________________________________________________________
MEASURED INTERRUPT TO USER PROCESS LATENCIES
_________________________________________________________________________________________________________
The interrupt to process latency reflects the measured interval that a usermode process needed to respond to a hardware request from the moment the interrupt service routine started execution. This includes the scheduling and execution of a DPC routine, the signaling of an event and the waking up of a usermode thread from an idle wait state in response to that event.


Highest measured interrupt to process latency (µs): 291,458949
Average measured interrupt to process latency (µs): 3,587442


Highest measured interrupt to DPC latency (µs): 285,251091
Average measured interrupt to DPC latency (µs): 1,366331




_________________________________________________________________________________________________________
REPORTED ISRs
_________________________________________________________________________________________________________
Interrupt service routines are routines installed by the OS and device drivers that execute in response to a hardware interrupt signal.


Highest ISR routine execution time (µs): 36,172780
Driver with highest ISR routine execution time: Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation


Highest reported total ISR routine time (%): 0,012332
Driver with highest ISR total time: Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation


Total time spent in ISRs (%) 0,012335


ISR count (execution time <250 µs): 30025
ISR count (execution time 250-500 µs): 0
ISR count (execution time 500-999 µs): 0
ISR count (execution time 1000-1999 µs): 0
ISR count (execution time 2000-3999 µs): 0
ISR count (execution time >=4000 µs): 0




_________________________________________________________________________________________________________
REPORTED DPCs
_________________________________________________________________________________________________________
DPC routines are part of the interrupt servicing dispatch mechanism and disable the possibility for a process to utilize the CPU while it is interrupted until the DPC has finished execution.


Highest DPC routine execution time (µs): 449,739921
Driver with highest DPC routine execution time: tcpip.sys - TCP/IP Driver, Microsoft Corporation


Highest reported total DPC routine time (%): 0,214311
Driver with highest DPC total execution time: Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation


Total time spent in DPCs (%) 0,253672


DPC count (execution time <250 µs): 156637
DPC count (execution time 250-500 µs): 0
DPC count (execution time 500-999 µs): 102
DPC count (execution time 1000-1999 µs): 0
DPC count (execution time 2000-3999 µs): 0
DPC count (execution time >=4000 µs): 0




_________________________________________________________________________________________________________
REPORTED HARD PAGEFAULTS
_________________________________________________________________________________________________________
Hard pagefaults are events that get triggered by making use of virtual memory that is not resident in RAM but backed by a memory mapped file on disk. The process of resolving the hard pagefault requires reading in the memory from disk while the process is interrupted and blocked from execution.


NOTE: some processes were hit by hard pagefaults. If these were programs producing audio, they are likely to interrupt the audio stream resulting in dropouts, clicks and pops. Check the Processes tab to see which programs were hit.


Process with highest pagefault count: fl64.exe


Total number of hard pagefaults 1624
Hard pagefault count of hardest hit process: 1213
Highest hard pagefault resolution time (µs): 35713,298575
Total time spent in hard pagefaults (%): 0,054097
Number of processes hit: 14




_________________________________________________________________________________________________________
PER CPU DATA
_________________________________________________________________________________________________________
CPU 0 Interrupt cycle time (s): 1,842627
CPU 0 ISR highest execution time (µs): 36,172780
CPU 0 ISR total execution time (s): 0,073960
CPU 0 ISR count: 29992
CPU 0 DPC highest execution time (µs): 378,401031
CPU 0 DPC total execution time (s): 1,376670
CPU 0 DPC count: 139319
_________________________________________________________________________________________________________
CPU 1 Interrupt cycle time (s): 0,326987
CPU 1 ISR highest execution time (µs): 10,124886
CPU 1 ISR total execution time (s): 0,000073
CPU 1 ISR count: 31
CPU 1 DPC highest execution time (µs): 201,406487
CPU 1 DPC total execution time (s): 0,007837
CPU 1 DPC count: 1034
_________________________________________________________________________________________________________
CPU 2 Interrupt cycle time (s): 0,326431
CPU 2 ISR highest execution time (µs): 0,0
CPU 2 ISR total execution time (s): 0,0
CPU 2 ISR count: 0
CPU 2 DPC highest execution time (µs): 449,739921
CPU 2 DPC total execution time (s): 0,014055
CPU 2 DPC count: 1865
_________________________________________________________________________________________________________
CPU 3 Interrupt cycle time (s): 0,309961
CPU 3 ISR highest execution time (µs): 0,0
CPU 3 ISR total execution time (s): 0,0
CPU 3 ISR count: 0
CPU 3 DPC highest execution time (µs): 104,024856
CPU 3 DPC total execution time (s): 0,001990
CPU 3 DPC count: 418
_________________________________________________________________________________________________________
CPU 4 Interrupt cycle time (s): 0,297546
CPU 4 ISR highest execution time (µs): 0,0
CPU 4 ISR total execution time (s): 0,0
CPU 4 ISR count: 0
CPU 4 DPC highest execution time (µs): 165,215520
CPU 4 DPC total execution time (s): 0,009650
CPU 4 DPC count: 1584
_________________________________________________________________________________________________________
CPU 5 Interrupt cycle time (s): 0,320322
CPU 5 ISR highest execution time (µs): 0,0
CPU 5 ISR total execution time (s): 0,0
CPU 5 ISR count: 0
CPU 5 DPC highest execution time (µs): 191,977266
CPU 5 DPC total execution time (s): 0,009543
CPU 5 DPC count: 1147
_________________________________________________________________________________________________________
CPU 6 Interrupt cycle time (s): 0,358728
CPU 6 ISR highest execution time (µs): 0,0
CPU 6 ISR total execution time (s): 0,0
CPU 6 ISR count: 0
CPU 6 DPC highest execution time (µs): 85,830555
CPU 6 DPC total execution time (s): 0,005503
CPU 6 DPC count: 877
_________________________________________________________________________________________________________
CPU 7 Interrupt cycle time (s): 0,476950
CPU 7 ISR highest execution time (µs): 0,0
CPU 7 ISR total execution time (s): 0,0
CPU 7 ISR count: 0
CPU 7 DPC highest execution time (µs): 110,287966
CPU 7 DPC total execution time (s): 0,025689
CPU 7 DPC count: 2358
_________________________________________________________________________________________________________
CPU 8 Interrupt cycle time (s): 0,366793
CPU 8 ISR highest execution time (µs): 0,0
CPU 8 ISR total execution time (s): 0,0
CPU 8 ISR count: 0
CPU 8 DPC highest execution time (µs): 94,228554
CPU 8 DPC total execution time (s): 0,021288
CPU 8 DPC count: 2232
_________________________________________________________________________________________________________
CPU 9 Interrupt cycle time (s): 0,342995
CPU 9 ISR highest execution time (µs): 0,697484
CPU 9 ISR total execution time (s): 0,000001
CPU 9 ISR count: 2
CPU 9 DPC highest execution time (µs): 89,620794
CPU 9 DPC total execution time (s): 0,014442
CPU 9 DPC count: 2198
_________________________________________________________________________________________________________
CPU 10 Interrupt cycle time (s): 0,332697
CPU 10 ISR highest execution time (µs): 0,0
CPU 10 ISR total execution time (s): 0,0
CPU 10 ISR count: 0
CPU 10 DPC highest execution time (µs): 101,146105
CPU 10 DPC total execution time (s): 0,020974
CPU 10 DPC count: 2880
_________________________________________________________________________________________________________
CPU 11 Interrupt cycle time (s): 0,344615
CPU 11 ISR highest execution time (µs): 0,0
CPU 11 ISR total execution time (s): 0,0
CPU 11 ISR count: 0
CPU 11 DPC highest execution time (µs): 105,902092
CPU 11 DPC total execution time (s): 0,014874
CPU 11 DPC count: 827
_________________________________________________________________________________________________________

I found this has to do with RAM and pagefile settings, so i tried different pagefile settings - fixed amount, system mangaged sized as well as removing page file completely. But i am still getting alot of pagefaults. I also tried running Windows Memory Diagnostic, and it found no issues with my RAM.

Can someone confirm for me that pagefaults can cause realtime processing issues?
 
Back
Top