受此贴启发,除鲲鹏 920 外的数据也来自此贴: https://v2ex.com/t/733777
成绩对比选的是基于 Numpy 的数值计算( Neon SIMD 加速),测试脚本为:
https://gist.github.com/markus-beuckelmann/8bc25531b11158431a5b09a45abd6276
废话不多说,上成绩:
项目 | M1 | 鲲鹏 920-12 核 | 鲲鹏 920-24 核 | Core i9 |
---|---|---|---|---|
4096x4096 矩阵乘法 | 0.53 s | 1.48 s | 0.76 s | 0.45 s |
524288 向量点积 | 0.25 ms | 0.49 ms | 0.48 ms | 0.05 ms |
2048x1024 SVD | 0.59 s | 1.10 s | 0.93 s | 0.32 s |
2048x2048 Cholesky 分解 | 0.08 s | 0.14 s | 0.13 s | 0.08 s |
2048x2048 特征分解 | 4.74 s | 8.36 s | 7.66 s | 3.53 s |
结论:
由于是调用的底层加速库,Numpy 在数值计算方面可以有效使用多核进行运算。大体上看,哪怕是 24 核鲲鹏 920 的数值计算性能也比 M1 慢一半左右,向量乘法和 SVD 几乎慢一倍。
Core i9 是原帖网友 @pb941129 基于 16 寸 MBP i9 所得,由于数值计算是英特尔的传统强项,外加在 MKL 底层的加持下,各项方面性能均领先 M1 (原帖网友 @YUX 所测).
备注:
1 鲲鹏 920 是在华为云上测试的。
2 除 Core i9 外,Numpy 安装统一用的是 Miniforge,加速库配置为:
blas_info:
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/root/miniforge3/lib']
include_dirs = ['/root/miniforge3/include']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/root/miniforge3/lib']
include_dirs = ['/root/miniforge3/include']
language = c
lapack_info:
libraries = ['lapack', 'blas', 'lapack', 'blas']
library_dirs = ['/root/miniforge3/lib']
language = f77
lapack_opt_info:
libraries = ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/root/miniforge3/lib']
language = c
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
include_dirs = ['/root/miniforge3/include']
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.