Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support for Hybrid CPU architectures #134

Open
BobbyAnguelov opened this issue Oct 22, 2024 · 1 comment
Open

Support for Hybrid CPU architectures #134

BobbyAnguelov opened this issue Oct 22, 2024 · 1 comment

Comments

@BobbyAnguelov
Copy link

BobbyAnguelov commented Oct 22, 2024

Would it be possible to add an API to specify the type of core that we would like a taskset to run on?

I can think of various ways this could work from a user standpoint:

a) Always try to schedule on p-cores unless the user explicitly requests/allows running on an e-core
b) Require user to provide CPU preference at task creation: "Any/P-core/E-core"

As for implementation this is tricky as win10 and win11 have different ways to manage this but seeing as win10 is EOL next year, not supporting it might be perfectly fine. No idea about support for this on *nix/OSX/etc...

Some more information for the available options: https://www.intel.com/content/www/us/en/developer/articles/guide/12th-gen-intel-core-processor-gamedev-guide.html

@dougbinks
Copy link
Owner

This does seem like it would be useful, not just because you might want to set some threads on certain core types but also because you want to group work together on cores which share caches.

I'm already considering a 'thread group' affinity mechanism related to issue #130, but haven't had the time to implement that yet. When combined with some way of getting more information about processors this could be even more useful. One issue is making the processor information API generic enough to cover the architectures out there, but specific enough to be useful. I'll have a think.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants