Offload Kernel Extensions for Computational Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
OpenCL-based offload kernels typically require data to be transferred between a host compute device and a data storage device for processing, leading to inefficient data flow.
Innovation Solution
Implementing offload kernels within the data storage device to enable direct data processing, utilizing an extended API to instantiate kernels on unused processor cores or dedicated controllers, and leveraging in-built read, compute, and write kernels for efficient data operations without transferring data to the host device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is transferred between host compute device and data storage device for processing, then OpenCL offload kernels can be executed, but data transfer overhead increases and efficiency decreases
Solution Approach 1:
The patent merges the data storage device and data processing functions by enabling OpenCL offload kernels to execute directly on the storage device's processor cores. This integration eliminates the need for data to be transferred to the host compute device for processing, allowing storage and computation to occur in the same location, thereby reducing data transfer overhead and improving processing efficiency.
Solution Approach 2:
The data storage device performs data processing operations on its own stored data without requiring external intervention from the host compute device. By executing offload kernels locally on unused processor cores within the storage device, the system enables self-service data processing that eliminates wasteful data round-trips to the host.
2Productivity
If data is transferred to host memory for processing, then computation can be performed, but data flow becomes wasteful and time-consuming
Solution Approach 1:
The patent combines storage and computation operations by allowing OpenCL offload kernels to execute directly on the data storage device's processor cores. This merging eliminates the time-consuming data transfer cycle between storage device and host memory, enabling computation to occur where data resides, thereby improving computation speed and reducing data transfer time.
Solution Approach 2:
The system prepares for efficient computation by identifying and utilizing unused processor cores within the data storage device before data transfer is needed. By having computation resources ready and available locally, the system eliminates the need to transfer data to host memory for processing, thereby reducing data transfer time and improving overall computation speed.
3Adaptability or versatility
If OpenCL kernels are executed on host compute device, then data processing can be performed, but data must be transferred to and from host memory
Solution Approach 1:
The patent extends the universality of the data storage device by enabling it to perform both data storage and data processing functions. By implementing OpenCL runtime support and allowing offload kernels to execute on the storage device's processor cores, the system makes the storage device a multi-functional unit that can handle various computation tasks locally, reducing data transfer overhead while maintaining processing flexibility.
Solution Approach 2:
The data storage device acts as an intermediary between data storage and data processing operations. Instead of requiring all processing to occur on the host compute device, the storage device serves as a local intermediary that can execute computation kernels directly on stored data, eliminating the need for data to traverse to and from host memory and reducing overall data transfer overhead.
Data Source
AI summary
Technologies for data processing or computation on data storage devices include a data storage controller. The data storage controller is configured to receive a data request from a compute device, determine an input data range specified by the compute device to be processed in the data storage device without sending data located at the input data to the compute device, read input data from the input data range, perform a data operation on the input data specified by the compute device to generate output data, and write the output data to an output data range specified by the compute device.


