Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program

Automatic vectorization is crucial for improving the performance of computationally intensive programs. Existing compilers use conservative optimization strategies for automatic vectorization, which, in many cases, lead to the loss of vectorization opportunity. Studies have shown that the use of mac...

Full description

Bibliographic Details
Main Authors: Hui Liu, Rongcai Zhao, Kai Nie
Format: Article
Language:English
Published: IEEE 2018-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/8445573/
_version_ 1819172095640207360
author Hui Liu
Rongcai Zhao
Kai Nie
author_facet Hui Liu
Rongcai Zhao
Kai Nie
author_sort Hui Liu
collection DOAJ
description Automatic vectorization is crucial for improving the performance of computationally intensive programs. Existing compilers use conservative optimization strategies for automatic vectorization, which, in many cases, lead to the loss of vectorization opportunity. Studies have shown that the use of machine learning algorithms to build a performance prediction model is beneficial to improve the program performance. The model input is program features, and the output is the predicted optimization strategies or the program performance related to the optimization. In this paper, we focus on a computational intensive loop structure-tensor contraction, which is common in quantum chemical simulations. Most existing machine learning methods rely on control and data flow graphs as features to represent programs, but different tensor contraction kernels have the same control and data flow graphs. In addition, the existing methods often use the same kind of learning algorithm to construct a learning model, which is prone to overfitting and low-precision problems. In this paper, we propose an automatic vectorization performance enhancement method based on ensemble learning. We construct an ensemble learning model to predict the performance of tensor contraction kernels with different vectorization strategies and select the best vectorization strategy for the kernels. According to the storage access patterns of the tensor contraction kernels, we propose a static method for features representation. Based on the multi-algorithm ensemble learning strategy, we obtain better learning results than the single learning algorithm. The experimental results show that the prediction model achieves 88% and 87% prediction efficiency on two different platforms with different instruction sets, data types, and compilers. Compared with the existing methods, the prediction efficiency is greatly improved. In addition, the average peak performance is 2.96× of Intel ICC 12.0 and 2.98× of GCC 4.6 compiler, respectively.
first_indexed 2024-12-22T20:01:44Z
format Article
id doaj.art-cd4a19c1313a4644b5c7cb7fb43c17c7
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-12-22T20:01:44Z
publishDate 2018-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-cd4a19c1313a4644b5c7cb7fb43c17c72022-12-21T18:14:16ZengIEEEIEEE Access2169-35362018-01-016471124712410.1109/ACCESS.2018.28671518445573Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction ProgramHui Liu0https://orcid.org/0000-0002-9607-8069Rongcai Zhao1Kai Nie2State Key Laboratory of Mathematical Engineering and Advanced Computing, PLA Information Engineering University, Zhengzhou, ChinaState Key Laboratory of Mathematical Engineering and Advanced Computing, PLA Information Engineering University, Zhengzhou, ChinaState Key Laboratory of Mathematical Engineering and Advanced Computing, PLA Information Engineering University, Zhengzhou, ChinaAutomatic vectorization is crucial for improving the performance of computationally intensive programs. Existing compilers use conservative optimization strategies for automatic vectorization, which, in many cases, lead to the loss of vectorization opportunity. Studies have shown that the use of machine learning algorithms to build a performance prediction model is beneficial to improve the program performance. The model input is program features, and the output is the predicted optimization strategies or the program performance related to the optimization. In this paper, we focus on a computational intensive loop structure-tensor contraction, which is common in quantum chemical simulations. Most existing machine learning methods rely on control and data flow graphs as features to represent programs, but different tensor contraction kernels have the same control and data flow graphs. In addition, the existing methods often use the same kind of learning algorithm to construct a learning model, which is prone to overfitting and low-precision problems. In this paper, we propose an automatic vectorization performance enhancement method based on ensemble learning. We construct an ensemble learning model to predict the performance of tensor contraction kernels with different vectorization strategies and select the best vectorization strategy for the kernels. According to the storage access patterns of the tensor contraction kernels, we propose a static method for features representation. Based on the multi-algorithm ensemble learning strategy, we obtain better learning results than the single learning algorithm. The experimental results show that the prediction model achieves 88% and 87% prediction efficiency on two different platforms with different instruction sets, data types, and compilers. Compared with the existing methods, the prediction efficiency is greatly improved. In addition, the average peak performance is 2.96× of Intel ICC 12.0 and 2.98× of GCC 4.6 compiler, respectively.https://ieeexplore.ieee.org/document/8445573/Automatic vectorizationcompiler optimizationensemble learningprogram features
spellingShingle Hui Liu
Rongcai Zhao
Kai Nie
Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
IEEE Access
Automatic vectorization
compiler optimization
ensemble learning
program features
title Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
title_full Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
title_fullStr Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
title_full_unstemmed Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
title_short Using Ensemble Learning to Improve Automatic Vectorization of Tensor Contraction Program
title_sort using ensemble learning to improve automatic vectorization of tensor contraction program
topic Automatic vectorization
compiler optimization
ensemble learning
program features
url https://ieeexplore.ieee.org/document/8445573/
work_keys_str_mv AT huiliu usingensemblelearningtoimproveautomaticvectorizationoftensorcontractionprogram
AT rongcaizhao usingensemblelearningtoimproveautomaticvectorizationoftensorcontractionprogram
AT kainie usingensemblelearningtoimproveautomaticvectorizationoftensorcontractionprogram