Performance Hauptwerk IX

Hauptwerk software technical support only. Please make sure you have read the manual, tutorials and FAQ pages before requesting support.
Post Reply
gjschipper
Member
Posts: 46
Joined: Fri May 11, 2012 2:35 am

Performance Hauptwerk IX

Post by gjschipper »

I have upgraded the third PC from Hauptwerk 8 to Hauptwerk 9. All of the PC's has performance issues. Loading times are twice as high as in Hauptwerk 8. Any idea?

Hauptwerk version: 8.0.1.002.

Code: Select all

2024-05-22-17-33-20: INF:2157 The organ Buckeburg, Janke Organ, Surround Demo.Organ_Hauptwerk_xml has been loaded. Metrics:

[Mem. usage stats. MB: Approx. est. of tot. usable phys. mem. remaining: 22240, Approx. est. Hauptwerk sample/obj. mem. (excl. other data): 37755 (0 pageable). Approx. pct. phys. mem. used: 62, OS tot. 'available' phys.: 22240, OS commit tot.: 10, OS tot. page file: 9216, OS tot. virtual: 74390, OS mem. load pct: 65, OS sys. cache: 5, OS process commit: 38362, OS process page faults: 13, OS process work. set: 38288, OS process min. work. set: 45776, OS process max. work. set: 63126.] [Organ data pool mem. enabled: Y, stats.: 50 chunks allocated totalling: 37376 MB (containing 122947 items totalling 37233.153MB), num. non-empty chunks: 50, free space in last non-empty chunk: 142.733 MB, max. free space in any chunk except last non-empty chunk: 0.097 MB, total free space in all chunks except last non-empty chunk: 0.114 MB, chunk sizes MB and quantities: 128 MB: 0, 256 MB: 18, 1024 MB: 32.] [Logical CPU core speeds: current core speeds: 1500-2100 MHz, max core speeds: 2100-2100 MHz.] [CPU core affinity: system: 0FFFFFFF, process: 0FFFFFFF, queried: Y.]
Organ ID: 002307.
Organ ver.: 1.01.
Organ min. Hauptwerk ver.: 4.0.0.000.
Mem.: total raw audio/trem. sample data mem. (excl. pre-proc. audio, images, or other data): 35383.08 MB.
Mem.: overall compression ratio for compressed ranks: 47.35 pct.
Total time: overall: 28.624 sec.
Total time: sample data: 26.727 sec.
Total time: all except sample data: 1.897 sec.
Time: prep.: 0.175 sec.
Time: organ def. loading/parsing: 0.448 sec.
Time: organ def. object/key validation: 0.084 sec.
Time: organ def. prep.: 0.049 sec.
Time: prep. for loading settings: 0.001 sec.
Time: settings loading/parsing: 0.250 sec.
Time: settings object/key validation: 0.042 sec.
Time: settings prep.: 0.002 sec.
Time: data cache validation/prep.: 0.002 sec.
Time: audio data: 26.659 sec.
Time: trem. data: 0.068 sec.
Time: images: 0.548 sec.
Time: comb. and temper. files: 0.296 sec.
Sample loader: loaded from data cache: Y.
Sample loader: data cache total disk size: 36325.99 MB.
Sample loader: buffers: 16.
Sample loader: approx. loader peak mem. usage during audio loading: 493.46 MB.
Sample loader: loader def. mem. usage during audio loading: 425.62 MB.
Sample loader: approx. loader mem. usage during trem. loading: 52.02 MB.
Sample loader: approx. avg. overall data read rate: 1359.15 MB/s.
Sample loader: approx. avg. data read rate during disk reader activity: 1936.05 MB/s.
Sample loader: pct. data loading time each stage busy: disk I/O: 70.20.
Sample loader: pct. sample loading time stage busy: 1st proc.: 84.35.
Sample loader: pct. sample loading time stage busy: 2nd proc.: 31.70.
Sample loader: pct. sample loading time stage busy: 3rd proc.: 19.31.
Sample loader: pct. sample loading time stage busy: 4th proc.: 76.13.
Sample loader: pct. sample loading time stage busy: 5th proc.: 40.43.
Sample loader: pct. thread activity due to stage: disk I/O: 21.79.
Sample loader: pct. thread activity due to stage: 1st proc.: 26.19.
Sample loader: pct. thread activity due to stage: 2nd proc.: 9.84.
Sample loader: pct. thread activity due to stage: 3rd proc.: 5.99.
Sample loader: pct. thread activity due to stage: 4th proc.: 23.63.
Sample loader: pct. thread activity due to stage: 5th proc.: 12.55.
Hauptwerk version: 9.0.0.258.

