CPU load: Single-Core vs. Multi-Core performance (+- Mouse)

Discuss music production with Ableton Live.
Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

CPU load: Single-Core vs. Multi-Core performance (+- Mouse)

Post by Timur » Mon Dec 17, 2007 2:30 pm

Playing 24 concurent samples/tracks (at once) in a one-bar loop in Live 7.01, I noticed the following CPU loads:

Test done via Windows' Task-Manager, not the useless CPU meter of Live, Task-Manager window partly concealed the Live GUI, but not the meters. A64 X2 2 x 2.83 gHz under Windows XP, Audiophile 24/96 at 512 samples, USB mouserate at 250 Hz (Windows default 125 Hz).


Multicore Support OFF - Session View - Moving the mouse-pointer around the GUI

Max: 27%
Min: 05%
Average: 11-13%

Multicore Support OFF - Session View - No mouse movement

Max: 19%
Min: 03%
Average: 10-11%

Multicore Support OFF - running in background (no GUI drawing)

Max: 05%
Min: 02%
Average: 03%


Multicore Support ON - Session View - Moving the mouse-pointer around the GUI

Max: 30%
Min: 08%
Average: 15-16%

Multicore Support ON - Session View - No mouse movement

Max: 23%
Min: 08%
Average: 14-15%

Multicore Support ON - running in background (no GUI drawing)

Max: 13%
Min: 03%
Average: 6-7%


Conclusion: Overhead for Multicore Support seems to have some impact on CPU load. For small projects that can run on a single core without drop-outs it seems to be better/more efficient to turn Multicore Support off. Your audio-card drivers will likely still make use of the second core on kernel-level. Moving around the mouse over GUI elements will also impact CPU load, though less considerably (mostly short peaks). I will do another test with a standard USB mouserate of 125 Hz.
Last edited by Timur on Mon Dec 17, 2007 3:02 pm, edited 1 time in total.

nebulae
Posts: 15716
Joined: Tue Sep 07, 2004 12:16 am
Location: New Orleans
Contact:

Post by nebulae » Mon Dec 17, 2007 2:49 pm

Two points to make:

1. "Quite some impact" may be a misnomer. A difference of a few % points is not enough of a big deal for me to ever turn off the Multiprocessor support in Live's preferences. Mainly because I never have a small project.

2. Do you ever make any fucking music, professor? Stop testing, start producing, motherfucker!







*HUGS*

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Mon Dec 17, 2007 3:01 pm

nebulae wrote:Two points to make:

1. "Quite some impact" may be a misnomer. A difference of a few % points is not enough of a big deal for me to ever turn off the Multiprocessor support in Live's preferences. Mainly because I never have a small project.
Yes, you are correct. Considering though that we are talking about a few % on a 2.83 GHz A64 (plus considerably overclocked memory) some people might wonder about impact on their slower CPUs. I will change that sentence anyway.
2. Do you ever make any fucking music, professor? Stop testing, start producing, motherfucker!
Not yet my friend, until now I was just a Singer (with some guitar/keys) in some rock-bands, used to record on 4 track or go to a cheap studio! Still digging into the tech, taking vocal-lessons to get my voice going again, learning to play bass, taking drum-lessons soon to get a better feeling for groove-building and collecting ideas. Remember the link I sent you asking about the sound of my first bass-recordings? ;) Go and listen, it shows that I'm making progress...

I'm doing all this testing to make sure Ableton gets rid of performance and workflow impeding bugs before I get serious with recording. 8)
Last edited by Timur on Mon Dec 17, 2007 3:03 pm, edited 1 time in total.

nebulae
Posts: 15716
Joined: Tue Sep 07, 2004 12:16 am
Location: New Orleans
Contact:

Post by nebulae » Mon Dec 17, 2007 3:03 pm

hehe, just giving you a hard time - it's actually great to know all these little tidbits of trivia. However, be careful - I used to be like you - had to know all these little things, and I ended up spending a lot more time on the experiments and a lot less time making music...seems my priorities were out of sync with my goals :)

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Mon Dec 17, 2007 3:15 pm

Thanks for giving me a hard time then. :lol:

Coming back to the "few percent" argument: What may seem like a few percent in fact is a 50% to 100% increase in CPU load with this test-scenario! Quite considerable I guess, but I don't think/hope this would translate to Sets with overal higher load.

Andreas Zapf
Posts: 290
Joined: Mon Sep 08, 2003 10:01 am
Location: Ableton Headquarter
Contact:

Post by Andreas Zapf » Mon Dec 17, 2007 4:00 pm

Hi Timur,

your observation is correct. You're seeing two issues:

1. Multicore support adds a certain cpu load overhead per audio track input. You can get rid of it by setting "Audio From" to "No input" in all tracks or disable the audio inputs in the preferences. This is due to technical reasons and will probably be improved in the future.

2. Multicore support adds a certain cpu load overhead per track output, mainly because of additional buffering needed for synchronization. This overhead is comparable to the load produced by the playback of a single sample. If your set contains nothing but tracks playing plain samples switching multicore support off will actually make the cpu load drop a bit. However, when you add only a few effects multicore support will be benefical. For example, in your 24-track scenario, when I disable all audio input and add just a reverb to one track and and an eq3 to another one, (leaving 22 tracks plain and dry) cpu load is lower with multicore support on.

When multicore support was designed we thought that you usually wouldn't use only plain samples in Live and didn't optimize for that case.

Regards - and keep testing ;)
Andreas

nebulae
Posts: 15716
Joined: Tue Sep 07, 2004 12:16 am
Location: New Orleans
Contact:

Post by nebulae » Mon Dec 17, 2007 4:03 pm

Andreas Zapf wrote:and keep testing ;)
Andreas
Oh geez, throw the man a bone or something...

I say the opposite...stop testing immediately and make more music!

Landser
Posts: 238
Joined: Sat Oct 28, 2006 8:21 pm

Post by Landser » Mon Dec 17, 2007 5:06 pm

I noticed some time ago, when i open certain plugin GUIs, i.e. from Waves, Live's internal display of the CPU load goes up by ~12% (Q6600), even if nothing is played back.

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Mon Dec 17, 2007 11:29 pm

Live's internal CPU meter cannot be trusted! ;) But yes, some Plugin GUI create CPU load even when "unused". I noticed with Battery's GUI that it creates a load of 2-3% with nothing happening at all.

Anyway, here are some more numbers that speak in favour of Multicore support. This time I played 128 concurrent samples (at once) through a Drum Rack aka 128 instances of Simpler.

A single core with Multi-Core Support OFF is not able to play two Drum Rack tracks with 128 samples without obvious drop-outs, both cores play those two tracks at an average of 59-61% which is double as much as playing one track (see numbers for that below).

What bugs me with this test is the fact that Live utilizes only one (1) CPU when loading 62 samples concurrently onto Drum Racks, which makes Live not responding for 30 seconds while one core remains completely idle! This should be changed to that Live utilizes all available cores to load samples into a Rack/Set. Loading those samples directly into Audio tracks as clips only takes about 3 seconds! 8O


Multi-Core Support ON - one Drum Rack Track - with mouse-movement

Max: 54% (depending on areas of mouse-movement)
Min: 27%
Ave: 32% (-46%, depending on areas of mouse-movement)

Most of the higher peak CPU load can be tracked down to moving the mouse over the clip view where the mouse-pointer changes. Average can climb well over 40% if the mouse is only moved in that area. Maybe this part could be optimized by Ableton?! The help-window seems to have only minor impact.

Multi-Core Support ON - one Drum Rack Track - no mouse-movement

Max: 36%
Min: 26%
Ave: 31%

Multi-Core Support ON - one Drum Rack Track - running in background = no GUI drawing

Max: 30%
Min: 25%
Ave: 29-30%

Only a minor drop in CPU load by sending Live's window to the background and thus keeping it from redrawing its GUI elements and meters.


Multi-Core Support OFF - one Drum Rack Track - with mouse-movement

Max: 56%
Min: 27%
Ave: 32% (-46%, depending on areas of mouse-movement)

Most of the higher peak CPU load can be tracked down to moving the mouse over the clip view where the mouse-pointer changes. Average can climb well over 40% if the mouse is only moved in that area. Maybe this part could be optimized by Ableton?! The help-window seems to have only minor impact.

Multi-Core Support OFF - one Drum Rack Track - no mouse-movement

Max: 36%
Min: 27%
Ave: 30-31%

Multi-Core Support OFF - one Drum Rack Track - running in background = no GUI drawing

Max: 33%
Min: 25%
Ave: 29-30%


Conclusion

When Sets become more complex and thus use more CPU power the benefits of Multi-Core Support become prevalent and the overhead becomes negligible. Moving the mouse-pointer over the Clip view area with its many click&pull buttons that change the mouse-pointer symbol can lead to a significant increase in CPU load. These are mostly short peaks, but on a busy Live set you may encounter problems with these, so try to avoid them if you don't need them.

bensuthers
Posts: 760
Joined: Wed Oct 01, 2003 4:51 am

Post by bensuthers » Mon Dec 17, 2007 11:37 pm

>
> 2. Do you ever make any fucking music, professor? Stop testing, start producing,
> motherfucker!

someone had to say it.

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Mon Dec 17, 2007 11:55 pm

bensuthers wrote:>
> 2. Do you ever make any fucking music, professor? Stop testing, start producing,
> motherfucker!

someone had to say it.
For you nitpicking troublemakers who are hijacking my threads, this is from 2002 when I was still learning how to make music at all. It's from the very beginning of that band so both sound (including vocals) and songs became better in time (not that sure about the lyrics though), but now it's dead:

http://www.myspace.com/framers

Time to build something new, I'm working towards hitting high C again. 8)

nebulae
Posts: 15716
Joined: Tue Sep 07, 2004 12:16 am
Location: New Orleans
Contact:

Post by nebulae » Tue Dec 18, 2007 12:10 am

damn that voice is sexy!

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Tue Dec 18, 2007 12:10 am

Huh? 8O

nebulae
Posts: 15716
Joined: Tue Sep 07, 2004 12:16 am
Location: New Orleans
Contact:

Post by nebulae » Tue Dec 18, 2007 12:12 am

what I meant to say is that it sounds like you're only using one voice. While that's efficient in simple songs, with complex songs, multi-voice will probably be better utilized. Go run a test and report back.

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Tue Dec 18, 2007 12:16 am

nebulae wrote:what I meant to say is that it sounds like you're only using one voice. While that's efficient in simple songs, with complex songs, multi-voice will probably be better utilized. Go run a test and report back.
Nah, there is voice doubling at several positions and it put quite a strain on my vocal system. Yet the biggest problem was timing fluctations on my internal clock. Back in those days I powered my system mainly with pasta and water, and while I was at it I also supplied the inhouse-engineers with some extra juice. They were so grateful as to make the whole session a bit cheaper for us. :lol: Now stop hijacking my precious performance numbers thread. :P

Well, the main outcome of this thread is that Multi-Core Support is working quite well but some other things in Live need to be optimized. :idea:

Post Reply