Reordering N-Dimensional Sparse Data Chunks for Spatial Locality
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Sparse N-dimensional Convolutional Neural Networks (CNNs) face challenges in maintaining spatial locality of data, leading to inefficient computation due to the sparse nature of the data, which results in increased computational burden and slower performance as only active voxels are stored, causing a loss of spatial locality and increased data re-fetching.
Innovation Solution
Reordering data into chunks that contain spatially co-located data elements, with chunk sizes optimized for memory constraints, to maintain spatial locality and reduce re-fetching, while being agnostic to data orientation and adaptable across different memory levels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If sparse N-dimensional CNN data is stored with only active voxels, then storage efficiency is improved, but spatial locality is lost leading to increased computational burden
Solution Approach 1:
The patent segments sparse N-dimensional data into discrete chunks, where each chunk contains a subset of voxels with their spatial relationships preserved. This segmentation allows efficient storage of only active voxels while maintaining the spatial locality needed for computational operations by organizing voxels into coherent groups rather than storing them as isolated elements.
Solution Approach 2:
The patent implements a nested hierarchical structure where voxels are organized within chunks, which are further organized within memory levels. This nested organization allows the system to maintain spatial locality at multiple scales - voxels within chunks preserve local spatial relationships, while chunks themselves are arranged to preserve broader spatial patterns, enabling efficient computation despite sparse storage.
2Productivity
If data is re-ordered to maintain spatial locality, then computational efficiency is improved, but data re-fetching increases
Solution Approach 1:
The patent performs preliminary reordering of sparse data into spatially coherent chunks before processing begins. By pre-organizing the data structure to maintain spatial locality, the system eliminates the need for repeated data re-fetching during computational operations, as all necessary spatially-related voxels are already co-located in the same chunks when processing starts.
Solution Approach 2:
The patent applies different organizational strategies to different regions of the data based on their spatial characteristics. Chunks containing densely packed active voxels are organized differently from sparsely populated regions, optimizing spatial locality locally while minimizing overall data re-fetching requirements through region-adaptive organization.
3Loss of time
If chunk size is increased to reduce re-fetching, then memory utilization is improved, but memory constraints are violated
Solution Approach 1:
The patent implements dynamic chunk sizing where the size of each chunk is adjusted based on the specific memory constraints of the target system and the local density of active voxels. This dynamic adaptation allows the system to maximize chunk sizes to reduce re-fetching operations while ensuring that no single chunk exceeds the available memory capacity, thereby satisfying memory constraints through flexible, context-aware sizing.
Solution Approach 2:
The patent changes the parameter of chunk size based on memory availability and data characteristics. By making chunk size a variable parameter rather than a fixed value, the system can optimize for reduced re-fetching in systems with larger memory while automatically adapting to smaller memory constraints, thus resolving the contradiction between reducing re-fetching and satisfying memory limits.
Data Source
AI summary
Exemplary embodiments maintain spatial locality of the data being processed by a sparse CNN. The spatial locality is maintained by reordering the data to preserve spatial locality. The reordering may be performed on data elements and on data for groups of co-located data elements referred to herein as “chunks”. Thus, the data may be reordered into chunks, where each chunk contains data for spatially co-located data elements, and in addition, chunks may be organized so that spatially located chunks are together. The use of chunks helps to reduce the need to re-fetch data during processing. Chunk sizes may be chosen based on the memory constraints of the processing logic (e.g., cache sizes).


