Computational Object Storage for ML Data Preprocessing Offload
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current machine learning systems face inefficiencies in data preprocessing, as they often require dedicated accelerators or GPUs, which increase costs and processing bottlenecks, especially when dealing with large volumes of data that exceed volatile memory limits.
Innovation Solution
Offloading data preprocessing to external storage nodes, which can perform preprocessing operations on demand, allowing for data transformation and augmentation before providing preprocessed data to processor nodes, thereby optimizing data pipeline latency and freeing up processing bandwidth without additional system costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If preprocessing is offloaded to a dedicated data preprocessing accelerator on the training server node, then preprocessing capability is improved, but system cost increases
Solution Approach 1:
The GPU is made multi-functional by enabling it to perform both traditional graphics processing and data preprocessing operations. The system configures the GPU to execute preprocessing tasks (such as image normalization, resizing, and augmentation) that were traditionally performed by dedicated preprocessing accelerators, thereby eliminating the need for separate preprocessing hardware while maintaining preprocessing capability.
Solution Approach 2:
The patent merges the preprocessing function with the GPU processing function. Instead of having separate preprocessing accelerators and GPUs, the system combines these functions into a single GPU unit, allowing the same hardware resource to serve dual purposes: preprocessing data before it reaches the training pipeline and performing graphics/compute operations when needed.
2Productivity
If preprocessing is offloaded to the GPU, then preprocessing capability is improved, but processing bandwidth is reduced
Solution Approach 1:
The system performs preprocessing operations in advance, before data enters the main training pipeline. By pre-processing data (normalization, augmentation, etc.) before it reaches the GPU for training operations, the system prepares data upfront so that the GPU can focus solely on high-performance training computations without being burdened by preprocessing tasks during critical training operations.
Solution Approach 2:
The GPU's function is made dynamic and adjustable. The system can configure the GPU to perform preprocessing operations when needed, and switch to traditional graphics/compute operations at other times. This dynamic allocation allows the GPU to adapt its role based on system demands, maintaining processing bandwidth for training while enabling preprocessing capability when required.
3Speed
If data is stored at the processor node, then access speed is improved, but storage capacity is insufficient
Solution Approach 1:
The patent introduces an intermediary mechanism (the configurable GPU with integrated preprocessing and storage capabilities) between the external storage system and the CPU. This intermediary allows data to be pre-fetched, preprocessed, and staged in GPU memory closer to the processing unit, reducing the distance and time for data transfer while maintaining access to large external storage capacities. The GPU acts as a buffer and processing intermediate layer that bridges the speed-capacity gap.
Data Source
AI summary
A system that executes a distributed application, such as a machine learning model, can have a processor node among a system of nodes to generate a request for data and a storage node among a system of nodes that stores the requested data. The processor node will use the data for iterative processing to train a machine learning model. The storage node receives the request for the data, reads the data, preprocess the data to perform requested data transformation on the data on demand, and provides the preprocessed data to the processor node for the iterative processing. The processor node can request storage system nodes to store data in a manner suitable for preprocessing. In response to receiving a request, the storage node can interpret hints or metadata associated with the storage operation and perform the requested data store operation.


