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

3Citations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

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.

Cite

CITATION STYLE

APA

Chen, T. L., Chien, S. H., & Lee, J. K. (2018). ViennaCL++: Enable TensorFlow/Eigen via ViennaCL with OpenCL C++ flow. In ACM International Conference Proceeding Series. Association for Computing Machinery. https://doi.org/10.1145/3204919.3207894

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free