CPU Core-to-Core Latency Tools +

Desc

README in English
该程序用来计算 CPU 核心间通信延迟.
具体方式为, 将两个线程固定在两个不同的 CPU 核心上, 通过CPU缓存一致性协议, 让线程执行一系列比较交换操作来测量延迟.
该 fork 旨在提升程序的易用性并收集更多 CPU benckmark 数据来进行展示.
*** 注意, 由于 MacOS 已经移除了相关接口, 导致本程序依赖的 core_affinity 库无法在 MacOS 系统上将线程绑定到特定的核心上运行, 同时也无法在运行时获取当前核心 ID. 因此本程序在MacOS 上的测试结果严格来说是无效的 (可能都被调度到了相同的一个或几个核心上). 建议 Mac 用户安装 Linux 系统进行测试 ***
How to run
如何运行:
下载预编译版本并运行
请到 https://github.com/KCORES/core-to-core-latency-plus/releases 下载.
下载完毕后, Linux 系统运行:
core-to-core-latency-plus 5000 300 -b 1 --upload
Windows 系统需要打开 CMD, cd 到文件所在目录并运行:
core-to-core-latency-plus.exe 5000 300 -b 1 --upload
注意, --upload 选项会上传您的 benchmark 结果到 https://core-to-core-latency.kcores.com.
您可以根据上传完毕后生成的链接来查看您的结果并生成 heapmap.
由于 history benchmark 结果过大 (results 文件夹内的内容生成 jupyter notebook 会达到 170MB), 因此强烈建议上传 benchmark 结果到该网站并实时生成 heapmap. 如果您需要手动查看历史结果可以访问 History Results 并安装 python 相关环境后, 使用 jupyter notebook 打开并生成.
使用 cargo 安装并运行
$ cargo install core-to-core-latency-plus
$ core-to-core-latency-plus 5000 300 -b 1 --upload
Leaderboard
更多结果欢迎访问: https://core-to-core-latency.kcores.com
| CPU Name | Min Latency | Median Latency | Max Latency |
|---|
| AMD Ryzen 5 5600X 6-Core Processor | 7.6818 | 17.6634 | 21.6557 |
| AMD Ryzen 7 5700X | 7.8170 | 18.0319 | 20.5132 |
| AMD Ryzen 9 5900HX @ 3.3 GHz | 7.5602 | 18.4311 | 20.8740 |
| AMD Ryzen 7 5800U | 7.7068 | 18.9389 | 21.3417 |
| AMD Ryzen 5 5500 6-Core Processor | 10.3052 | 18.9881 | 22.6321 |
| AMD Ryzen 7 PRO 5850U 8-Core Processor | 7.7522 | 19.2608 | 22.7955 |
| Intel Core i7-6700K | 6.8767 | 19.4800 | 23.3867 |
| Intel Xeon E-2176M 2.7GHz | 6.8374 | 20.2670 | 23.0518 |
| AMD Ryzen 7 5800X3D 8-Core Processor | 7.8564 | 20.3614 | 25.6054 |
| Intel Core i5-10310U | 7.2062 | 20.4074 | 21.6365 |
| Intel Core i9-9900K CPU @ 3.60GHz | 5.9833 | 20.5833 | 24.4833 |
| AMD Ryzen 5800X3D 8-Core Processor | 5.0000 | 20.6667 | 26.0000 |
| AMD Ryzen 9 5900HX 8-Core Processor | 5.0000 | 20.6667 | 26.0000 |
| Intel Core i7-9700K 3.6GHz |
History Results
History Results
License
MIT