Not enough CPU when plenty of CPU

CorOS Version: 2.0.0

Describe your issue:
Sometimes, when building a preset, the QC will show that devices cannot be added because of CPU limitations but I can still add them to the grid. They will be greyed out in the lists, but pressing them still adds them. I was able to get this to work when trying to add a cab to a preset that had about 38% usage.

I cannot get this to reproduce regularly, so I don’t know the exact issue or cause of it. I just had it happen and tried to reproduce it again but now it seems to work correctly. I had it happen several times.

The DSP is split over all cores, so CPU usage indicated reflects total usage etc., and can be deceiving. Please make sure the signal is distributed over all cores for the best efficiency.

That’s not the issue. The issue is that the menus had greyed out devices, indicating that I was unable to add them to the grid, but I tapped on an item and was still able to add it.

I am unable to duplicate the issue therefore I would recommend emailing support@neuraldsp.com so they can log your issue and have you send diagnostic logs etc. Thanks!

1 Like

I get similar issues - first noticed this with trying to update the Bad Horse wah and I saw it extended into adding a wah to Neural factory presets. Going to try to send an email to support at this point. It’s extending into other areas, including getting notifications for not enough CPU for global EQ, which is strange since I don’t have it activated at all either. Something’s up - still getting these errors when everything is split between cores as MP_MOD mentioned.

I wonder if this is because the DSP for the global EQ is pre-allocated, as soon as the QC is turned on, whether or not global EQ is bypassed. I believe this is the way global EQ works on some other modelers. What makes it confusing is that it also bypasses/unloads automatically in presets that are already utilizing more/max DSP on the first two paths. This may be a “feature” that they were compelled to add, due to Neural having added the global EQ feature after the fact rather than in their initial design.

As a result of adding this feature later in the development cycle, they may have needed a way to accommodate user created presets that were already maxed out on DSP, created before global EQ was introduced. Just speculating. Anyway, global EQ would clearly benefit from optimization, such that allocation issues came up less frequently.

It could be in the current CorOS 2.0, new presets need to be created within the new DSP limits imposed on the first two paths that include the now pre-allocated global EQ. Old presets that already exceeded that DSP limit (no global EQ), are accommodated as an “exception” by the QC’s automatic bypassing/unloading of the global EQ. If that is how things are currently operating. You might find that a preset that you created prior to global EQ, now consumes too much DSP to be created from scratch under the latest update. Haven’t tested this yet though. So again, pure speculation.

Yeah that makes sense. I have emailed support about the issue. Hopefully they can fix this in an upcoming patch unless it becomes more complicated and they end up revising how they utilize the processing cores

Hi I also have the same issue with this preset: https://neuraldsp.com/cloud/p/40494d8e-8419-4a49-96c1-c9f9fdb53a3f where the Global EQ is disabled and here is my CPU monitor:

@ frankvhalen Would you please update this post when you’ll will get answers from the support?

I got some answers but so far they’ve been unsatisfactory. This was their reply after sending them a few videos of my particular issue:

The CPU usage meter can be misleading depending on some circumstances.

For example, it might show a low CPU usage when you load devices only on row 1, but despite that, you won’t be able to add more devices to that row if the usage of those cores is full. This is why you can instantiate the wah pedal on other presets with a higher CPU consumption, it depends on the rows CPU consumption.

Remember that Row’s 1 and 2 can ‘share’ processing lanes, and as you demonstrate in your videos, the amps instances on Row 1 & 2, and also the delay, already take processing power. This is the reason why all the devices you want to add are greyed out.

On the other hand, the preset you use (John’s amp 2) has been added alongside with CorOs 2.0.0 release, and contains new captures and devices that weren’t available previously. Also remember that bypassing blocks won’t decrease the CPU consumption.

We remain available if you have questions.

Other users have commented on the global EQ & the system architecture set up for it (suggesting to default its usage to cores 3 & 4 instead of 1 & 2) but it’s been pretty frustrating seeing some presets give you this warning out of nowhere, especially with the CPU meter only reading that amount.

I asked for a detailed breakdown of the John’s Amp 2 preset to specifically see why it’s causing issues and I can’t add any more blocks, despite the CPU monitor reading only 58%. I have a theory that the software/hardware integration, coding, and architecture is terribly inefficient.

I love the QC and Neural DSP but man this update has brought out something which is a huge annoyance and concern - having to be technical and play “shift the blocks around and guess the row CPU limitations” which is not very user-friendly at all. Note: prior to CorOS 2.0 update, I rarely had any CPU issues. It could be the global EQ is hogging up some resources and the new CA JP amp model is such a resource hog it’s bringing out the row DSP architecture limitations to light.

I’m curious, did you check the load of the individual cores in your presets?

Settings → device options → diagnostics → DSP Diagnostics

Maybe we could then understand better why some preset layouts work better than others.

I also wanted to do some experimenting in the next days, since I have at least one preset that has the same problems.

2 Likes

Yup. I sent them a few videos:

Row 3’s core is only using 20%. My reply to theirs is the following (waiting to hear back, would love to get more understanding):