Code: Select all

2024-12-19-15-04-48: INF:2157 The organ Buckeburg, Janke Organ, Surround Demo.Organ_Hauptwerk_xml has been loaded. Metrics:

[Mem. usage stats. MB: Approx. est. of tot. usable phys. mem. remaining: 21602, Approx. est. Hauptwerk sample/obj. mem. (excl. other data): 37781 (0 pageable). Approx. pct. phys. mem. used: 63, OS tot. 'available' phys.: 21602, OS commit tot.: 10, OS tot. page file: 9216, OS tot. virtual: 74540, OS mem. load pct: 66, OS sys. cache: 5, OS process commit: 38547, OS process page faults: 13, OS process work. set: 38520, OS process min. work. set: 45749, OS process max. work. set: 63276.] [Organ data pool mem. enabled: Y, stats.: 50 chunks allocated totalling: 37376 MB (containing 122947 items totalling 37233.153MB), num. non-empty chunks: 50, free space in last non-empty chunk: 142.733 MB, max. free space in any chunk except last non-empty chunk: 0.097 MB, total free space in all chunks except last non-empty chunk: 0.114 MB, chunk sizes MB and quantities: 128 MB: 0, 256 MB: 18, 1024 MB: 32.] [Logical CPU core speeds: current core speeds: 2100-2100 MHz, max core speeds: 2100-2100 MHz.] [CPU core affinity: system: 0FFFFFFF, process: 0FFFFFFF, queried: Y.]
Organ ID: 002307.
Organ ver.: 1.01.
Organ min. Hauptwerk ver.: 4.0.0.000.
Mem.: total raw audio/trem. sample data mem. (excl. pre-proc. audio, images, or other data): 35383.08 MB.
Mem.: overall compression ratio for compressed ranks: 47.35 pct.
Total time: overall: 63.859 sec.
Total time: sample data: 58.074 sec.
Total time: all except sample data: 5.785 sec.
Time: prep.: 0.236 sec.
Time: organ def. loading/parsing: 1.308 sec.
Time: organ def. object/key validation: 0.080 sec.
Time: organ def. prep.: 0.049 sec.
Time: prep. for loading settings: 0.006 sec.
Time: settings loading/parsing: 0.830 sec.
Time: settings object/key validation: 2.330 sec.
Time: settings prep.: 0.004 sec.
Time: data cache validation/prep.: 0.013 sec.
Time: audio data: 58.011 sec.
Time: trem. data: 0.063 sec.
Time: images: 0.560 sec.
Time: comb. and temper. files: 0.369 sec.
Sample loader: loaded from data cache: Y.
Sample loader: data cache total disk size: 36325.99 MB.
Sample loader: buffers: 16.
Sample loader: approx. loader peak mem. usage during audio loading: 493.46 MB.
Sample loader: loader def. mem. usage during audio loading: 425.62 MB.
Sample loader: approx. loader mem. usage during trem. loading: 52.02 MB.
Sample loader: approx. avg. overall data read rate: 625.51 MB/s.
Sample loader: approx. avg. data read rate during disk reader activity: 1385.24 MB/s.
Sample loader: pct. data loading time each stage busy: disk I/O: 45.16.
Sample loader: pct. sample loading time stage busy: 1st proc.: 38.73.
Sample loader: pct. sample loading time stage busy: 2nd proc.: 14.37.
Sample loader: pct. sample loading time stage busy: 3rd proc.: 8.51.
Sample loader: pct. sample loading time stage busy: 4th proc.: 79.39.
Sample loader: pct. sample loading time stage busy: 5th proc.: 72.95.
Sample loader: pct. thread activity due to stage: disk I/O: 17.43.
Sample loader: pct. thread activity due to stage: 1st proc.: 14.95.
Sample loader: pct. thread activity due to stage: 2nd proc.: 5.55.
Sample loader: pct. thread activity due to stage: 3rd proc.: 3.28.
Sample loader: pct. thread activity due to stage: 4th proc.: 30.64.
Sample loader: pct. thread activity due to stage: 5th proc.: 28.16.
User avatar
mdyde
Moderator
Posts: 15920
Joined: Fri Mar 14, 2003 1:19 pm

