2.5 W/atom (multi-core Multi-cpu) Support

Previous forum post here.

I have started using Renoise on-the-go with my netbook, and It-Alien mentioned in that thread that there might be something to do with re-evaluating Atom’s capabilities.

I’d certainly be willing to put Renoise through its paces (help test and evaluate performance). If it can be shown that the Atom CPU can work well with 2 realtime audio threads I would certainly use it. :D

At the moment the 2.5 beta (currently b4) says HyperThreading is disabled in the log.

Has this been given any more consideration since July?

Hyperthreading has been disabled on purpose because Hyperthreading does not supply any benefit regarding realtime audio applications. This regards Renoise as well.

The reason is because the replay system which is used to divide the threads originally works on applications that usually use only one thread but when more execution code is demanded than the first thread can deliver, the other thread kicks in.

Renoise really tries to actively use the other virtual cpu in order to loadbalance it’s internal performance and in those cases the replay system is actually bringing the whole process out of balance. Result:performance decrement (instead of increment).
So HT is being disabled because it cannot be effectively used the way it is required for an application like Renoise.
Renoise needs a real physical second core that can process independently instead of a virtual core that is actually meant to cover the overflow from errorneous instruction buffering.

http://en.wikipedia.org/wiki/Replay_system

As VV said: enabling hyperthreading wont make audio processing faster, in contrary. Thats what our tests have showed. If I get my hands on an Atom with HyperThreading I’ll test this again…

Fair enough. The wording in the previous thread led me to believe that the Atom might be “geared differently” somehow, but thank you the explanation and your willingness to test it anyway if you come by an Atom-powered machine. :)

I have a Intel T7400 Core 2 Cpu and also experience slightly worse performance using two cores in renoise. I get less xruns on just one core. Is this also to be expected, although I guess my cpu really has two physical cores?

Johan: it depends on the song, but having worse performances when using multiple core is possible. A silly example: since Renoise divides the workload on a per-track basis, if your song has one track only, you will not benefit of multicore; on the contrary, the multicore managing will produce an extra amount of load, thus giving worse performances.

also, it may depend on the usage of a plugin which behaves badly on multicore, or even totally unrelated issues. Generally speaking, anyway, multicore behaves good in Renoise

Thanks It-Alien (also, I love your demo-songs!)

Would it be possible to define a song or setup that would definitely benefit from multiple cores? I’d like to try it to confirm…

How about VSTi:s, if I use two instances of a VSTi, one in each track, will the load be divided over the two cores?

create a silly benchmark: a song with lots of concurrently playing tracks and no sendtracks (all the tracks which are sent to a sendtrack are computed together in one core, so you will not benefit from them), and try with and without multicore.

I’m testing with one of the Demo songs - Jong Belegen Vivace. There are two sendtracks but I disabled the related send devices. Continuously looping two patterns with a lot of action. Monitoring the cores via top and KDE System Guard (right, I’m on Linux/KDE).

I see no noticable difference when switching between one ↔ two cores. The load is fairly well balanced over both cores at all times. Could it be that the kernel manages this on it’s own regardless of the cpu-setting in Renoise?

I assume Menu Options->Multi Core takes effect directly without need to restart Renoise or the currently playing patterns?

that demosong is fairly lightweight, at least on my PC (quad core), so it may be that the difference is not noticeable for this reason.

also, don’t trust the Renoise CPU load indicator too much, better use the task manager, which however I think you are already doing because you describe how load balancing is fairly distributed.

anyway, a performance gain of 100% (50% usage becomes 25%) when using 2 cores is unrealistic; a 50% gain may be possible so, if your song peaks at 20%, the best you could achieve would be 15%

to answer to the last question: yes, the multicore mechanism is immediately activated

It uses about 20% on each core on my core 2 duo and I see no change at all when toggling 1/2 cores in Renoise. But after adding lots of effects and upped the cpu to > 60% on each core, I get better performance with 2 cores than 1. Thank you.

