Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add stdexec threading backend #4433

Open
thewtex opened this issue Jan 25, 2024 · 1 comment
Open

Add stdexec threading backend #4433

thewtex opened this issue Jan 25, 2024 · 1 comment
Labels
type:Performance Improvement in terms of compilation or execution time

Comments

@thewtex
Copy link
Member

thewtex commented Jan 25, 2024

A new threading backend based on stdexec, which is proposed as the prototype for the new std::execution parallelism model for the C++ standard.

It supports asynchronous execution with scheduler backends based on coroutine thread pools or GPU schedulers, and could be an alternative or basis for #2831.

Description

A new MultiThreader class that that uses stdexec/execution.hpp

Impact analysis

CPU-based parallism could be improved and this could provide GPU parallelism support throughout the toolkit.

Expected behavior

If benchmarking succeeds and support is available across platforms and toolchains, use the new MultiThreader class as the default with the exec/static_thread_pool.hpp. Optionally provided support for NVIDIA GPUs if available.

Versions

Target for ITK 6.

Additional Information

Eventually the header-only library could be vendored in the ITK source tree in ThirdParty/.

@thewtex thewtex added the type:Performance Improvement in terms of compilation or execution time label Jan 25, 2024
@thewtex thewtex added this to the ITK 6.0 Beta 1 milestone Jan 25, 2024
@thewtex
Copy link
Member Author

thewtex commented Jan 25, 2024

@N-Dekker you might be interested in this :-D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:Performance Improvement in terms of compilation or execution time
Projects
None yet
Development

No branches or pull requests

1 participant