Multidimensional C++ - Bryce Adelstein Lelbach - CppNorth 2022
Vložit
- čas přidán 2. 09. 2022
- CppNorth Twitter: / cppnorth
CppNorth Website: cppnorth.ca/
---
Multidimensional C++ - Bryce Adelstein Lelbach - CppNorth 2022
Slides:github.com/CppNorth/CppNorth_...
CppNorth 2022 video sponsors:
think-cell: www.think-cell.com/en/
Adobe: cppatadobe.splashthat.com/
For decades, C++ has lacked a proper facility for working with multi-dimensional data structures. Finally, in C++23, we have one - `mdspan`, a non-owning multi-dimensional abstraction. It parameterizes layout and access, which allows us to write generic code that is agnostic to the structure and nature of the multi-dimensional data. It supports both compile-time and run-time extents, so we can trade off between compile-time optimizations and run-time flexibility. It has a powerful slicing interface which makes it easy to form new perspectives to our data.
But `mdspan` doesn't have any iterators.
...
What?
In this talk, Bryce will take you on a quest - a quest in search of performant multi-dimensional iterators in C++.
---
Bryce Adelstein Lelbach
Bryce Adelstein Lelbach has spent over a decade developing programming languages and software libraries.
He is the HPC Programming Models Architect at NVIDIA, where he leads programming language standardization efforts and drives the technical roadmap for NVIDIA's HPC compilers and libraries. Bryce is passionate about C++ and is one of the leaders of the C++ community. He is the chair of INCITS/PL22, the US standards committee for programming languages and the Standard C++ Library Evolution group. He also serves as editor for the INCITS Inclusive Terminology Guidelines. Bryce is the program chair for the C++Now and CppCon conferences. On the C++ Committee, he has personally worked on concurrency primitives, parallel algorithms, executors, and multidimensional arrays.He is one of the founding developers of the HPX parallel runtime system.
---
CZcams Channel Managed By Digital Medium Ltd: events.digital-medium.co.uk
---
#Programming #CppNorth #datastructures - Věda a technologie
I really like how he is driving the goal of having nice to read code as the important as the execution speed.
Excellent talk - slides were particularly wonderful insofar as the color coding. Looking forward to mdspan!
Slide 42: `extent` can return an int or "dynamic", so you'd have to cast it first.
Is there already a proposal for integrating this md-range feature into the C++ standard?
Slide 46: the `[=]` should be `[&]` otherwise you can not write `B`.
I think you are referring to slide 45, but anyway `[=]` is okay, because span and mdspan are "reference types". This is similar to shared_ptr for example, that the referred object can mutate even with `const shared_ptr`.