Jump to content

Mysterious GPU spikes causing constant dropouts.


Misha

Recommended Posts

Hi Folks. 

Got this issue when working on a Cakewak project. Getting these: "A dropout has stopped the audio engine (1)"

Asio Interface, buffers set to 4096 (!!!) for testing purposes, WiFi Off.  Project about 10 midi tracks + 10 audio tracks.   1 instance of Kontakt, 1 instance of Halion Sonic. Not VST FX heavy.

Plenty of CPU / Memory / Disk resources. It happens when there is a sudden spike in GPU.   See attached.  Also seems dedicated GPU RAM is not  affected by the spike.  Does anybody know what to do to stop these dropouts in Cakewalk caused by GPU behavior? 

Thank you!

GPU.jpg

Link to comment
Share on other sites

Hi  - please download and run a freeware app called LatencyMon, for a couple minutes, without Cakewalk running, so that it can analyze your system's ability to handle streaming audio, which is what DAW software does.

Here is the link:

https://www.resplendence.com/main

Once you have it running, again without Cakewalk running, click on the 'Play' triangle up in the top left of the window, to tell LatencyMon to start analysis of your system.  You can stop it after a couple minutes, and it will give you the results - please post back here with what it tells you in its findings. 

Thanks, :) 

Bob Bone

  • Like 1
Link to comment
Share on other sites

Bob,

Thank you.

I ran Latencymon for 30 mins. It does not show any significant issues. What I noticed is that Kontakt, at the time of "Engine stop" shows a spike in CPU (100%) but the Cakewalk meter and Task Manager performance tab does not show spikes in CPU...

 

Here is latencymon report:

_________________________________________________________________________________________________________
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:32:00  (h:mm:ss) on all processors.


_________________________________________________________________________________________________________
SYSTEM INFORMATION
_________________________________________________________________________________________________________
Computer name:                                        ---
OS version:                                           Windows 10 , 10.0, build: 18363 (x64)
Hardware:                                             20MF000DUS, LENOVO
CPU:                                                  GenuineIntel Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Logical processors:                                   12
Processor groups:                                     1
RAM:                                                  32356 MB total


_________________________________________________________________________________________________________
CPU SPEED
_________________________________________________________________________________________________________
Reported CPU speed:                                   2592 MHz

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):   636.10
Average measured interrupt to process latency (µs):   5.342145

Highest measured interrupt to DPC latency (µs):       633.40
Average measured interrupt to DPC latency (µs):       2.681330


_________________________________________________________________________________________________________
 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):              87.995370
Driver with highest ISR routine execution time:       ACPI.sys - ACPI Driver for NT, Microsoft Corporation

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

Total time spent in ISRs (%)                          0.001858

ISR count (execution time <250 µs):                   872160
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):              687.162037
Driver with highest DPC routine execution time:       ACPI.sys - ACPI Driver for NT, Microsoft Corporation

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

Total time spent in DPCs (%)                          0.128066

DPC count (execution time <250 µs):                   5663638
DPC count (execution time 250-500 µs):                0
DPC count (execution time 500-999 µs):                269
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:                 svchost.exe

Total number of hard pagefaults                       219
Hard pagefault count of hardest hit process:          118
Number of processes hit:                              12


_________________________________________________________________________________________________________
 PER CPU DATA
