
wget https://github.com/xiexiexx/PPLA/raw/main/billionsort/billionsort.cpp clang++ -O3 billionsort.cpp ./a.out 有没有 8gen3 和 9300 的老哥跑一下让我长长见识


[Documents]$ ./1x_millionsort_with_output 100 Data size: 100000000 0.0027 minutes 0.02695 minutes 0.478667 minutes 
1 pubby 2023-11-24 22:34:14 +08:00 $ uname -a Darwin Mac-mini.local 22.6.0 Darwin Kernel Version 22.6.0: Wed Oct 4 21:25:26 PDT 2023; root:xnu-8796.141.3.701.17~4/RELEASE_X86_64 x86_64 $ sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Intel(R) Core(TM) i9-9900T CPU @ 2.10GHz $ ./a.out 0.0942143 minutes 0.277907 minutes 2.31389 minutes |
4 kikitte 2023-11-24 22:54:26 +08:00 AMD 5950x ArchLinux [kikitte@archlinux test]$ clang++ -O3 billionsort.cpp [kikitte@archlinux test]$ ./a.out 0.0128345 minutes 0.954518 minutes 1.46679 minutes |
5 hefish 2023-11-24 23:03:18 +08:00 这个 sort 也跟 cpu 线程数有关吧 |
6 penzi 2023-11-24 23:05:04 +08:00 首先这个 sort 是单线程的 |
7 lslqtz 2023-11-24 23:07:53 +08:00 M1 Pro 感觉差不多. 这是单核浮点吧. |
10 beetlerx 2023-11-24 23:11:40 +08:00 OS: Debian GNU/Linux trixie/sid x86_64 CPU: AMD Ryzen 7 7840H w/ Radeon 780M Graphics (16) @ 5.137GHz $ clang++-16 -std=c++2a -O3 ./billionsort.cpp $ ./a.out 0.00709458 minutes 0.757148 minutes 1.45406 minutes 看起来 7840H 单核浮点可以和 5950x 掰掰 |
11 Philippa 2023-11-24 23:18:56 +08:00 .., larry@DESKTOP-OVBIJM9 ....,,:;+ccllll --------------------- ...,,+:; cllllllllllllllllll OS: Windows 10 □□ x86_64 ,cclllllllllll lllllllllllllllllll Host: ASUS llllllllllllll lllllllllllllllllll Kernel: 10.0.19045 llllllllllllll lllllllllllllllllll Uptime: 14 hours, 59 mins llllllllllllll lllllllllllllllllll Packages: 3 (scoop) llllllllllllll lllllllllllllllllll Shell: bash 5.2.15 llllllllllllll lllllllllllllllllll Resolution: 3840x2160 DE: Aero llllllllllllll lllllllllllllllllll WM: Explorer llllllllllllll lllllllllllllllllll WM Theme: Custom llllllllllllll lllllllllllllllllll Terminal: Windows Terminal llllllllllllll lllllllllllllllllll CPU: AMD Ryzen 9 7950X3D (32) @ 4.200GHz llllllllllllll lllllllllllllllllll GPU: Caption `'ccllllllllll lllllllllllllllllll GPU: NVIDIA GeForce RTX 4090 `' \*:: :ccllllllllllllllll GPU ````''*::cll Memory: 16818MiB / 130802MiB `` clang++ -std=c++2a -O3 main.cpp 0.0153925 minutes 0.683383 minutes 1.30065 minutes 不是很懂,为什么这么慢 |
14 penzi 2023-11-24 23:23:12 +08:00 |
16 penzi 2023-11-24 23:27:37 +08:00 这能叫做"浮点性能"吗,下面的回帖很多人也被误导了 |
20 bigtan 2023-11-24 23:31:08 +08:00 我这个 14700KF 怎么这么慢 0.0179123 minutes 0.263897 minutes 3.26288 minutes |
24 lwjef OP @maggch97 #22 ...跑了好多次 可以参考这里 https://weibo.com/5819320755/NtlsOeNah |
26 forgottenPerson 2023-11-25 00:01:50 +08:00 via Android Xiaomi 11 termux without root 0.133285 minutes 0.286336 minutes 1.66493 minutes |
29 billlee 2023-11-25 00:22:37 +08:00 这和浮点有关系吗?测的是缓存和内存性能 |
31 Philippa 2023-11-25 00:52:59 +08:00 7950x3D 加了编译优化后…… clang++ -std=c++2a -O3 -Ofast -march=native -funroll-loops -flto main.cpp 0.0153663 minutes 0.0828322 minutes 1.29281 minutes |
32 nuk 2023-11-25 02:23:47 +08:00 感觉和浮点数的精度有关,建议生成 1.0 2.0 3.0 ...的浮点数组,然后用整数随机数把他们打乱。如果随机数分布均匀的话,排序时间应该是稳定的。 |
33 felixlong 2023-11-25 09:05:27 +08:00 分配 7.5G 内存。然后只字不提每台设备的内存大小,那还比个毛线啊。 |
34 BBBOND 2023-11-25 09:13:38 +08:00 via Android s23 跑完闪退了,爆内存了吧 |
35 bigtan 2023-11-25 09:31:11 +08:00 |
36 xiaotianhu 2023-11-25 09:39:23 +08:00 2017 的 16 寸 MBP ,2.6G 的 i7-6920HQ 0.069159 minutes 0.151773 minutes 2.32275 minutes 比手机都慢啊~ |
37 xiaofeilongyy555 2023-11-25 10:40:01 +08:00 xiaomi 13ultra 8gen2 16+512 termux without root 性能模式 0.0415852 minutes 0.114332 minutes 0.441386 minutes |
38 xiaofeilongyy555 2023-11-25 10:46:28 +08:00 13u 清理缓存后有进一步提升 0.0221216 minutes 0.118988 minutes 0.465569 minutes |
39 L4Linux 2023-11-25 12:19:32 +08:00 via Android 用标准库里面的函数来比 fpu 性能没啥意义。 |
40 bsfx2 2023-11-25 12:46:44 +08:00 基础款 M3 (24 GB) $ ./a.out 0.00883733 minutes 0.108414 minutes 1.31298 minutes |
41 penzi 2023-11-25 13:46:36 +08:00 @xiaofeilongyy555 和楼主一样的 cortex X2 的大核,那看来这个核心跑这个任务异乎寻常的快。比上面另一个小米 11 888 的 cortex x1 快了不止一倍 |
42 xiaofeilongyy555 2023-11-25 14:09:30 +08:00 @maggch97 8gen2 用的是 3.2 GHz Cortex-X3 ,888 是 2.84GHz (Cortex-X1) |
43 penzi 2023-11-25 14:14:23 +08:00 @xiaofeilongyy555 不知道有没有非小米机型的数据 |
44 lwjef OP |
46 lovestudykid 2023-11-25 14:55:20 +08:00 看到 iPhone 11 比 M1 Max 快的时候就应该明白一定是哪里出了问题 |
47 lovestudykid 2023-11-25 14:56:35 +08:00 @lovestudykid 看错了,跑的不是一个东西... |
48 tool2d 2023-11-25 15:07:57 +08:00 2014 年的 PC 电脑 0.021993 minutes 0.132118 minutes 1.66888 minutes 打不过年轻人了。 |
49 msg7086 2023-11-25 17:01:22 +08:00 浮点性能不是应该看 AVX/AVX512 之类 SIMD 跑浮点的性能吗? |
50 L4Linux 2023-11-25 19:29:30 +08:00 via Android @lwjef 先控制一下变量吧。你难不成觉得 std::vector 实现都是一样的、而且是 header only 的? |
51 c0xt30a 2023-11-25 19:44:07 +08:00 单线程,而且是 sort ,跟浮点数表现无关,主要看 CPU 频率的样子。 |
52 katsusan 2023-11-25 19:48:29 +08:00 同 arch 比较,像 Zen 和 xxLake 看指令吞吐延迟. 如果是 x86 和 arm 相比,这时候都是 tight loop,x86 的前端解码瓶颈被弱化,应该不会比 arm 阵营差那么多. |
53 dahakawang 2023-11-25 19:49:09 +08:00 7.4G 的数据量,即便不考虑内存不够的情况,也有可能是内存性能 bounded 的原因,不妨试试比较用 cache 大小的数据量进行多轮 benchmark ? |
54 iwdmb 2023-11-25 20:05:04 +08:00 $ lscpu | grep Model\ name Model name: 13th Gen Intel(R) Core(TM) i7-13700K $ ./billionsort 0.0281303 minutes 0.0913962 minutes 1.14076 minutes |
55 iwdmb 2023-11-25 20:07:23 +08:00 |
56 Rorysky 2023-11-25 20:32:37 +08:00 莫非你是 算法老师? |
57 e3c78a97e0f8 2023-11-25 22:21:23 +08:00 浮点性能都是看加减乘除乃至线性代数的,哪有用浮点数比较来定义浮点性能的 |
58 Donahue 2023-11-25 23:23:20 +08:00 |
59 lwjef OP 浮点性能快表达不准确,换个问题,为啥这台手机上这么快呢? @msg7086 #49 是的,高通这么快可能是 Hexagon DSP 有加速 @L4Linux #50 具体细节我是真不懂,但是快是为啥 @c0xt30a #51 高通的频率也不是最强的啊 @katsusan #52 高通和苹果 m1 比数据上也有差距 @dahakawang #53 高通的内存性能从前两个时间来看相较 x86 和 m1 不太行,为啥最后一个时间那么短。。。 @Rorysky #56 这个程序是算法老师写的,估计是为了测试 std::sort 的时间复杂度是线性对数 O(nlogn) @e3c78a97e0f8 #57 是的,是我表达错误,你说的没问题 |
60 billlee 2023-11-26 00:29:37 +08:00 会不会是随机数生成器有区别,先预先生成一个固定的数据序列保存在文件里,各个平台用同一份数据跑排序试试? |
61 cyy911 2023-11-26 02:06:28 +08:00 M3MAX 0.00784537 minutes 0.113421 minutes 1.39678 minutes |
62 cyy911 2023-11-26 03:17:28 +08:00 8Gen3 0.0407101 0.131629 2.03484 是不是降频了啊 |
63 holulu 2023-11-26 07:49:56 +08:00 随机生成的数组乱序程度都不一样,std::sort 的排序过程也不一样。这个代码即使在同一个机器上跑多次,结果都会差距很大。应该用同一份数据在不同机器上跑的结果来比较才有意义。 |
64 paopjian 2023-11-26 09:47:49 +08:00 risc 短指令的优势?试试有没有其他高级指令的? |
65 xixun 2023-11-26 16:59:06 +08:00 via iPhone 高通有堆浮点吧,跑分好看 |
66 hez2010 2023-11-26 17:41:47 +08:00 Windows 11, i7-13700K, DDR5 内存但频率只有 4000MHz: msvc /O2: 0.0217156 minutes 0.072249 minutes 1.54053 minutes clang -O3: 0.021577 minutes 0.0523916 minutes 1.54663 minutes |
67 memorycancel 2023-11-27 00:13:59 +08:00 12th Gen Intel(R) Core(TM) i9-12900T ./a.out 0.0288894 minutes 0.760386 minutes 1.34341 minutes |