Re: Performance Hauptwerk IX

Post by mdyde »

Hello gjschipper,

First of all, thanks very much for upgrading to v9. [I'll move this topic to the 'Technical support' section of the forum once you've had a chance to read it.]

There haven't actually been any changes between v8.0.1 and v9.0.0 in how Hauptwerk loads organs or data. (v9 does have slightly newer versions of platform libraries.)

For good measure, I've installed a large sample set in v8.0.1 and in v9.0.0 on a modern i9 PC with 128 GB of RAM and NVMe drive, and loaded it with all default options (except with ranks set to load in 24-bit) in both versions, and in my tests performance was almost the same in both versions, as expected. In either version, having the touch menu open whilst loading did increase loading times by about 6-7% on my PC.

Perhaps Windows was busy doing something in the background on your PC (such as indexing drives) after the installer having been run, for example.

Please try:

- Make sure that Windows drive indexing and Superfetch/Sysmain are disabled.

- Reboot the PC and log in.

- Temporarily disconnect it completely from the Internet/network.

- If it has a virus scanner, temporarily disable it completely.

- Wait at least a minute, to make sure things have had ample time to finish booting.

- Look in Windows Task Manager to verify that it doesn't show any non-Hauptwerk processes using a significant amount of CPU time. Exit Task Manager (since it will itself affect performance a little).