_________________________________________________________________________________________________________
CPU 0 Interrupt cycle time (s):                       54.068381
CPU 0 ISR highest execution time (µs):                87.995370
CPU 0 ISR total execution time (s):                   0.428118
CPU 0 ISR count:                                      872097
CPU 0 DPC highest execution time (µs):                687.162037
CPU 0 DPC total execution time (s):                   29.322767
CPU 0 DPC count:                                      5620158
_________________________________________________________________________________________________________
CPU 1 Interrupt cycle time (s):                       7.833893
CPU 1 ISR highest execution time (µs):                36.989969
CPU 1 ISR total execution time (s):                   0.000075
CPU 1 ISR count:                                      63
CPU 1 DPC highest execution time (µs):                193.535494
CPU 1 DPC total execution time (s):                   0.029598
CPU 1 DPC count:                                      1569
_________________________________________________________________________________________________________
CPU 2 Interrupt cycle time (s):                       8.825202
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):                67.387346
CPU 2 DPC total execution time (s):                   0.030852
CPU 2 DPC count:                                      10769
_________________________________________________________________________________________________________
CPU 3 Interrupt cycle time (s):                       7.832836
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):                70.962963
CPU 3 DPC total execution time (s):                   0.001932
CPU 3 DPC count:                                      463
_________________________________________________________________________________________________________
CPU 4 Interrupt cycle time (s):                       9.571839
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):                52.330247
CPU 4 DPC total execution time (s):                   0.015153
CPU 4 DPC count:                                      4795
_________________________________________________________________________________________________________
CPU 5 Interrupt cycle time (s):                       10.109649
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):                32.961420
CPU 5 DPC total execution time (s):                   0.002772
CPU 5 DPC count:                                      788
_________________________________________________________________________________________________________
CPU 6 Interrupt cycle time (s):                       10.509286
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):                75.441358
CPU 6 DPC total execution time (s):                   0.032230
CPU 6 DPC count:                                      9722
_________________________________________________________________________________________________________
CPU 7 Interrupt cycle time (s):                       7.848897
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):                84.535494
CPU 7 DPC total execution time (s):                   0.007270
CPU 7 DPC count:                                      1639
_________________________________________________________________________________________________________
CPU 8 Interrupt cycle time (s):                       10.308604
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):                89.952160
CPU 8 DPC total execution time (s):                   0.024743
CPU 8 DPC count:                                      6345
_________________________________________________________________________________________________________
CPU 9 Interrupt cycle time (s):                       7.901179
CPU 9 ISR highest execution time (µs):                0.0
CPU 9 ISR total execution time (s):                   0.0
CPU 9 ISR count:                                      0
CPU 9 DPC highest execution time (µs):                57.529321
CPU 9 DPC total execution time (s):                   0.003854
CPU 9 DPC count:                                      896
_________________________________________________________________________________________________________
CPU 10 Interrupt cycle time (s):                       9.512018
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):                67.350309
CPU 10 DPC total execution time (s):                   0.030782
CPU 10 DPC count:                                      6029
_________________________________________________________________________________________________________
CPU 11 Interrupt cycle time (s):                       7.849079
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):                93.378086
CPU 11 DPC total execution time (s):                   0.005061
CPU 11 DPC count:                                      734
_________________________________________________________________________________________________________
 

letencymonscreen.jpg

Link to comment
Share on other sites

Thats interesting. Do you see the same dropout even when not using Kontakt? It could be something interfering with Kontakt
Cakewalk doesn't directly utilize the GPU so I wouldn't expect it to be affected but if a plugin depends on it its possible that it could trigger a dropout.

Link to comment
Share on other sites

Noel, 

Thank you for trying. I deleted Kontakt "instrument" from the project, still  get "stopped  audio engine 1" error

What I noticed, that Kontakt shows CPU spikes, but there are no spikes in task mngr.  (see attached) There is only one setting I found in Kontakt that relates to "stopping sounds on CPU overload" and it is disabled.

Other things I tried:

 disabling all FX . 

making a copy of the project 

Enable/disable load balancing (multicore enabled)

Upping Asio buffer to  4096 (safe mode)

------

*Please see my config settings in attachment. Should I try to change something there?  

Thank you for your help!!!

CPUspike.jpg

config.jpg

Link to comment
Share on other sites

FWIW, if you right click the CPU graph in Task Manager, you can show Logical Processors (aka cores) rather than Overall Utilization. It's possible that you'll see a 100% spike on one of the cores even though the CPU as a whole is hardly doing anything.

Not that this helps solve your problem in any way...

Link to comment
Share on other sites

I'm not sure why the GPU spike would affect Cakewalk's engine but one thing you can try is raise the value of DropoutMsec in the settings you listed above to something like 200-300. While that seems high it may get you past the fallout from the spike. You want to try and diagnose what is causing that however, esp if nothing much is happening in Cakewalk at the time.

Link to comment
Share on other sites

John, Thank you for trying. Good guess., but cores seem to distribute things in balance, there is saturation, but no hard spikes. See attached. (That is while dropout occurred.)

Noel, Thank you! Will play with DropoutMsec settings.

If it doesn't solve it,   I will go through "updating" cycle of all hardware through Lenovo vantage, or whatever it is called now.  Windows pushed some updates on me past week, maybe that has to do something with it.  I wish there was a more detailed reporting on these dropouts in Cake :)  

I will also try a different interface and maybe even onboard Realtek chip, just to eliminate things. Will update this if I find the cause. 

cores.jpg

Link to comment
Share on other sites

1 hour ago, Misha said:

Noel, 

Thank you for trying. I deleted Kontakt "instrument" from the project, still  get "stopped  audio engine 1" error

What I noticed, that Kontakt shows CPU spikes, but there are no spikes in task mngr.  (see attached) There is only one setting I found in Kontakt that relates to "stopping sounds on CPU overload" and it is disabled.

Other things I tried:

 disabling all FX . 

making a copy of the project 

Enable/disable load balancing (multicore enabled)

Upping Asio buffer to  4096 (safe mode)

------

*Please see my config settings in attachment. Should I try to change something there?  

Thank you for your help!!!

CPUspike.jpg

config.jpg

You might try changing the ThreadSchedulingModel to 2 (do not use 3 it is experimental).

