Efficient GPU Implementation for Single Block Orthogonal Dictionary Learning

Paul Irofti

Abstract


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 an improved parallel version of the algorithm called P-SBO that reduces the representation error and improves the execution time using a GPGPU approach of implementing P-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 partitioned global address space strategies 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 and an improved representation error for the dictionary learning process.

Keywords


sparse representation;dictionary design;parallel algorithm;GPU;OpenCL

Full Text: PDF