内存EDAC在AMD异构场景的应用

在异构系统中,AMD通过将CPU与GPU的数据织物网络通过定制的xGMI链接连接,实现了统一访问,使得GPU节点的数据织物网络如同CPU节点一样可访问。这样的设计使得系统能够高效地整合CPU与GPU资源,提升数据处理速度和效率,特别是在处理密集型计算任务中。

在异构系统中,AMD GPU的内存控制器可以通过EDAC(Error Detection And Correction)框架进行表示和管理,具体层级如下:

GPU DF(数据织物网络) -> EDAC MC GPU UMC(统一内存控制器) -> EDAC CSROW UMC通道 -> EDAC CHANNEL

例如,一个包含一个AMD CPU与四个 MI200 GPU通过xGMI相连的异构系统。这种系统在EDAC子系统下,通过调用CPU与GPU特定的操作来处理异构硬件,GPU节点按照PCI层级顺序枚举,第一个GPU节点ID紧随CPU节点后,后续GPU节点按此规律递增。

具体到AMD MI200加速器(数据中心GPU)的异构实例中,每个GPU具有两个数据织物网络,每个网络包含四个统一内存控制器(UMC),每个UMC又含有八个通道。每个UMC通道控制一个128位HBM2e(即2GB)通道,相当于8个2GB Rank)。这形成了总共4096位的DRAM数据总线。

/sysfs目录下,异构系统中CPU与GPU节点的EDAC表示如下:

$ ls /sys/devices/system/edac/mc/mc0   - CPU MC node 0mc1  |mc2  |- GPU card[0] => node 0(mc1), node 1(mc2)mc3  |mc4  |- GPU card[1] => node 0(mc3), node 1(mc4)mc5  |mc6  |- GPU card[2] => node 0(mc5), node 1(mc6)mc7  |mc8  |- GPU card[3] => node 0(mc7), node 1(mc8)

每个GPU节点(例如GPU卡1)下,包含两个MC节点(如mc1与mc2),每个MC节点(如mc1)下有四个UMC(csrow),每个UMC有八个通道,通道与内存大小等信息。

/sys/devices/system/edac/mc/..CPU                     # CPU node
├── mc 0GPU Nodes are enumerated sequentially after CPU nodes have been populated
GPU card 1              # Each MI200 GPU has 2 nodes/mcs
├── mc 1                # GPU node 0 == mc1, Each MC node has 4 UMCs/CSROWs
│   ├── csrow 0         # UMC 0
│   │   ├── channel 0   # Each UMC has 8 channels
│   │   ├── channel 1   # size of each channel is 2 GB, so each UMC has 16 GB
│   │   ├── channel 2
│   │   ├── channel 3
│   │   ├── channel 4
│   │   ├── channel 5
│   │   ├── channel 6
│   │   ├── channel 7
│   ├── csrow 1         # UMC 1
│   │   ├── channel 0
│   │   ├── ..
│   │   ├── channel 7
│   ├── ..              ..
│   ├── csrow 3         # UMC 3
│   │   ├── channel 0
│   │   ├── ..
│   │   ├── channel 7
│   ├── rank 0
│   ├── ..              ..
│   ├── rank 31         # total 32 ranks/dimms from 4 UMCs
├
├── mc 2                # GPU node 1 == mc2
│   ├── ..              # each GPU has total 64 GBGPU card 2
├── mc 3
│   ├── ..
├── mc 4
│   ├── ..GPU card 3
├── mc 5
│   ├── ..
├── mc 6
│   ├── ..GPU card 4
├── mc 7
│   ├── ..
├── mc 8
│   ├── ..

sysfs中,EDAC(Error Detection and Correction)相关的条目通常位于/sys/devices/system/edac/之下,其中mc目录包含了内存控制器(Memory Controller)的信息。对于这个特定的异构系统,我们可以预期看到如下结构:

  1. CPU的内存控制器:

    • /sys/devices/system/edac/mc/mc0/: 这里代表了CPU的内存控制器0,下面可能包含有关错误纠正和检测的信息,如ce_countue_count

  1. GPU的内存控制器:

    • GPU的内存控制器则按照它们在系统中的发现顺序被分配不同的mc编号。由于有4块GPU,每块GPU有两个内存控制器(因为每个GPU有两个数据织物网络,每个网络有一个UMC),所以会有8个额外的mc条目。

    • 例如,/sys/devices/system/edac/mc/mc1/sys/devices/system/edac/mc/mc8分别代表了四个GPU的八个内存控制器。每个GPU的内存控制器下,可能会有类似CPU的错误统计信息,以及更具体的csrow(内存控制器选择)和channel(通道)信息,反映GPU内存组织结构。

