登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
CPU ↔ DRAM(内存总线)的可持续数据传输带宽 ...
CPU ↔ DRAM(内存总线)的可持续数据传输带宽
[ 复制链接 ]
阜逐忍
2 小时前
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
最大理论带宽
最大理论带宽(Theoretical Maximum Memory Bandwidth)
,不需要运行复杂的测试,只需要知道两个核心参数:
内存频率
和
内存通道数
。
1. 核心计算公式
内存带宽的计算公式如下:
\[\text{Max Bandwidth (GB/s)} = \frac{\text{Memory Clock (MHz)} \times \text{Bus Width (64-bit)} \times \text{Channels} \times \text{Data Rate (2 for DDR)}}{8 \times 1000}\]
对于
DDR (Double Data Rate)
内存,我们通常直接使用其“等效频率”(即厂家标称的频率,如 3200 MT/s):
\[\text{Max Bandwidth (GB/s)} = \frac{\text{MT/s} \times 8 \text{ Bytes} \times \text{Channels}}{1000}\]
注意:
每一条内存插槽的位宽固定为 64-bit(即 8 Bytes)。
2. 在 Linux 中获取硬件参数
你需要确认当前系统运行的内存实际频率和通道数。
第一步:获取内存频率和类型
使用 dmidecode 命令查看硬件详情:
sudo dmidecode -t memory | grep -P "Speed|Type|Part Number"
-- 输出
Error Correction Type: None
Type: DDR5
Type Detail: Synchronous
Speed: 5600 MT/s
Part Number: M323R1GB4DB0-CWMOD
Configured Memory Speed: 4800 MT/s
Type: DDR5
Type Detail: Synchronous
Speed: 5600 MT/s
Part Number: M323R1GB4DB0-CWMOD
Configured Memory Speed: 4800 MT/s
复制代码
查找
Configured Memory Speed
(例如:3200 MT/s)。
注意不要看
Max Speed
,那是硬件支持的上限,要看当前运行的
Configured Speed
。
第二步:确认通道数 (Channels)
通过查看插槽填充情况来判断:
sudo dmidecode -t memory | grep "Size" | grep -v "No Module Installed"
--输出
Size: 8 GB
Non-Volatile Size: None
Volatile Size: 8 GB
Cache Size: None
Logical Size: None
Size: 8 GB
Non-Volatile Size: None
Volatile Size: 8 GB
Cache Size: None
Logical Size: None
复制代码
如果有 2 条相同容量的内存,且主板支持双通道,则通道数为
2
。
如果是服务器级别(如 EPYC 或 Xeon),可能会有
8
通道。
你是
DDR4 3200MHz
且有
2
根内存,那么你的最大理论带宽就是 \(3200 \times 8 \times 2 / 1000 = 51.2 \text{ GB/s}\)。
3. 快速参考表 (以常用配置为例)
内存类型
等效频率 (MT/s)
通道数 (Channels)
理论最大带宽 (GB/s)
DDR424001 (单通道)19.2DDR432002 (双通道)
51.2
DDR432008 (服务器/EPYC)204.8DDR548002 (双通道)76.8DDR560002 (双通道)96.0
使用 STREAM 验证实际带宽 (Benchmark)
1 理论内存带宽计算
例如本机配置:
Memory type:
DDR5
Configured speed:
4800 MT/s
Bus width:
64 bit = 8 Bytes
Channels:
2
理论带宽 = 76.8 GB/s
STREAM benchmark
STREAM 是 HPC 领域最常用的
内存带宽 benchmark
,通过四个 kernel 测试持续内存访问带宽:
Kernel操作Copya
= b
Scalea
= scalar * b
Adda
= b
+ c
Triada
= b
+ scalar * c
其中
Triad
一般作为最终带宽指标。
下载 STREAM
git clone https://github.com/jeffhammond/STREAM.git
cd STREAM
复制代码
为了避免缓存影响,需要增大数组规模,使测试数据远大于 CPU cache。
示例编译:
gcc -O3 -march=native -fopenmp -mcmodel=large \
-DSTREAM_ARRAY_SIZE=200000000 \
stream.c -o stream
复制代码
参数说明:
参数作用-O3编译优化-march=native使用 CPU SIMD 指令-fopenmp多线程-mcmodel=large允许 >2GB 全局数组-STREAM_ARRAY_SIZE控制数组规模
数据规模
配置:
STREAM_ARRAY_SIZE = 200000000
复制代码
内存占用:
200M elements × 8 bytes = 1.6 GB / array
3 arrays ≈ 4.5 GB
复制代码
该规模已经
远大于 CPU cache
,可以测试真实 DRAM 带宽。
运行 benchmark
设置线程数(通常等于 CPU 线程数):
export OMP_NUM_THREADS=10
./stream
复制代码
测试结果示例
precision of your system timer.
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 56158.0 0.057857 0.056982 0.058437
Scale: 48954.4 0.067805 0.065367 0.069320
Add: 51523.8 0.095119 0.093161 0.098945
Triad: 51388.6 0.094508 0.093406 0.096107
-------------------------------------------------------------
复制代码
换算:
Triad ≈ 51.4 GB/s
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
CPU
DRAM
内存
总线
持续
相关帖子
服务器硬件全面解析:从CPU到网卡的运维必备知识
通过 DeepFlow 查询函数在 CPU 上消耗的时间(CPU 性能剖析)
V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
Rust简要汇总(持续更新)
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
1553B通讯总线的1188校验字
【Windows】终末地导致的System进程异常高占用内存和磁盘资源##36
非统一内存访问架构NUMA的是是非非
并发编程进阶:volatile、内存屏障与 CPU 缓存机制详解
SQL Server数据库服务器内存问题排查
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
服务器硬件全面解析:从CPU到网卡的运维必备知识
14
37
材部
2026-01-21
业界
通过 DeepFlow 查询函数在 CPU 上消耗的时间(CPU 性能剖析)
18
504
格恳绌
2026-02-03
业界
V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
14
199
仄谦
2026-02-04
安全
Rust简要汇总(持续更新)
16
1024
扔飒
2026-02-04
业界
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
7
347
抽厉
2026-02-08
安全
1553B通讯总线的1188校验字
7
27
觞刈
2026-02-11
安全
【Windows】终末地导致的System进程异常高占用内存和磁盘资源##36
1
250
孜稞
2026-02-17
业界
非统一内存访问架构NUMA的是是非非
2
994
毕余馥
2026-03-03
业界
并发编程进阶:volatile、内存屏障与 CPU 缓存机制详解
4
912
轩辕琳芳
2026-03-04
业界
SQL Server数据库服务器内存问题排查
1
868
命煦砌
2026-03-06
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
阜逐忍
2 小时前
关注
0
粉丝关注
26
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
韶又彤
9912
6
宋子
9880
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9869
10
遗憩
10006
查看更多
今日好文热榜
483
LeetCode 124 二叉树中的最大路径和:pytho
286
我把一个生产Bug的排查过程,交给AI处理—
266
MyBatis-plus之快速入门
371
AI Coding 中的概念 Vibe Coding 和 Spec C
670
Data is Code:RAG 时代的数据投毒与大模型
914
CPU ↔ DRAM(内存总线)的可持续数据传输
225
OpenCalw系列---【OpenClaw如何接入飞书?
877
OpenCalw系列---【OpenClaw如何接入飞书?
115
C# 扩展方法只会写 this 吗?C# 14 新语法
597
OpenClaw + 企业微信对接:2026年保姆级全
49
性能干翻235B,单卡私有化部署OpenClaw
725
Codex SDK 控制台消息解析完全指南
966
Cursor 四种交互模式
29
交易系统开发——张智炫
707
OpenClaw(龙虾) 进阶:AI Agent团队协同的
886
OpenClaw(龙虾) 进阶:AI Agent团队协同的
981
OpenClaw(龙虾) 进阶:AI Agent团队协同的
508
OpenClaw(龙虾) 进阶:AI Agent团队协同的
784
Maomi.Core | 一个好用的模块化和自动服务
963
正位调体态,挺拔养气质|武汉瑜伽体态矫正