- Launch Hauptwerk v9 (but don't load an organ yet).

- Close the touch menu in Hauptwerk.

- Press Ctrl+L to re-load the last organ.

- Repeat the last step, say, 5 times (without exiting Hauptwerk, so that memory doesn't have to be allocated again), since loading times inevitably vary a little with each load, depending on activity from other running processes, etc.

Ignoring the first load time after launching (since memory would have need to be allocated, which slows loading in either version), are the times now broadly similar to those for that organ in v8.0.1?
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
gjschipper
Member
Posts: 46
Joined: Fri May 11, 2012 2:35 am

Re: Performance Hauptwerk IX

Post by gjschipper »

@mdyde It has to do with P and E cores in windows. When I have slow loadtimes hauptwerk is also using the E-cores. Sometimes it is only using the P-Cores, then the load time is fine. Any idea if this is a windows issue or an Hauptwerk issue? As far as I remember I didn't see this in Hauptwerk 8. I am using Windows 11 23H2 OS Build 22631.4602
User avatar
mdyde
Moderator
Posts: 15920
Joined: Fri Mar 14, 2003 1:19 pm

Re: Performance Hauptwerk IX

Post by mdyde »

Thanks, gjschipper.

There's no difference in the loading mechanism, or threading, between v8 and v9. Hauptwerk (either version) simply leaves the OS to decide on which CPU cores the loading threads are placed. Presumably currently on those PCs Windows is sometimes putting some or all of the loading threads on the lower-performance 'E' cores for some reason, rather than than the higher-performance 'P' cores that it should be using (given that the threads are CPU-intensive).

I don't know why it would be doing that, but conceivably forcing the Hauptwerk process always to run at Windows real-time priority might help. To do that:

- Make sure that the "Settings | General: Preferences | Simplify | Disable less commonly used general preferences and use defaults" option is *not* ticked.
- Then also make sure that the "Settings | General: Preferences | Advanced preferences | Try to run Hauptwerk at real-time priority on Windows" option is *not* ticked. (If ticked, it would try to set the process priority to real-time when audio is active, but not at other times.)
- Launch Hauptwerk from Windows 'as administrator' each time, and set the Hauptwerk process's priority via Windows Task Manager ('Details' tab) to "Realtime".
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
mnailor
Member
Posts: 1833
Joined: Sat Nov 30, 2013 5:57 pm

Re: Performance Hauptwerk IX

Post by mnailor »

One change in HW9 is to make not binding threads to cores the default, where binding was the default in previous versions. You might want to tick the option to bind threads, if it's currently off, and see if that helps your load times without causing audio glitches. (EDIT: Not related. See Martin's correction below.)

I've also had slower organ load times (and install unpacking times*) with HW9, and I had threads unbound in both HW8 and 9, so that isn't necessarily the only possible cause.

(EDIT: By slower loading times, I mean Caen took 45 seconds in HW8 and 60 seconds in HW9 from a cold start. My biggest organs still load in 2 minutes or less, so I really don't have a problem with that.

The unrar slowdown is 10 to 60 seconds of "not responding" when I hit Open on the Install file window before the progress popup starts, with more delay for bigger multipart RAR files. No Windows updates until much later, so that doesn't explain it, but I did install an updated WinRAR around the same time as HW9. Uninstalling that didn't fix the delay.
Maybe it left an "improved" DLL in place.)

* I did verify that the unrar.exe path used by HW9 is the one supplied by HW's installer, not from the WinRAR I'd updated.
Last edited by mnailor on Fri Jan 03, 2025 1:42 pm, edited 3 times in total.
gjschipper
Member
Posts: 46
Joined: Fri May 11, 2012 2:35 am

Re: Performance Hauptwerk IX

Post by gjschipper »

During loadtimes Hauptwerk.exe is always in normal mode, never seen it in realtime priority. And if I untick realtime priority in hauptwerk most of the time I see audio glitches. Also I don't like to do manual actions to set Hauptwerk in realtime mode in task manager of windows.

But the good news is, after upgrading windows to 24H2 (build: 26100.1742) it seems ok. It is using only the P-cores. So CPU performance is back to low (avg. 30%) and SSD performance back to 1.8GB/s. Still 1 core peaks to 90-95%.

The only thing left is that Hauptwerk 9 still only uses 5 threads. When are you going to fix that? Load times in another virtual sampleset software package are much higher, I easily get 3-4GB/s there. With current hardware we should be able to get much better loading times. Especially with fast SSDs and CPUs with many cores.
User avatar
mdyde
Moderator
Posts: 15920
Joined: Fri Mar 14, 2003 1:19 pm

Re: Performance Hauptwerk IX

Post by mdyde »

mnailor wrote: Thu Jan 02, 2025 4:44 pm One change in HW9 is to make not binding threads to cores the default, where binding was the default in previous versions. You might want to tick the option to bind threads, if it's currently off, and see if that helps your load times without causing audio glitches.
Hello Mark,

Although the default for the "Bind audio engine threads to CPU cores on Windows?" general preference was ticked in v8, and is unticked for a new/clean v9 installation, the setting isn't changed if upgrading to v9. Also (in all versions) that preference only affects audio engine threads; in either version non-audio-engine threads (such as organ loading threads) are never bound to CPU cores anyway, so it's up to the OS to decide which cores it wants to use for them.

(Unless threads are bound to specific cores, which can cause problems with some PCs/drivers and other software) my experience is that Windows sometimes puts threads on inappropriate CPU cores initially. If the process is running at Windows real-time process priority then Windows is quick to move them to more-appropriate cores. However, if the process isn't running at real-time priority then it can take a few seconds before it eventually does so.
mnailor wrote: Thu Jan 02, 2025 4:44 pm I've also had slower organ load times (and install unpacking times*) with HW9, and I had threads unbound in both HW8 and 9, so that isn't necessarily the only possible cause.

* I did verify that the unrar.exe path used by HW9 is the one supplied by HW's installer, not from the WinRAR I'd updated.
The only difference between v8 and v9 related to unpacking/installing sample sets is that the version of the third-party unrar.exe has been updated from v6.21.0.0 to the latest v6 patch version (v6.24.0.0). I would be very surprised if that had any negative impact on extraction speeds.

(Aside from a slight difference if the touch menu is open, since it has more real-time meters on it, which add a small amount of CPU overhead if visible), there really aren't any changes in v9 above v8 should have any significant affect on loading speeds. I think any differences you've noticed in loading speeds or RAR extraction speeds are just coincidence, e.g. perhaps due to a recent Windows update.
gjschipper wrote: Fri Jan 03, 2025 2:05 am During loadtimes Hauptwerk.exe is always in normal mode, never seen it in realtime priority. And if I untick realtime priority in hauptwerk most of the time I see audio glitches. Also I don't like to do manual actions to set Hauptwerk in realtime mode in task manager of windows.
I'll experiment with making the "Try to run Hauptwerk at real-time priority on Windows (requires launching 'as administrator')" preference also set Hauptwerk to real-time priority during loading, to see whether Windows then moves the loading threads to better CPU cores more quickly.
gjschipper wrote: Fri Jan 03, 2025 2:05 am But the good news is, after upgrading windows to 24H2 (build: 26100.1742) it seems ok. It is using only the P-cores. So CPU performance is back to low (avg. 30%) and SSD performance back to 1.8GB/s.
Excellent.
gjschipper wrote: Fri Jan 03, 2025 2:05 am The only thing left is that Hauptwerk 9 still only uses 5 threads. When are you going to fix that? Load times in another virtual sampleset software package are much higher, I easily get 3-4GB/s there. With current hardware we should be able to get much better loading times. Especially with fast SSDs and CPUs with many cores.
It actually uses 6 (not 5) CPU cores/threads when loading from cache, and my i9 laptop with NVMe SSD manages about 1.4 GB/s overall loading rate if loading ranks compressed (i.e. similar performance to yours).

We're aware that making a new loading mechanism that could take full advantage of the additional performance available from recent SSDs would be highly desirable.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
gjschipper
Member
Posts: 46
Joined: Fri May 11, 2012 2:35 am

Re: Performance Hauptwerk IX

Post by gjschipper »

We're aware that making a new loading mechanism that could take full advantage of the additional performance available from recent SSDs would be highly desirable.
Hopefully you can fix it soon. Thanks Martin for your reply!
abaymajr
Member
Posts: 179
Joined: Thu Jul 02, 2015 6:54 pm

Re: Performance Hauptwerk IX

Post by abaymajr »

mnailor wrote: Thu Jan 02, 2025 4:44 pm One change in HW9 is to make not binding threads to cores the default, where binding was the default in previous versions. You might want to tick the option to bind threads, if it's currently off, and see if that helps your load times without causing audio glitches. (EDIT: Not related. See Martin's correction below.)

