We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Is C++23 std::mdspan a Zero-overhead Abstraction? - Oleksandr Bacherikov - CppCon 2023
Explore the zero-overhead abstraction of C++23's std::mdspan, discussing its template parameters, matrix addition, and performance optimization, while delving into its complex implementation and limitations.
- MDSpan has a significant amount of template parameters
- MDSpan can be used to formulate matrix addition with zero overhead
- The assembly code for MDSpan has an extra block of instructions compared to the non-MDSpan version
- The extra instructions are not related to vectorization, but rather due to the way parameters are passed
- Some functions in MDSpan can be optimized by reusing storage and avoiding stack access
- The standard MDSpan requires extents to be one of the specializations of the standard type
- The presentation of MDSpan is important for performance-critical code
- Parameters should not be passed unnecessarily to functions where performance is critical
- The complexity of implementing MDSpan is due to the ABI limitations
- It is difficult to make MDSpan work with non-standard register sizes
- The presentation of MDSpan can be used for image processing and other applications.