[论文解读] A Static Analysis-based Cross-Architecture Performance Prediction Using Machine Learning
本文提出 Static XAPP,一种机器学习框架,仅通过单线程 CPU 源代码的静态分析即可预测跨架构 GPU 加速比。通过静态分析提取 10 个程序属性,并在离散化加速比阈值上训练随机森林分类器,该方法在不同截止值下实现了 94% 的平均二分类准确率,表明仅靠静态特征即可实现高精度性能预测,而无需动态执行或人工输入。
Porting code from CPU to GPU is costly and time-consuming; Unless much time is invested in development and optimization, it is not obvious, a priori, how much speed-up is achievable or how much room is left for improvement. Knowing the potential speed-up a priori can be very useful: It can save hundreds of engineering hours, help programmers with prioritization and algorithm selection. We aim to address this problem using machine learning in a supervised setting, using solely the single-threaded source code of the program, without having to run or profile the code. We propose a static analysis-based cross-architecture performance prediction framework (Static XAPP) which relies solely on program properties collected using static analysis of the CPU source code and predicts whether the potential speed-up is above or below a given threshold. We offer preliminary results that show we can achieve 94% accuracy in binary classification, in average, across different thresholds
研究动机与目标
- 为解决将 CPU 代码移植到 GPU 所带来的高成本和不确定性,通过早期预测潜在加速比来实现。
- 消除对动态二进制仪器化或手动特征估算的依赖,这些方法耗时且易出错。
- 开发一种仅使用 CPU 源代码静态分析的框架,以预测程序在 GPU 上是否能获得高或低加速比。
- 通过提供快速、自动化的性能预测,实现与 IDE 和设备放置优化的实用集成。
- 证明静态程序属性足以解释跨架构性能预测,挑战了动态执行为必要条件的假设。
提出的方法
- 该框架通过在单线程 CPU 代码上进行静态分析,收集 10 个程序属性,如内存访问模式、循环结构和数据依赖性。
- 使用等频分箱法将特征值离散化为两到三个等级,以提高鲁棒性并减少噪声。
- 根据用户定义的截止阈值,将输出加速比离散化为两类——低或高,以支持二分类。
- 使用 1000 棵树的随机森林分类器在标记数据集上进行训练,每棵树使用特征和训练样本的随机子集。
- 通过在多个 GPU 平台和截止值上使用留一法交叉验证(LOOCV)评估模型,以评估其稳定性和泛化能力。
- 数据集来自基准套件(Lonestar、Rodinia、NAS),并通过添加自定义微基准测试来扩充,以包含负样本(GPU 潜力差的候选程序)。
实验结果
研究问题
- RQ1仅通过 CPU 源代码的静态分析,能否预测程序在 GPU 上是否能获得高或低加速比?
- RQ2在静态特征上训练的机器学习模型,在不同 GPU 平台上的跨架构性能预测中准确率如何?
- RQ3模型准确率如何随不同的加速比截止阈值和平台特定性能特征而变化?
- RQ4当加速比类别数量超过二分类时,该框架能否保持高准确率和稳定性?
- RQ5鉴于高质量 GPU 优化内核数量有限,该框架对数据集偏差和小样本量是否具有鲁棒性?
主要发现
- 在不同加速比截止阈值和 GPU 平台下,该框架在二分类中的平均交叉验证准确率达到 94%。
- 在平台 1(GTX 750,Maxwell)上,准确率范围为 79%(最低)至 97%(最高),在不同截止阈值下的平均值为 86%。
- 在平台 2(GTX 660 Ti,Kepler)上,准确率范围为 76.5%(最低)至 89%(最高),在不同截止阈值下的平均值为 83%。
- 该模型对截止值变化和平台特定性能分布的变化保持稳健,表明其泛化能力强。
- 多分类准确率随加速比分箱数量增加而下降,这符合预期(因每类数据减少),但模型在 2 至 5 个类别的场景下仍表现可靠。
- 本研究证明,静态程序属性足以解释性能预测,挑战了动态执行或人工输入为必要条件的假设。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。