  Most existing data preprocessing is done at the CPU. Although some studies
use techniques such as multi-processing and double buffering to accelerate CPU
preprocessing, CPU computational speed and storage bandwidth still limit the
processing speed. Other studies try to use intelligent data storage devices,
such as computational storage devices, to complete data preprocessing instead
of CPUs. The current studies use only one device to complete data preprocessing
operations, which cannot fully overlap data preprocessing and accelerator
computation time. To fully exploit the independence and high bandwidth of the
novel CSD, this paper proposes an advanced, highly parallel dual-pronged data
preprocessing algorithm (DDLP) that significantly improves the execution
efficiency and computational overlap between heterogeneous devices. DDLP
enables the CPU and CSD to start data preprocessing operations from both ends
of the dataset separately. Meanwhile, we propose two adaptive dynamic selection
strategies to make DDLP control the GPU to automatically read data from
different sources. We achieve sufficient computational overlap between CSD data
preprocessing and CPU preprocessing, GPU computation, and GPU data reading. In
addition, DDLP leverages GPU Direct Storage technology to enable efficient
SSD-to-GPU data transfer. DDLP reduces the usage of expensive CPU and DRAM
resources, reduces the number of SSD-to-GPU data transfers, and improves the
energy efficiency of preprocessing while reducing the overall preprocessing and
training time. Extensive experimental results show that DDLP can improve
learning speed by up to 23.5% on ImageNet Dataset while reducing energy
consumption by 19.7% and CPU and DRAM usage by 37.6%. DDLP also improve
learning speed by up to 27.6% on Cifar-10 Dataset.