Come to think of it, the situation where I get more xruns with 2 cores than 1 has always involved discoDSP’s Discovery. The Linux version seems to have a bug which I recently reported where Discovery constantly eats almost all available cpu on the core where it’s running. Enabling two cores in Renoise makes it switch core every 20-60 seconds and maybe that context switch is causing xruns.

The strange(?) thing is that adding two instances of Discovery vsti, Renoise doesn’t seem to put one instance on each core, but both of them still on the same core and switching pseudo-randomly a few times per minute.

Look at this:
839 renoise_2xDiscovery_2xCores.jpg

  • The left columns is core 0 system and user cpu, the right column same thing for core 1.
  • The red line indicates where two instances of Discovery synth are loaded.
  • Time between vertical lines = 1 minute.
  • Renoise has two cores enabled.
  • Both vsti instances seem to be on the same core all the time.
  • System+user equals about 100% on the active core.
  • The load is switched between cores at irregular intervals.

Please reconsider the ATOM processor to support hyperthreading. I have a Fujitsu Lifebook U820 (it’s a tiny little baby) and it apparently has dual core because windows is definitely showing two instances of 1.6GHZ Atom Processors and It’s kind of frustrating being limited to 1.6GHZ for all tracks. As well, it’s also kind of frustrating to use vista, but as I have no way of updating my OS (I’m in the Navy currently floating out in the middle of an ocean and we can’t download anything for personal use) I was also wondering if anyone has some optimization tips…

Sitting idle, my computer has a 500MB RAM load. This is ****ing unacceptable. This is seriously no start up programs, background tray icon programs, no icons, no visual effects, no wallpaper, no system sounds, etc. Just plain boot and sit. And it goes from 700MB at first and just slowly drops off RAM down to about 525MB. WTF. I heard bad things about Vista (this is my first computer both with multicore and vista) but this is just effin’ retarded. Where’s all my ram going?

Is there some list that can tell me all the things that are safe to turn off service-wise that will still keep my audio going strong and provide enough graphic horsepower to run ReNoise decently (and a few other apps like ProTrkkr and SunVox)? I’m so frustrated with Vista I just want to shoot my co-workers and they have nothing to do with my problem at all! :P

Thanks for any help!

P.S. Other than running Vista, the U820 is quite a nice little computer and if I can get past these OS issues, a very good option for running renoise on the go in a small package…it’s only 6x8x1 inches. I don’t know metric translation of that off hand…but trust me, it’s small.

Task manager shows two instances because the Atom is hyperthreaded. It’s not dualcore. There’s a difference.

Also, the U820 apparently has a Intel Atom Z530, which is a bit slower than the typical Atom chips you find in most netbooks (N270/N280, and now the N450/N470). Bottom line is, it’s a slow computer, and Vista isn’t helping whatsoever. If I were you, I’d install XP or a lightweight Linux distro on it ASAP.

As for Vista services, the Black Viper site can help you figure out what to turn off safely. It might help until you can get a lighter OS installed.

My understanding was that the Atom uses the same Hyper Threading technology as the i7 CPU. Intel have reported that this is in no way related to what was called Hyper Threading on the old P4 processors but for some strange reason they have reused the same name as a technology that caused many people more problems that helping.

Reports on having it enabled/disabled that I have read (a fair while ago, just after the i7 came out) is that the new version of HT does improve performance in DAW programs such as Cubase on the i7 so it may be worth investigating at least.

This should be interesting for me I want to buy a new Laptop.
The i5 is a lot cheaper as the i7. one difference is the i5 has no hyperthreading.
which is the way to go for Renoise?

Atom CPU has a simple in order execution core. It’s why it has two threads per one physical core. It allows fill up pipelines better - when one threads stalls (due for cache miss for example) there are chances the second will be able execute.
It’s best to see spawning multiple instance of tasks like lame encoder. Each one may run slower, but whole task will finish quicker.

It’s worth of consideration imho. From my experience running multiple instances of given program could bring up to 1.5x better performance.

Seen this reported lots of time. Looking at the Intel site and i5 does have HT. Trying to look into it deeper and it would seem the dual i5 do have HT while the quad i5 CPUs do not, whereas all i7 CPUs do have it.