Quangmire / voyager

MIT License
14 stars 8 forks source link

Too low accuracy.. #1

Open HDDisBetterThanSSD opened 11 months ago

HDDisBetterThanSSD commented 11 months ago

Hello! I am new to ML prefetcher, I have some questions about ML prefetcher.

When I trained voyager for SPEC 2006, the model was trained very well. (Bulk training astar, mcf, omnetpp, soplex, sphinx3, xalancbmk for many timelines with 50M instruction interval. Accuracy for train dataset is almost 95%)

From the bulk training, I found some proper timelines (specific timeline, not the generally) for sphinx3 and xalancbmk. However, the model showed very low accuracy for other workloads like mcf, astar, omnetpp soplex.

So, my questions are... 1) Is it difficult for ML prefetchers(including voyager) to generally perform well for all timelines? 2) How to find the proper timeline? (I think, other hyperparameters (eg. batch size) cannot improve the validation accuracy much)

Quangmire commented 11 months ago

(a) For mcf, astar, and omnetpp, they tend to have large memory footprints, so the page prediction task can be difficult regardless of the interval length as there are just more pages to learn the relationships for.

(b) In addition, ML temporal prefetchers are limited by the training set since they are effectively unable to predict addresses that did not occur in the training set.

(c) As for hyperparameter tuning (including the interval length), the best parameters can vary significantly depending on the benchmark you're running. Increasing the size of the training set can improve the performance of the model. Likewise, increasing the size of the validation / test set or having it be chronologically further away from where the training set occurs in the program execution can significantly worsen performance due to (b).

HDDisBetterThanSSD commented 11 months ago

Thank you for the reply! Your comment is very helpful to my research. I'll try what you sugessted :)