Logo image
ViennaCL++: Enable TensorFlow/Eigen via ViennaCL with OpenCL C++ flow
Conference paper

ViennaCL++: Enable TensorFlow/Eigen via ViennaCL with OpenCL C++ flow

Tai-Liang Chen, Shih-Huan Chien and Jenq-Kuen Lee
ACM International Conference Proceeding Series, 3207894
05/2018

Abstract

C++ OpenCL Shared virtual memory SPIR-V TensorFlow ViennaCL Human-Computer Interaction Computer Networks and Communications Computer Vision and Pattern Recognition Software
This paper presents the ViennaCL++, an OpenCL C++ kernel library for Vienna Computing Library (ViennaCL) combined with TensorFlow/Eigen library to enable acceleration and optimization of linear algebraic computing. Previously, TensorFlow would invoke Eigen for solvers. To enable OpenCL flow, one can invoke Eigen via ViennaCL to generate kernel programs for GPU computation. In order to support the features of the latest specification, the linear algebraic kernel library is migrated to OpenCL C++ with C++ features in ViennaCL++ to construct the OpenCL flow for TensorFlow and its underlying computational library Eigen. The software flow is based on the state-of-the-art specification of OpenCL and OpenCL C++ kernel langauge, as well as SPIR-V binary intermediate representation. The experimental results of ViennaCL++ which includes C++ class and SPIR-V flow are achieving 8 times and 49 times speedup for BLAS2 and BLAS3 operations compared to Eigen library on the x86_64 of Intel hardware. Overall, these results indicate that the performance of ViennaCL++ runtime execution with OpenCL C++ and SPIR-V flow is similar to traditional OpenCL C flow. Note that the Intel OpenCL 2.1 compiler is equipped with most Khronos OpenCL 2.2 (OpenCL C++) linguistic to support the experiment.

Metrics

1 Record Views

Details

Logo image