I've also had slower organ load times (and install unpacking times*) with HW9, and I had threads unbound in both HW8 and 9, so that isn't necessarily the only possible cause.

(EDIT: By slower loading times, I mean Caen took 45 seconds in HW8 and 60 seconds in HW9 from a cold start. My biggest organs still load in 2 minutes or less, so I really don't have a problem with that.

The unrar slowdown is 10 to 60 seconds of "not responding" when I hit Open on the Install file window before the progress popup starts, with more delay for bigger multipart RAR files. No Windows updates until much later, so that doesn't explain it, but I did install an updated WinRAR around the same time as HW9. Uninstalling that didn't fix the delay.
Maybe it left an "improved" DLL in place.)

* I did verify that the unrar.exe path used by HW9 is the one supplied by HW's installer, not from the WinRAR I'd updated.
I also had a loss of about 33% in the loading performance of the samplesets after installing the HW9. I have reviewed/implemented all the guidelines, but none of them has recovered the sampleset loading performance of HW8.
User avatar
mdyde
Moderator
Posts: 15920
Joined: Fri Mar 14, 2003 1:19 pm

Re: Performance Hauptwerk IX

Post by mdyde »

Hello abaymajr,

Pleaser try following these steps I mentioned earlier to gjschipper:
mdyde wrote: Thu Dec 19, 2024 9:03 am Please try:

- Make sure that Windows drive indexing and Superfetch/Sysmain are disabled.

- Reboot the PC and log in.

- Temporarily disconnect it completely from the Internet/network.

- If it has a virus scanner, temporarily disable it completely.

- Wait at least a minute, to make sure things have had ample time to finish booting.

- Look in Windows Task Manager to verify that it doesn't show any non-Hauptwerk processes using a significant amount of CPU time. Exit Task Manager (since it will itself affect performance a little).

- Launch Hauptwerk v9 (but don't load an organ yet).

- Close the touch menu in Hauptwerk.

- Press Ctrl+L to re-load the last organ.

- Repeat the last step, say, 5 times (without exiting Hauptwerk, so that memory doesn't have to be allocated again), since loading times inevitably vary a little with each load, depending on activity from other running processes, etc.
Ignoring the first load time after launching (since memory would have need to be allocated, which slows loading in either version), are the times now broadly similar to those for that organ in v8.0.1?

If not:

- Straight after performing that test, please use "Other | Help | Create a diagnostic file ..." and send it to Francois at support [at] hauptwerk.com mentioning that it's for me.

- Did you update anything else on the PC (such as applying any Windows or driver updates) around the same time that you updated to v9? (Some Hauptwerk users normally keep their PCs disconnected from the Internet, but connect them temporarily to it when installing a new Hauptwerk version, thus also allowing Windows, driver, or virus scanner updates to install, for example.)
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Post Reply