1. An information processing system comprising: at least one host processor; main memory, communicatively coupled with the at least one host processor; non-volatile memory, communicatively coupled with the at least one host processor; a radix sort memory manager stored in the non-volatile memory and communicatively coupled with the at least one host processor for radix sort processing data elements in an array in main memory; and an application specific integrated circuit radix sort accelerator (Accelerator), communicatively coupled with the at least one host processor and the main memory, the Accelerator and the host processor contemporaneously share access to the data elements in the array in the main memory in a data streaming architecture in which the Accelerator radix sort processes the data elements in the array in main memory, the Accelerator comprising: buffer memory for at least storing data elements from the array in main memory in a plurality of radix sort buckets in the buffer memory, the buffer memory capacity to store data elements from the array in the main memory being a small portion of the array of data elements in the main memory; a plurality of radix sort processors for radix sort processing the data elements in each radix sort bucket in the plurality of radix sort buckets in the buffer memory in the Accelerator; and a pre-fetching engine for copying a small portion of the data elements from the array in the main memory to the buffer memory in the Accelerator to be radix sort processed, and for transferring data elements, in the data streaming architecture, between the array in main memory and a radix sort bucket selected by the pre-fetching engine from the plurality of radix sort buckets in the buffer memory in the Accelerator, the pre-fetching engine predicting which data elements will be needed in a near future radix sort process in the Accelerator, transferring the needed data elements, and hiding memory latency when accessing the array of data elements in the main memory, wherein the pre-fetching engine transfers at least one data element from the array in main memory to the selected radix sort bucket, based on determining that a total number of data elements in the selected radix sort bucket reaches a low threshold of data elements remaining to be radix sort processed by the plurality of radix sort processors, and wherein the pre-fetching engine transfers at least one data element from the selected radix sort bucket to the array in main memory, based on determining that a total number of data elements in the selected radix sort bucket reaches a high threshold of data elements remaining to be radix sort processed by the plurality of radix sort processors.