以GPU部分为例,假设mc1代表了第一个GPU的第一个数据织物网络的内存控制器,则其下的结构可能如下:

  • /sys/devices/system/edac/mc/mc1/

    • csrow0: 第一个UMC,每个UMC作为EDAC的一个csrow条目。

    • channel0channel7: 表示该UMC下的8个通道,每个通道可能有各自的错误统计信息。

    • csrow1csrow3: 分别对应其余三个UMC,每个同样管理8个通道。

这个结构反映了GPU的内存布局,每个GPU的UMC被视为一个csrow,而UMC内的通道则直接映射为channel。这样的组织方式允许系统监控和管理每个GPU内存模块的错误情况,无论是可纠正的还是不可纠正的错误。

EDAC子系统为AMD异构系统提供了处理机制,通过调用特定于系统CPU与GPU的操作,实现了对异构硬件的支持与错误检测与纠正,提升了系统的可靠性和维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从河流到空气,BL340工控机助力全面环保监测网络构建

在环保监测领域,智能化、高效率的监测手段正逐步成为守护绿水青山的新常态。其中,ARMxy工业计算机BL340凭借其强大的处理能力、高度的灵活性以及广泛的兼容性,在水质监测站、空气质量检测、噪音污染监控等多个环保应用场景中脱颖而出&#xf…

MySQL深分页优化

MySQL中的深分页问题通常是指当我们通过LIMIT语句查询数据,尤其是在翻到较后面的页码时,性能会急剧下降。例如,查询第1000页的数据,每页10条,系统需要跳过前9990条数据,然后才能获取到所需的记录&#xff0…

Vue基础面试题(一)

1.Vue的基本原理 Vue.js的核心原理在于其响应式的数据绑定机制,当创建一个Vue实例时,Vue会遍历每个属性,用Object.defineProperty转化为getter和setter。这样使得Vue可以追踪属性的变化,在属性被修改和访问时通知变化。每个组件也…

PostgreSQL的视图pg_tables

PostgreSQL的视图pg_tables pg_tables 是 PostgreSQL 中的一个系统视图,用于显示当前数据库中所有用户定义的表的信息。这个视图提供了关于表的名称、所属模式(schema)、所有者以及表类型等详细信息。 pg_tables 视图的主要列 列名类型描述…

如何提高个人和企业的网络安全意识?

提高个人网络安全意识 个人可以通过以下方式提高网络安全意识: 1. 加强教育和培训:参加网络安全培训课程,学习识别网络攻击的常见迹象、安全密码的设置、不点击可疑链接等知识。 2. 建立网络安全政策:制定个人网络安全规则&…

【Linux】进程3——PID/PPID,父进程,子进程

在讲父子进程之前,我们接着上面那篇继续讲 1.查看进程 mycode.c makefile 我们在zs_108直接编译mycode.c,直接运行,然后我们转换另一个账号来查看这个进程 我们可以通过ps指令来查看进程 我们就会好奇了,第二行是什么&#xff…

基于JavaScript 实现近邻算法以及优化方案

前言 近邻算法(K-Nearest Neighbors,简称 KNN)是一种简单的、广泛使用的分类和回归算法。它的基本思想是:给定一个待分类的样本,找到这个样本在特征空间中距离最近的 k 个样本,这 k 个样本的多数类别作为待…

【C++】<知识点> C++11新特性

文章目录 一、auto关键字 二、decltype关键字 三、nullptr关键字 四、智能指针 五、 无序容器(哈希表) 六、统一的初始化方法 七、成员变量默认初始值 八、范围for循环 九、右值引用与移动语义 十、lambda表达式 一、auto关键字 1. 作用&#…

