-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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 Kokkos::mdspan
#11533
base: main
Are you sure you want to change the base?
Add Kokkos::mdspan
#11533
Conversation
Sounds good to me! |
Nice. It would be interesting if auto vectorization is still done when we for instance use it for: Line 178 in f36cd4f
Unfortunatly MSVC 2019 is not able to compile it:
|
Yes, I'm quite certain though it probably depends on the complexity of layout and the accessor implementation. Unfortunately there is not much accessible documentation for mdspan yet. These are probably the best:
They seem to be aware but not doing particularly much about it. kokkos/mdspan#26 We could conditionally use the vcpkg port on MSVC, though I don't really want to look into this right now. |
If it compiles with VS2022, it should be OK for the Main branch. This is because Qt6 requires |
This PR is marked as stale because it has been open 90 days with no activity. |
6733eb9
to
092ad47
Compare
It builds. I'll remove the demo commit and remove draft now. |
092ad47
to
4504bb5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
However let's keep it as draft to not merge an unused library to our lib folder.
If one starts to refactor our code using mdspan they can base on this PR.
Fine for me. |
This PR is marked as stale because it has been open 90 days with no activity. |
mdspan will be in C++23 and could greatly help with making the audio engine more flexible. It allows to interpret a contiguous chunk of memory as a multidimensional
std::span
. The result is that the iteration logic can be separate from the memory access logic (and thus the memory layout), allowing us to write generic audio algorithms which can easily adapt to different channel layouts (consider surround audio and STEMs).This PR contains a demo commit to confirm the changes to the build actually work, no meaningful work has yet been done in any mixxx-related audio code.