Explanations
This section contains discussion about the overall design and implementation of this package.
- Named Abstractions -- The core abstraction stack:
NamedDimension,NamedDimCollection,NamedShape, andNamedLinop. - Why This Package? -- Motivation: the problems with traditional linops and how named dimensions solve them.
- Design Notes -- Key design decisions and tradeoffs (staticmethods, caching in lists, pickle-ability, shape matching).
- Copying Linops -- How shallow copy and memory-aware deep copy work, and why they matter.
- Multi-GPU Splitting -- Splitting operators across devices:
BatchSpec,ToDevice, streams, and events. - FAQ -- Frequently asked questions.