Abstract

Recently, there have been significant advances in deep neural networks (DNNs) and they have shown distinctive performance in speech recognition, natural language processing, and image recognition. In this paper, we explore DNNs to push the limit for branch prediction. We treat branch prediction as a classification problem and employ both deep convolutional neural networks (CNNs), ranging from LeNet to ResNet-50, and deep belief network (DBN) for branch prediction. We compare the effectiveness of DNNs with the state-of-the-art branch predictors, including the perceptron, our prior work, Multi-poTAGE+SC, and MTAGE+SC branch predictors. The last two are the most recent winners of championship branch prediction (CBP) contests. Several interesting observations emerged from our study. First, for branch prediction, the DNNs outperform the perceptron model as high as 60-80%. Second, we analyze the impact of the depth of CNNs (i.e., number of convolutional layers and pooling layers) on the misprediction rates. The results confirm that deeper CNN structures can lead to lower misprediction rates. Third, the DBN could outperform our prior work, but not outperform the state-of-the-art TAGE-like branch predictor; the ResNet-50 could not only outperform our prior work, but also the Multi-poTAGE+SC and MTAGE+SC.

Highlights

  • The ever-increasing computational power is a key factor for recent advances in deep learning

  • We found deep convolutional neural networks (CNNs) algorithms could achieve lower misprediction rates than state-of-the-art branch predictors, Multi-poTAGE+SC and MTAGE+SC, with unlimited storage limits

  • 4th Championship Branch Prediction (CBP-4) which was held with 41th ACM/IEEE International Symposium of Computer Architecture(ISCA-41)

Read more

Summary

Introduction

The ever-increasing computational power is a key factor for recent advances in deep learning. The reason is that the outcome of the conditional branch, i.e., ‘Taken’ or ‘Not Taken’, is computed late in the pipeline, i.e., the execution stage after it is fetched, decoded, and dispatched. In this case, the pipeline would have to wait for the branch outcome before the instruction can be fetched. The pipeline would have to wait for the branch outcome before the instruction can be fetched To avoid this situation, branch prediction, which guesses the branch outcome before it is executed, is commonly used to continue fetching and executing instructions along the predicted paths

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call