Patent classifications
G06F7/26
Methods, Systems, and Circuits for Coordinated Optimization in In-Memory Sorting
Disclosed herein are systems, methods, and computer-readable media for sorting datasets within a Processing in Memory (PIM)-based system. A request to sort a dataset stored in a 3D-stacked memory can be received. The request can identify a specific dataset and sorting criteria, which includes a plurality of keys. The dataset can be partitioned into several subarrays across various memory banks within the 3D-stacked memory. Each piece of data within these subarrays can be separated into buckets based on the keys. Local histograms for each subarray and bank histograms based on the local histograms can be generated. A prefix-sum operation on the bank histograms can determine individual positions for the sorted dataset. Aggregation of the subarrays from all memory banks can form the sorted dataset, which can be subsequently returned.
FAST SORT ENGINE
A method of sorting an array of data elements, the method includes assigning values associated with a monotonic function to the data elements, and sorting the array of data elements by sorting the monotonic function values using a least significant digit (LSD) Radix sort.
FAST SORT ENGINE
A method of sorting an array of data elements, the method includes assigning values associated with a monotonic function to the data elements, and sorting the array of data elements by sorting the monotonic function values using a radix sort.
FAST SORT ENGINE
A method of sorting an array of data elements, the method includes assigning values associated with a monotonic function to the data elements, and sorting the array of data elements by sorting the monotonic function values using a radix sort.
PROCESSING OF DATA ARRAYS AND APPLICATIONS INCLUDING IMAGE PROCESSING
The disclosed technology can be implemented to provide a method for processing data including representing original data in form of a number array with one or more row elements and one or more column elements based on the original data, re-arranging elements of the number array based on properties of corresponding elements in the number array and properties of other elements of the number array to form a re-arranged number array, modifying values of elements of the re-arranged number array by superposing a product of an amplitude variable A and values of a function F selecting from an ensemble of functions, and re-arranging the elements of re-arranged number array with the modified values of elements to generate a modified number array. The amplitude variable A is computed to optimize a cost function associated with the amplitude variable A, the respective function F, and elements of the number array.
PROCESSING OF DATA ARRAYS AND APPLICATIONS INCLUDING IMAGE PROCESSING
The disclosed technology can be implemented to provide a method for processing data including representing original data in form of a number array with one or more row elements and one or more column elements based on the original data, re-arranging elements of the number array based on properties of corresponding elements in the number array and properties of other elements of the number array to form a re-arranged number array, modifying values of elements of the re-arranged number array by superposing a product of an amplitude variable A and values of a function F selecting from an ensemble of functions, and re-arranging the elements of re-arranged number array with the modified values of elements to generate a modified number array. The amplitude variable A is computed to optimize a cost function associated with the amplitude variable A, the respective function F, and elements of the number array.
Harvesting addresses
Some embodiments of the invention provide an address harvester that harvests addresses from one or more applications executing on a device. Some embodiments use the harvested addresses to facilitate the operation of one or more applications executing on the device. Alternatively, or conjunctively, some embodiments use the harvested addresses to facilitate the operation of one or more applications executing on another device than the one used for harvesting the addresses. In some embodiments, a prediction system uses the harvested addresses to formulate predictions, which it then provides to the same set of applications from which it harvested the addresses in some embodiments.
Harvesting addresses
Some embodiments of the invention provide an address harvester that harvests addresses from one or more applications executing on a device. Some embodiments use the harvested addresses to facilitate the operation of one or more applications executing on the device. Alternatively, or conjunctively, some embodiments use the harvested addresses to facilitate the operation of one or more applications executing on another device than the one used for harvesting the addresses. In some embodiments, a prediction system uses the harvested addresses to formulate predictions, which it then provides to the same set of applications from which it harvested the addresses in some embodiments.
Reformatting Matrices to Improve Computing Efficiency
A data ordering device includes a plurality of inputs N and a plurality of outputs M. There is a sorting network coupled between the plurality of inputs N and the plurality of outputs M. There are one or more latches comprising a buffer coupled between each input of the plurality of inputs N and a corresponding input of the sorting network. There are one or more latches comprising a buffer coupled between each output of the plurality of outputs M and a corresponding output of the sorting network. There is an input for a control signal operative to initiate a sorting of data between the plurality of inputs N and the plurality of outputs M. The data ordering device is coupled to a core of a central processing unit.
Positional indexing for a tiered data storage system
The system and methods disclosed herein relate to an improvement in automated data tiering technology. The systems and methods disclosed herein enhance database storage performance characteristics in myriad ways. First, the speed with which data can be relocated from one tier to another in a tiered data storage system is increased by reducing the number of sort cycles required to perform data relocation. In addition, data relocation among the tiers is performed on the backend by an offload engine, which results in uninterrupted access to read/write commands within the data storage system from a user's perspective on the frontend. Third, users are able to adjust the percentages of hot or cold data that are relocated within the database without having to alter the service level agreements. In this way, users can make spontaneous changes to performance characteristics related to the promotion and demotion of data stored within a tiered data storage system.