Bob Bone

 

Link to comment
Share on other sites

I think I figured it out after trying about 3 dozen things :)   Seems like it is my workflow flaw (rhymes too)

This is what I done to earn constant "Stopped Audio Engine 1" toasts:

1) Insert Instrument->Kontakt. When I was satisfied with how it played midi file  ->

2)I Inserted Audio track and set it's input to Stereo output from Kontakt, to record signal as Audio to this track. (see attached) 

3)When I recorded my "Audio" tracks from Kontakt, I deleted the initial  source "Kontakt instrument",  to cut unnecessary weight of the project.

But it seems that Each recorded Audio track (with input from Kontakt) somehow  became as instance of Kontakt.  As soon as I froze these Kontakt recorded "audio" tracks, glitches with "stopped audio engine 1"  went away and everything plays fine.

-------------------------

Little more patience with me, please.  I used a vintage thinking on this.  Lets say you have a CD that you want to copy to tape. Once you set input of tape deck to CD out,  after you done recording, the tape remains a tape, it does not become a CD just because you used a signal from CD deck to record it.

So now that I know the cause, what should be my workflow to record audio track from Kontakt, so it remains standard audio track and not what I got...?

I thank you in advance.

Misha.

 

 

 

 

tracks.jpg

Link to comment
Share on other sites

For creating an audio track from a midi track, I usually export the midi track (change the Source in the dialog box to tracks, rather than the entire mix). or I will freeze the Kontakt instance, and it will render the audio track(s) in that process.  You can always unfreeze the Kontakt instance, if additional midi data manipulation is needed.

If I send tracks/stems off to someone else for either mixing, or for populating a project in the DAW of their choice, to add guitar tracks, or vocals, or whatever, that is when I usually do the exports - sometimes as a simple stereo track, or if they want to adjust individual track levels I send each exported track.

I know there is the option now to route output to an empty audio track, to record it from the output of a Kontakt instrument, for example, I just never played around with it.

I will do some playing around with it shortly, to see what I discover in the process - might help me with additional options I never had pursued in the past.  I will post back with anything I figure out.  :)

Bob Bone

 

Link to comment
Share on other sites

Have you looked at Patch Points?

They function like buses, but are tracks - here is the documentation for those:

http://www.cakewalk.com/Documentation?product=Cakewalk&language=3&help=Mixing.13.html

Here is the 1st paragraph from the above documentation:

"A patch point is an internal routing path used to route audio from a track output, bus output, or send to an audio track input. The virtual inputs can then be input monitored or recorded. You can think of patch points as virtual patch cables."

Bob Bone

Link to comment
Share on other sites

Bob,

Speaking of workflow, the easiest in my view to capture audio from Kontakt (or other synth) is to solo Kontakt channel,  create audio track point input to Kontakt output, press record :)

It works, I just do not understand why the Audio track becomes a heavy "Synth" track.

I played with it yesterday a little and...

If I freeze this recorded Synth/Audio track and duplicate it with events, it duplicates as a normal Audio track. Go figure :)   

Link to comment
Share on other sites

1 hour ago, Misha said:

Bob,

Speaking of workflow, the easiest in my view to capture audio from Kontakt (or other synth) is to solo Kontakt channel,  create audio track point input to Kontakt output, press record :)

It works, I just do not understand why the Audio track becomes a heavy "Synth" track.

I played with it yesterday a little and...

If I freeze this recorded Synth/Audio track and duplicate it with events, it duplicates as a normal Audio track. Go figure :)   

Can you please explain what you mean by "heavy synth track"? I want to make sure I understand.

Thanks,

Bob Bone 

Link to comment
Share on other sites

OK - the icons you show changing are by design, to give you some visual information.

That 2nd icon lets you know that the audio track is assigned to pick up its input from a soft synth.  :)

I am still looking at the rest of your post so will post back after I finish that. 

Link to comment
Share on other sites

Bob,

Exactly..., that is what I thought: "That 2nd icon lets you know that the audio track is assigned to pick up its input from a soft synth.  "

But what happens, after I record that signal from "Soft Synth" and delete that initial source "Soft Synth" , it  still resides in the project as full instance on that Audio track I recorded.

How do I know this:

1) As soon as I click on that "changed icon" with little midi plug on newly recorded track, full instance of Kontakt with all previously loaded instruments in it pops up in a matter of 2 seconds. It can not do that if it was loaded from scratch or even as a "saved" program

2) If the project is saved and closed, when opening it, it loads Kontakt, even when that initial "instance" was deleted.

3) When I have a few of these "recorded audio tracks" from Kontakt output, Cakewalk becomes glitchy with Audio Engine stop 1 toast.

4) If I freeze those "audio" tracks Everything is smooth.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...