Vienna Symphonic Library Forum
Forum Statistics

185,273 users have contributed to 42,390 threads and 255,477 posts.

In the past 24 hours, we have 3 new thread(s), 23 new post(s) and 54 new user(s).

  • VEP5 Evaluating and tuning performance. (MAC)

    Hi all,

    I'm hoping we can get a thread going that helps folk get the best possible performance out of their systems that are running VEP5.

    There is a reasonable amount of info in the manual, but it still involves a great deal of stabbing in the dark when it comes to getting things running smoothly.

    It would be great to try devise a test with VEP5 running on both slaves, and locally.  Using various different instruments. Kontakt.  Play.  Vienna Instruments.  Spectrasonics Instruments. 

    There are just SO many variables. 

    Midi ports open, audio ports open, number of buffers (VEP buffers) and sound card buffers, multicore support in the different programs etc.

    So - I have a few hours free tomorrow - and will hopefully start deriving a test.  I also have a mac mini server here on trial, and would really like to be able to completely evaluate it - but without knowing if I've actually got the right settings, I don't know if the limits I'm reaching are those of the mac mini, or simply because of settings etc.

    Has anyone ever tried something like this before? 

    I'm looking for some guidance if possible - starting points etc.  I'm pretty sure I'll be able to work something out that is giving meaningful results, but its always good to bounce ideas off of different people.

    Information I'm looking for in particular.  How can one tell where the "bottle necks" of the system are - particually when evaluating a slave computer.  Is there an accurate way of telling WHAT is causing problems when they occur? 

    I'm thinking the various bottle necks might be :

    Network issues (???)
    Hard drive speed
    Ram (easy to tell - so I'm not worried about that)
    ASIO spikes (kinda related to CPU, kinda not.

    A few other questions.  The new mac mini server has hyperthreading - 8 cores show up in all the various performance measuring test programs I've tried.  However, no matter what settings I've used in VEP, I can only ever see 4 cores (every second) working.  This is some concern, and I've got no idea whats going on.  Any tips / ideas?

    Ok - thats it for now.  I'm going to go have a beer and think about the testing method - HOW it can be done while not getting too overwhelming (too many options.  Need to narrow it right down.)

    Any and many thoughts muchly appreciated.

    I'm sure any work / results we get done here will be of benefit to other users on pc as well - others may well be able to extend the work.

    Cheers.  Brendan Woithe.

  • you want e PCIe cerd in a Northbridge slot for the fastest path to the CPU.

    as far as ASIO, Cubase on a Mac is known to be slower, by a lot, than on Windows. I use it, VE Pro obviates most of it as I load very little into Cubase anymore, but do not expect tip top performance to keep up with the Joneses if they are running it on Windows and you're not. ASIO is not Core Audio and there appears to be a translation slowing it down.

    Now, the fact of OSX is that there are no tweaks to the OS such as was the case when I used Windows, it was de rigeur and may be somewhat less so today but I do see it discussed. So the bottlenecks on the Mac Mini are quite concrete and more or less hardware-specific. [EDIT: you do not want USB devices with drivers, such as cameras and printers installed on an audio computer, especially if you're using USB for audio in any way]

    you want al least 7200RPM hard drives that are not system drives, for the samples.

    you must use fixed and not dynamic IP you set manually, or you will have terrific problems.

    if you aren't needing 8 logical cores, the system will not distribute to them. that one is you trying to worry about something that works just fine.

    kontakt does not need to have multicore support activated in VE Pro, so don't. it could mean some problems in some situations. also, certainly in 64-bit there is no reason for the memory server. if you have instantiated both Play and Kontakt, the latter with the memory server on, they won't tolerate each other.

    I believe the best practice as per buffers is as low as you can go in the sequencer but 'x 2' in VE Pro.

    if you are working in 32-bit, you may find that your memory ceiling in practice is not what you noticed on paper somewhere.

  • I'm not into comparing how a mac or pc compare at all - this isn't really the purpose of what I'm trying to do.

    What I'm interested in looking at is working out the best way to set up both slaves and servers (as far as settings) in a mac environment. AND working out where the system "breaks" - what part of the system is the weakest link.  Being able to identify exactly whats going on....

    Thankfully, for the slaves, the sound card isn't on the slave - so that doesn't really effect the slave's performance (as far as being able to tell what is able to be done on a particular slave).  And although I use FW audio on my macs (metric halos) I am in the process of getting an RME card for my mac pro in order to lower latency settings.


  • I'm not interesed in a discussion of  platform performance per se either, but you mentioned ASIO, which is not Core Audio. ASIO is a windows-centric protocol, know that. you will encounter people telling you about the performance and you seem to want an overview.

    the soundcard on the master certainly affects the performance of the system, hence will impact the performance of the slave. RME in a PCIe/Northbridge is as good as I know to recommend. that, more than the brand per se, will tend to mean a gain in the lower latency dept.

  • Ah - yes, I misunderstood you.  Apologies! :)  I used PC's years ago, and sometimes I still use "asio" instead of core audio... My mistake.

    It is interesting to know the soundcard on the master affects / impacts the slave.  I guess so long as I am using a system that doesn't vary, I'll be able to work out the variables involved with multi-processing / ram use etc - as we KNOW that a PCIe card will generally improve the system, but I don't think they will change the behaviour of the variables.

    I've got some ideas in mind as to testing as well - I'll report back any findings I come up with today.

    Cheers, Brendan.

  • Hi again.

    I'm not sure I've got much more in terms of knowledge to share, but I do have more questions - and a little bit of data.

    First up - I ran a couple of tests just to get an idea of how powerful the mac mini was in terms of DAW performance.  And to see what multi-cpu settings inside nuendo were doing.

    Turns out the little computer does quite well.  Easily runs 64tracks of audio with low (ish) buffers.  Multi-cpu performance definitely helps, as does switching audio priority to "boost" in nuendo.  I'll try graph the numbers at some stage - but it certainly showed shortcomings running low latencies with the firewire interface.  (MH2882 expanded connected directly to the mac mini).  Around 256 to 512 buffers, the CPU performance was reasonable, and I could really start loading up virtual effects quite well. 

    Just a note - even though these are macs, nuendo still refers to the audio performance as ASIO performance (!).  The asio performance seemed to roughly mimic the CPU readings I was getting thru "at monitor" although seemed to be 5 to 10% more, and also jumped around a lot more.  They got more stable as I set higher buffers on the sound card, under fairly heavy load.

    But really - this wasn't the point, other than being interested in seeing if nuendo made use of all 8 cores (quad core i7 2.0ghtz, but with HT - so 8 cores visible to the OS)

    It does - but it uses cores 1,3,5,7 a little more than 2,4,6,8 - for whatever reason.  More on this later.

    Now.  To testing VEP / Kontakt on the mini, slaved to my mac pro.  This is where I'm stuck.  I just can't seem to come up with a test that will give me meaningful results. 
    What I'd like to be able to do is keep loading kontakt up with sample instruments that are exactly the same - but unfortunately kontakt is too "clever" for this, and doesn't re-load the samples when you load a second copy of the instrument.  So, to stress test, you seem to need to just keep loading different instruments.  However, because these are different sample sizes, its very hard to give accurate answers to what is going on.

    Can someone suggest a way of doing it?  Can anyone think of a test worth doing that will get valuable data?

    Now - some things I did notice.

    Using 4 cores in VEP, and 4 cores for Kontakt, and having 2 copies of kontakt5 open still only saw cores 1,3,5&7 being used.

    Turning on 8 cores in kontakt, and leaving VEP at 4 cores, saw 1,3,5&7 being used the most, but 2,4,6,8 being used at around 25 to 40% the amount of 1,3,5,7.  I didn't get close to maxing out the CPU - but I was not using full on sample instruments.  The problem being these more "CPU intensive instruments I have tend to eat ram, so I run out of ram before the test is really significant.

    I'm thinking I might just hold off on any more tests until the ram arrives - which could be a week or two (its coming from the states)

    But ANY thoughts on actually creating a meaningful test would be much appreciated.  I'll also attempt to create some sort of test for East West instruments, and Spectrasonics Instruments. 

    (For giggles, I loaded Alicia Keys (quite a big library) and studio drummer at the same time.  I was getting dropouts on all buffer settings with just those 2 instruments.  However, RAM usage was at 99% - and CPU wasn't so high - so I don't think I was reaching CPU limits.)

    There is loads more to be learnt, and I feel like only the surface is being scratched.

    Cheers, Brendan.

  • well it does use ASIO. Steinberg does not port to Core Audio directly. What happens is the audio protocol is handled via 'ASIO2CoreAudio.bundle'. I believe it slows Cubendo down.

    I'll tell you one thing, do not enable mulitcore processing in  kontakt inside VE Pro, but let VE Pro do it. It's going to be better performance I believe.

    I implicitly trust VEP to distribute it to the cores. I have no data other than I get good performance at low enough latencies to play live.

    as far as the percentages of CPU, here's what Activity Monitor looks like for the project I just did - I take it to indicate 5-6 cores are being used. I don't know really, just a guess. I have a latency of ~10ms round trip. There is absolutely no audio problem at any point in this project at that latency. It's not a real heavy project. There are some 13 single instances of Kontakt, a similar amt of VSL; these are not light instruments a lot of them, the VSL are loaded for bear. A very rich kit in BFD2 and one Trilian and one Play instance.

  • my slave specs are 2xquad 2.93ghz, 24 GB, Mac Pro. I'm using two internal drives, 7200RPM for samples. sound card RME Multiface 2. on a quad core 2.66 on the master.

  • Be nice to know if VEP 5 is able to use Hyper-Threading ... anyone from VSL have a comment?

  • Ah - great information re ASIO / ASIO2CoreAudio.bundle - that makes a lot of sense.  It puts some fragments of information together into a much better understood concept!

    Multicore processing in kontakt (number of cores) and vep (number of cores) - there's lots of people saying different things.  Its interesting that you say to turn it off - this is exactly what I want to test and actually get some data that can be referred back to.  :)  I'd say thats a great starting point though (having it off initially!) The big question is how to test this exactly.  I have an idea - but it may require some help from some kontakt script gurus....

    As for which cores / virtual cores (HT) are being used - the activity monitor actually doesn't tell u much about what is being used when.  Not terribly well anyway. Generally, if multi-core aware programs are working well, they distribute the load fairly evenly across all cores - rather than filling them up one by one.  This is where programs like "AT Monitor" (free on OSX but donationware - its great!) really help.  You can tell what is happening on each core in real time, as well as be given a reasonable indication on the headroom of a system.

    Anyway - I just found out my ram should arrive towards the end of next week - which will probably make things easier to test (gives headroom.)  In the meantime, I might use my master machine (mac pro 3,1 with 26GB ram) to run some more tests - where the ram ceiling shouldn't be a problem.

  • you know you should devote the resources to the slave. it makes no sense to have that kind of muscle for the master and a mini for a slave. unless your audio tracks use is going to be a hundred times what you want out of VE Pro or something.

    NI generally advises turning kontakt MP off in a host. VE Pro is A Host. The MP in Kontakt is there for standalone use.

    as far as VEP 5 having hyperthreading, VE 4 does and there is no way they're going backwards, good lord.

  • I already have a mac pro 3,1 for my master and a 4,1 for a slave.  I'm slowly building a completely portable system that will probably end up being 1 x macbook pro with 4 to 6 mac mini slaves. (Its all about weight - otherwise I'd be building 2x i7 2600k slaves, but they're too big/heavy to carry around on flights regularly.

    I've got the mac mini (server version) in for evaluation right now, and thought I'd try get to the bottom of all the setup and performance prefs at the same time.  I also have an i5 2011 mac mini here as well, but the i7 quad core version seems to be very much the one to go for.  Anyway - thats just some extra background, and a little off topic.

    Interesting about the NI advice on MP.  Do you have a direct link to any info?

    thanks. Brendan.

  • last edited
    last edited

    Re multicore settings in kontakt - this is the information I've been able to track down on optimizing kontakt 5 in the ni knowledge base :

    This raises the question: how many cores should you select here in order to get the best performance from KONTAKT?

    This is not an easy question, as the answer is dependent on your sequencer, the project you are working on, your computer system, and so on.

    We cannot give an exact answer here that will give best performance for all users in all situations, but as a starting point, you can begin by turning multiprocessor support on for ALL available cores on your computer, in other words select the maximum available value. This is true whether you are using KONTAKT in standalone mode or as a plug-in.

    If you are using Pro Tools in particular as your host, we recommend leaving one or two cores free. So you have an 8-core machine, you should select 6 or 7 cores in KONTAKT. If you are running on a 2-core machine, you may try using both cores for KONTAKT.

    Please do not be confused when the CPU or system usage monitor of your sequencer does not reflect the multiprocessing of KONTAKT, as the multiprocessing of KONTAKT is not transparent to the sequencer.

    (Also click here for more information on optimizing the performance of NATIVE INSTRUMENTS plug-ins in Pro Tools.)

    If you are running many separate instances of KONTAKT in your session you will probably get better performance if you reduce the number of multiprocessor cores a bit.

    At some point, depending on how many instances of KONTAKT you are running, you may get better performance by turning the multiprocessor support OFF completely and letting your host sequencer manage the multiprocessing instead. This is also dependent on which host sequencer you are running, they all manage this a bit differently.