2 分•作者: user_timo•6 个月前
我开发了一个用于 Apple Silicon macOS 的开源 CLI 工具。它以不同的方式测量内存速度和延迟。在 M4 基础款上,它在读取速度方面可以达到 96-97% 的效率,而这被宣传为 120GB/s。所有内存操作都使用汇编语言实现。<p>我非常感谢大家提供不同 CPU 上的结果,以及该基准测试在这些 CPU 上的表现。我已经在 M1 和 M4 上测试过这个工具了。<p>命令:`memory_benchmark -non-cacheable -count 5 -output results.JSON`
(运行前请关闭所有应用程序)<p>这将生成一个 JSON 文件,您可以在其中找到 copy_gb_s、read_gb_s 和 write_gb_s 的统计数据。<p>例如,M4 运行 10 次循环:
```json
{
"copy_gb_s": {
"statistics": {
"average": 106.65421233311835,
"max": 106.70240696071005,
"median": 106.65069297260811,
"min": 106.6336774994254,
"p90": 106.66606919223108,
"p95": 106.68423807647056,
"p99": 106.69877318386216,
"stddev": 0.01930653530818627
},
"values": [
106.70240696071005,
106.66203166240008,
106.64410802226159,
106.65831409449595,
106.64148106986977,
106.6482935780762,
106.63974821679058,
106.65896986001393,
106.6336774994254,
106.65309236714002
]
},
"read_gb_s": {
"statistics": {
"average": 115.83111228356601,
"max": 116.11098114619033,
"median": 115.84480882265643,
"min": 115.56959026587722,
"p90": 115.99667266786554,
"p95": 116.05382690702793,
"p99": 116.09955029835784,
"stddev": 0.1768243167963439
},
"values": [
115.79154681380165,
115.56959026587722,
115.60574235736468,
115.72112860271632,
115.72147129262802,
115.89807083151123,
115.95527337086908,
115.95334642887214,
115.98397172582945,
116.11098114619033
]
},
"write_gb_s": {
"statistics": {
"average": 65.55966046805113,
"max": 65.59040040480241,
"median": 65.55933583741347,
"min": 65.50911885624045,
"p90": 65.5840272860955,
"p95": 65.58721384544896,
"p99": 65.58976309293172,
"stddev": 0.02388146120866979
}
}
}
```
<p>模式基准测试也显示了更多的内存速度。命令:`memory_benchmark -patterns -non-cacheable -count 5 -output patterns.JSON`
<p>例如,M4 运行 100 次循环:
```json
{
"sequential_forward": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 116.38363691482549,
"max": 116.61212708384109,
"median": 116.41264548721367,
"min": 115.449510036971,
"p90": 116.54143114134801,
"p95": 116.57314206456576,
"p99": 116.60095068065866,
"stddev": 0.17026641589059727
}
}
}
},
"strided_4096": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 26.460392735220456,
"max": 27.7722419653915,
"median": 26.457051473208285,
"min": 25.519925729459107,
"p90": 27.105171215736604,
"p95": 27.190715938337473,
"p99": 27.360449534513144,
"stddev": 0.4730857335572576
}
}
}
},
"random": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 26.71367836895143,
"max": 26.966820487564327,
"median": 26.69907406197067,
"min": 26.49374804466308,
"p90": 26.845236287807374,
"p95": 26.882004355057887,
"p99": 26.95742242818151,
"stddev": 0.09600564296001704
}
}
}
}
}
```
<p>感谢您的阅读!