高通 CPU 浮点这么快吗。。。

2023-11-24 22:00:19 +08:00
 lwjef
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

9913 次点击
所在节点    程序员
67 条回复
maggch97
2023-11-25 13:46:36 +08:00
@xiaofeilongyy555 和楼主一样的 cortex X2 的大核,那看来这个核心跑这个任务异乎寻常的快。比上面另一个小米 11 888 的 cortex x1 快了不止一倍
xiaofeilongyy555
2023-11-25 14:09:30 +08:00
@maggch97 8gen2 用的是 3.2 GHz – Cortex-X3 ,888 是 2.84GHz (Cortex-X1)
maggch97
2023-11-25 14:14:23 +08:00
@xiaofeilongyy555 不知道有没有非小米机型的数据
lwjef
2023-11-25 14:48:06 +08:00
@nuk #32 我抽空用 int 改写个试试,业余程序员具体细节不是很懂。
@felixlong #33 都来比高低了那不整个 16G 内存
@BBBOND #34 s23 就 8g 太抠门了
@maggch97 #41 我没少个 0 跑算是清白了。。。
lwjef
2023-11-25 14:49:02 +08:00
@L4Linux #39 至少说明高通的 fpu 配安卓做了一些微小的工作让数据看起来不错。
lovestudykid
2023-11-25 14:55:20 +08:00
看到 iPhone 11 比 M1 Max 快的时候就应该明白一定是哪里出了问题
lovestudykid
2023-11-25 14:56:35 +08:00
@lovestudykid 看错了,跑的不是一个东西...
tool2d
2023-11-25 15:07:57 +08:00
2014 年的 PC 电脑

0.021993 minutes
0.132118 minutes
1.66888 minutes

打不过年轻人了。
msg7086
2023-11-25 17:01:22 +08:00
浮点性能不是应该看 AVX/AVX512 之类 SIMD 跑浮点的性能吗?
L4Linux
2023-11-25 19:29:30 +08:00
@lwjef 先控制一下变量吧。你难不成觉得 std::vector 实现都是一样的、而且是 header only 的?
c0xt30a
2023-11-25 19:44:07 +08:00
单线程,而且是 sort ,跟浮点数表现无关,主要看 CPU 频率的样子。
katsusan
2023-11-25 19:48:29 +08:00
同 arch 比较,像 Zen 和 xxLake 看指令吞吐延迟. 如果是 x86 和 arm 相比,这时候都是 tight loop,x86 的前端解码瓶颈被弱化,应该不会比 arm 阵营差那么多.
dahakawang
2023-11-25 19:49:09 +08:00
7.4G 的数据量,即便不考虑内存不够的情况,也有可能是内存性能 bounded 的原因,不妨试试比较用 cache 大小的数据量进行多轮 benchmark ?
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
iwdmb
2023-11-25 20:07:23 +08:00
Rorysky
2023-11-25 20:32:37 +08:00
莫非你是 算法老师?
e3c78a97e0f8
2023-11-25 22:21:23 +08:00
浮点性能都是看加减乘除乃至线性代数的,哪有用浮点数比较来定义浮点性能的
Donahue
2023-11-25 23:23:20 +08:00
3700x @4.2Ghz

0.0260537 minutes
0.115618 minutes
1.66068 minutes

虽然时间用了比较长,但是日常感知不大,软件都挺流畅的
lwjef
2023-11-26 00:11:58 +08:00
浮点性能快表达不准确,换个问题,为啥这台手机上这么快呢?

@msg7086 #49 是的,高通这么快可能是 Hexagon DSP 有加速
@L4Linux #50 具体细节我是真不懂,但是快是为啥
@c0xt30a #51 高通的频率也不是最强的啊
@katsusan #52 高通和苹果 m1 比数据上也有差距
@dahakawang #53 高通的内存性能从前两个时间来看相较 x86 和 m1 不太行,为啥最后一个时间那么短。。。
@Rorysky #56 这个程序是算法老师写的,估计是为了测试 std::sort 的时间复杂度是线性对数 O(nlogn)
@e3c78a97e0f8 #57 是的,是我表达错误,你说的没问题
billlee
2023-11-26 00:29:37 +08:00
会不会是随机数生成器有区别,先预先生成一个固定的数据序列保存在文件里,各个平台用同一份数据跑排序试试?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994966

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX