HBM Predictor分层预测模型详解:从服务器级到bank级的全方位故障预测

HBM Predictor分层预测模型详解:从服务器级到bank级的全方位故障预测

【免费下载链接】hbm-predictorthis project is an in-depth>项目地址: https://gitcode.com/openeuler/hbm-predictor

前往项目官网免费下载:https://ar.openeuler.org/ar/

HBM Predictor是一个分层级、全方位、非侵入式的高带宽内存(HBM)故障预测框架,由厦门大学与华为2012庞加莱实验室合作开发。该项目基于从19个数据中心收集的真实故障数据,构建了从服务器级到bank级的多层预测模型,为HBM可靠性研究提供了完整的分析工具和开源数据集。

🌟 项目核心价值:突破内存墙的关键一步

HBM作为突破"内存墙"的关键技术,其可靠性问题直接影响数据中心的稳定性。HBM Predictor通过数据驱动的分析方法,揭示了HBM故障的内在规律,并提供了精准的故障预测能力。项目成果已发表于USENIX ATC'24学术会议,论文标题为《Removing Obstacles before Breaking Through the Memory Wall: A Close Look at HBM Errors in the Field》。

主要功能亮点

  • 多层级预测:支持服务器级、bank级、行级(row)和列级(col)四个层级的故障预测
  • 非侵入式设计:无需修改硬件或中断服务即可实现实时监测
  • 高预测精度:采用优化阈值的随机森林算法,F1分数最高可达0.819
  • 开源数据集:包含脱敏的真实HBM故障数据,促进学术界进一步研究

📊 数据集解析:来自19个数据中心的真实故障记录

项目提供的数据集位于data目录下,分为原始数据和处理后数据两个部分,全面反映了HBM在实际应用中的故障特征。

原始数据(raw_data)

原始数据文件dataset(opensource).csv记录了错误发生的位置、时间和类型等详细信息,包含以下关键字段:

DatacenterServerNameStackSIDPcIdBankGroupBankArrayColRowTimeEccType
Datacenter80.108.38.22DSA30x30x00x10x20x10x540x3e2b1650690000UER

处理后数据(processed_data)

处理后的数据针对不同预测层级进行了特征工程,生成四个CSV文件:

  • data_for_bank-level_prediction.csv:bank级预测数据
  • data_for_col-level_prediction.csv:列级预测数据
  • data_for_row-level_prediction.csv:行级预测数据
  • data_for_server-level_prediction.csv:服务器级预测数据

以bank级预测数据为例,包含功率、温度、错误计数等特征:

Peak PowerAver PowerTempCE_RowCE_ColCE_CellUER_RowUER_ColUER_CellUEO_RowUEO_ColUEO_CellAll_RowAll_ColAll_CellSID_0SID_1label
111111000000111100

⚠️ 注意:数据集中的敏感信息已进行脱敏处理,确保数据安全与隐私保护。

🔍 分层预测模型架构:从宏观到微观的全方位监测

HBM Predictor采用分层设计思想,针对HBM不同层级的故障特征构建专用预测模型,实现从整体系统到局部存储单元的全面监测。

预测层级划分

  1. 服务器级预测:最高层级的预测,关注整台服务器的HBM健康状态
  2. bank级预测:针对HBM内存bank的故障预测,属于中层监测
  3. 行级(row)预测:对内存行单元的精细化预测
  4. 列级(col)预测:对内存列单元的精细化预测

核心预测算法

项目采用随机森林(Random Forest)算法作为基础预测模型,并通过优化阈值提高预测性能。关键实现代码位于prediction/prediction_performance.py,核心参数设置如下:

rf_classifier = RandomForestClassifier( n_estimators=200, max_depth=50, class_weight="balanced", criterion="entropy", min_samples_leaf=100, min_samples_split=100 )

各层级预测性能

通过调整不同阈值,各层级模型实现了优异的预测效果:

  • 行级预测:优化阈值0.55时,F1分数达0.779
  • 列级预测:优化阈值0.6时,F1分数达0.790
  • bank级预测:优化阈值0.55时,F1分数达0.701
  • 服务器级预测:优化阈值0.6时,F1分数达0.419

📌 提示:由于机器学习模型的随机性,每次运行结果可能会略有不同。

🚀 快速上手:安装与使用指南

环境准备

确保系统已安装Python 3.6或更高版本,然后克隆项目并安装依赖:

git clone https://gitcode.com/openeuler/hbm-predictor cd hbm-predictor pip3 install -r requirements.txt

运行预测模型

预测模块位于prediction目录下,包含四个核心文件:

  • prediction_performance.py:测试HBM预测器性能
  • diff_model.py:不同模型对比实验
  • diff_observation_window.py:观测窗口大小影响实验
  • diff_prediction_window.py:预测窗口大小影响实验

以测试预测性能为例,执行以下命令:

cd prediction python3 prediction_performance.py

运行后将在控制台输出各层级预测结果,并将详细数据保存至data/processed_data/result目录下的CSV文件中。

📁 项目结构解析

项目代码组织清晰,主要分为分析和预测两大模块:

分析模块(analyses)

analyses目录包含9个分析不同错误特征的代码文件,深入探索HBM故障模式:

  • avg_temp_distribution.py:平均温度分布分析
  • ce_storm_machine.py:CE错误风暴分析
  • dataset_analyze.py:数据集总体分析
  • error_mode.py:错误模式分析
  • max_temp_distribution.py:最高温度分布分析
  • power_impact.py:功率影响分析
  • spatial_locality.py:空间局部性分析
  • structure_impact.py:结构影响分析
  • time_between_error.py:错误间隔时间分析

预测模块(prediction)

prediction目录包含4个预测相关文件,实现了分层预测功能:

  • prediction_performance.py:预测性能测试
  • diff_model.py:不同模型比较
  • diff_observation_window.py:观测窗口差异实验
  • diff_prediction_window.py:预测窗口差异实验

📚 引用与学术交流

如果您在研究中使用了本项目的数据集或代码,请引用我们的论文:

@inproceedings {298591, author = {Ronglong Wu and Shuyue Zhou and Jiahao Lu and Zhirong Shen and Zikang Xu and Jiwu Shu and Kunlin Yang and Feilong Lin and Yiming Zhang}, title = {Removing Obstacles before Breaking Through the Memory Wall: A Close Look at {HBM} Errors in the Field}, booktitle = {2024 USENIX Annual Technical Conference (USENIX ATC 24)}, year = {2024}, isbn = {978-1-939133-41-0}, address = {Santa Clara, CA}, pages = {851--867}, url = {https://www.usenix.org/conference/atc24/presentation/wu-ronglong}, publisher = {USENIX Association}, month = jul }

HBM Predictor项目为HBM可靠性研究提供了宝贵的实践经验和开源工具,期待与学术界和工业界的同仁共同推动HBM技术的发展与应用!

【免费下载链接】hbm-predictorthis project is an in-depth>项目地址: https://gitcode.com/openeuler/hbm-predictor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考