Efficient GPU Implementation for Single Block Orthogonal Dictionary Learning
This work addresses efficiency issues in dictionary learning for researchers and practitioners in signal processing or machine learning, but it is incremental as it focuses on optimizing an existing algorithm.
The paper tackles the problem of slow dictionary training for sparse representations by implementing the Single Block Orthogonal (SBO) algorithm on GPUs using OpenCL, resulting in a significant acceleration of execution time compared to the standard PAK-SVD approach.
Dictionary training for sparse representations involves dealing with large chunks of data and complex algorithms that determine time consuming implementations. SBO is an iterative dictionary learning algorithm based on constructing unions of orthonormal bases via singular value decomposition, that represents each data item through a single best fit orthobase. In this paper we present a GPGPU approach of implementing SBO in OpenCL. We provide a lock-free solution that ensures full-occupancy of the GPU by following the map-reduce model for the sparse-coding stage and by making use of the Partitioned Global Address Space (PGAS) model for developing parallel dictionary updates. The resulting implementation achieves a favourable trade-off between algorithm complexity and data representation quality compared to PAK-SVD which is the standard overcomplete dictionary learning approach. We present and discuss numerical results showing a significant acceleration of the execution time for the dictionary learning process.