Forum
Please or Register to create posts and topics.

NEW: "DSP Scheduler Custom Core Order": Optimize Core Allocation for DSP Threads

With the next RTSA Suite PRO release (Build >= 13809) we’re introducing a new application configuration setting: DSP Scheduler Custom Core Order. This feature gives you unparalleled control over how CPU cores are allocated for DSP (Digital Signal Processing) threads within the application. This is particularly beneficial when using Hybrid CPUs with "Performance Cores" (P-Cores) and "Efficiency Cores" (E-Cores) like Intel's Alder Lake or adapt CPU core order for AMD's ZEN architecture CPUs.
Why is it Useful?
For most CPUs the default value for the DSP Scheduler Mode is set to Balanced, which is in mostly all cases the correct and most useful setting.

Modern CPUs often have complex architectures designed to optimize performance, power efficiency, or other factors. This complexity can result in different types of cores within a single CPU (e.g., P-cores and E-cores in Alder Lake, or multiple core complexes in Zen). The operating system may not always make optimal choices for thread-to-core assignments, especially for tasks like Digital Signal Processing that might require a more controlled environment for maximum efficiency or performance.How Does It Work?With DSP Scheduler Custom Core Order, you can specify the order in which CPU cores should be allocated for your DSP threads. The syntax allows for easy customization via comma-separated values and/or range specifications. Here's a brief explanation of how to use it:

  • Comma Separation: Use commas to specify the cores in the exact order they should be allocated. For example, `9,7,4,2` would allocate DSP threads first to core 9, then core 7, followed by core 4, and finally core 2.
  • Ranges: If you have a range of cores you wish to allocate, use a dash. For example, `5-25` would allocate DSP threads to cores 5 through 25, in that order.
  • Full Expression: You can also combine the above formats for more complex assignments. For instance, `5,3,2,5-8` would allocate the first DSP thread to core 5, the second to core 3, the third to core 2, and then the subsequent threads to cores 5 through 8 in order.
Examples
Here are some practical examples to help you get started:
High-Performance Focus: If you have an Alder Lake CPU and you want to allocate DSP threads strictly to the Performance cores (let's assume they are cores 1, 3, 5), your configuration would look like `1,3,5`.
  1. Core Grouping on Zen Architecture: Let's assume you are using a Zen-based CPU with different core complexes. If cores 24,28,32,36 are in one CCX and cores  8,12,16,20 are in another, and you want to group DSP threads within each CCX, your configuration might look like '8,12,16,20,24,28,32,36'.
  2. Mixed Allocation: If you want to first allocate a couple of specific cores (e.g., 2 and 6) and then utilize a range of cores (e.g., 10-20), your configuration would be `2,6,10-20`.
By leveraging DSP Scheduler Custom Core Order, you can optimize thread allocation for better performance and efficiency tailored to your specific needs.We hope you find this feature beneficial. Feel free to share your experiences and ask any questions you may have!
To set the DSP Scheduler Mode, open the Aaronia RTSA Suite PRO Configuration using the menu "Extras"->"Configuration" and look for the "Performance" setting in the Environment configuration:
HB9DTZ has reacted to this post.
HB9DTZ