I can understand that but why are they still greyed out on the 4th row of the Johns amp 2 preset? Something seems very strange on why the CPU meter only reads 58% yet I can’t add any devices to any of the rows in this preset. I completely understand the concept of rows 1 & 2 sharing processing (same with 3 & 4) but if all the rows are taking up processing power shouldn’t this preset read 80% +? What’s the point of having a CPU meter if it’s not accurate? How are we as users supposed to gauge the limits of the unit if instances like this occur and make things difficult to use or set up? Why is the 3rd core DSP in this case only using 20%? Is overloading core 1 preventing doing anything else and adding blocks in this preset?

Note that similar issues are happening in other presets. The legacy John’s Amp preset is facing similar issues and it just uses captures. I understand distributing process-intensive blocks across different rows to maximize multi-core efficiency however from the look of it John’s Amp 2 looks set up decently well from the start.

It’s hard to know how to move forward with modifying presets and making new ones if the rules aren’t clear or if there’s a bug. This may or may not be a bug (I personally think it is but have no idea what the system architecture is doing behind the scenes) but you can’t tell me something isn’t wrong when the CPU meter reads 58% and I can’t add any more processing to a preset like this. With your advice, in theory I should be able to add new blocks to row 4, which only has a cab while row 3 is the heavier processing one with FX and an amp instance yet I can’t add anything else to row 4.

Can I have a detailed breakdown as to WHY I can’t add any blocks to row 4 and what the limitations of this preset are? Can you reproduce it on your end? Is there a fix by re-arranging the block or even the entire preset? If so, can you walk through what would make that work vs the factory preset? I’m trying to get more understanding on something that initially made sense but with this bug has completely gone out the window!

After reading some more in the forum it seems like this may not be a bug but rather a system limitation.

3 Likes

“After reading some more in the forum it seems like this may not be a bug but rather a system limitation.”

That is correct, the DSP loads needs to be distributed across all four cores. The CPU meter indicates total usage etc., as of current this wouldn’t be a bug. @dvon88’s issue is likely a genuine bug where being able to add blocks that can’t be enabled due to DSP usage.

1 Like

Interesting. I guess to really understand (and be able to optimize the presets) we would need a developer then. Curious about their reply.

Here is the settings → device options → diagnostics → DSP Diagnostics

Yeah that’s what I think too. I mean, realistically I rarely push the boundaries of the unit with my presets so this is being a bit picky but it brings up some concerns. I’m very concerned that future updates to models (like what was done with the CAJ2C) will be resource-intensive and impose further restrictions. Another major concern is seeing a dangerous limitation for building what I call an “average” preset: a 3 (or 4) channel amp model, some reverb, delay, cab block or two, couple of pedals before the amp, and a wah.

Like I mentioned - some presets & amp models do this without breaking a sweat; others, like Johns Amp 2, are hitting the treadmill at full blast apparently.

Same issue here. CPU usage reporting 24%. Got a message saying: Global EQ was automatically disabled, as the CPU load for this preset is too high. Because I am using only one row I guess that core is maximised at 25%. But why cant the global eq be flexible and go to whichever core is available?

1 Like

The GEQ feature is logically controlled via the first 2 DSP cores (e.g. or rows 1&2 etc.)

Same issue here. It happened after updating the Bad Horsie wah.

What?? Is this for real? I’m reading through these forums trying to understand why I can’t add devices to a preset. The manual doesn’t say anything I can find about building presets with rows corresponding to processing cores, or having to calculate cpu usage to know what you’re able to make. This is the least user-friendly thing I can imagine. The manual says you can have up to 32 devices in a preset and to lay them out logically the way you would a real guitar rig --but don’t worry, it’s easy to drag and drop later if you want to rearrange! Never that you have to do some kind of math to figure out whether you can even attempt to build the rig you want to hear, especially when there doesn’t seem to be any clear information on what devices consume what type\amount of processing power. I thought the whole strength of this platform was captures, but are they too intense to actually use? I own a bunch of devices with multi cores these days–computers, phones, etc etc. As a consumer\user I’ve never had to give any thought to usability or functionality of individual cores in a device. I thought the whole point was that it was a smart system–that a multi core processor was programmed to allocate its own foreground and background resources and make things happen dynamically by applying processing power to tasks \apps where needed. I’m not a big tech computer person. But i thought it was supposed to do this on its own.

What I’m reading\experiencing about the quad cortex right now makes it feel like instead of a powerful multi-core processor that’s got more than enough ability to handle intense tasks and sounds, the quad cortex seems to be able to simultaneously run 4 crappy single core processors at once. What’s the point of that? It’s like having 4 really old computers open at the same time with each one running a few plugins and trying to get your DAW to make them all perform together. It’s not intuitive, clear, easy, powerful, or inspiring. It seems obtuse and backwards, tbh.

2 Likes

What you are replying to is factual regarding GEQ. Regardless, if you run out of DSP and unable to add more blocks, try spreading your signal over all cores by utilizing rows 3/4 etc. Many other modelers incorporate the same design. Otherwise for the most part, you shouldn’t have any issues with your signal chain as many (including myself) run multiple captures plus FX blocks without issue due to the DSP available.

1 Like