Linux shell编程学习笔记58:cat /proc/mem 获取系统内存信息

0 前言 在开展系统安全检查的过程中,除了收集cpu信息,我们还需要收集内存信息。在Linux中,获取内存信息的命令很多,这里我们着重研究 cat /proc/mem命令。 1 cat /proc/mem命令 /proc/meminfo 文件提供了有关系统内存的使用情况…

280 基于matlab的摇号系统GUI界面仿真MATLAB程序

基于matlab的摇号系统GUI界面仿真MATLAB程序,输入总数量及摇号需求,进行随机性摇号,并对摇取的号码进行双重随机性数据检测,确定是否符合要求。程序已调通,可直接运行。 280 GUI人机交互 摇号系统GUI界面仿真 - 小红书…

技术前沿 |【大模型InstructBLIP进行指令微调】

大模型InstructBLIP进行指令微调 一、引言二、InstructBLIP模型介绍三、指令微调训练通用视觉语言模型的应用潜力四、InstructBLIP的指令微调训练步骤五、实验结果与讨论六、结论与展望 一、引言 随着人工智能技术的快速发展,视觉语言模型(Vision-Langu…

使用SourceTree切换不同的托管平台

背景:sourcetree一开始绑定了gitee,想拉取github的项目时拉取不了 原因:git绑定的账号(邮箱)、密码不一致 解决办法: 重新设置账号密码 在windows种可找到下面的文件夹,进行删除 C:\Users\US…

5.1 实体完整性

一个表只能有一个主键约束,且主键约束不能取空值。 通过unique约束定义唯一性,为了保证一个表非主键列不输入重复值,可在该列定义unique约束。 primary key约束与unique约束主要区别如下。 (1)一个表只能创建一个primary key约束&#xff0…

让GNSSRTK不再难【第一天】

第1讲 GNSS系统组成以及应用 北斗导航科普动画_哔哩哔哩_bilibili 1.1 GNSS系统 1.1.1 基本概念 全球卫星导航系统(Global Navigation Satellite System, GNSS),是能在地球表面或近地空间的任何地点为用户提供全天候的三维坐标、速度以及…

STM32-电灯,仿真

目录 前言: 一. 配置vscode 二. 新创建软件工程 三. 仿真 1.新建工程想到,选择名称和路径 2.从选中的模板创建原理图 3.不创建PCB布版设计 4.选择没有固件项目 5.完成 四.源码 五. 运行效果 六. 总结 前言: 这篇主要是配置vscode和创建仿真,和点灯的完整代码,欢迎大…

在Windows上用Llama Factory微调Llama 3的基本操作

这篇博客参考了一些文章,例如:教程:利用LLaMA_Factory微调llama3:8b大模型_llama3模型微调保存-CSDN博客 也可以参考Llama Factory的Readme:GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100 LLMsUnify Effi…

美琳莱卡:创新消费模式引领新零售时代

公司成立时间与定位 美琳莱卡自创立之初,便以独特的视角和前瞻性的战略定位,立足于消费市场的变革前沿。公司成立于2024年,正值全球数字化浪潮蓬勃兴起,消费升级趋势日益明显之际。美琳莱卡敏锐地捕捉到这一时代机遇,将自身定位为创新消费模式的引领者,致力于通过线上线下高度…

攻防演练之-网络集结号

每一次的网络安全攻防演练都是各个安全厂商期待的网络安全盛会,因为目前的安全生态导致了只有在网络安全攻防演练期间,网络安全的价值才会走向台前,收到相关方的重视。虽然每一次都会由于各种原因不能如期举行,但是这一次的推迟总…

idea最新专业版安装+maven配置教程!

本教程适用于 J B 全系列产品,包括 Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等。 (直接复制,拿走不谢) 9H1390TRAK-eyJsaWNlbnNlSWQiOiI5SDEzOTBUUkFLIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5rA5rS7I…

MySQL之查询性能优化(七)

查询性能优化 排序优化 无论如何排序都是一个成本很高的操作,所以从性能角度考虑,应尽可能避免排序或者尽可能避免对大量数据进行排序。前面已经提到了,当不能使用索引生成排序结果的时候,MySQL需要自己进行排序,如果…