当前位置: 首页 > news >正文

numpy自带的openblas库和openblas64库的差异

准备一个test_num.py

importnumpyasnpimporttime# 验证BLAS后端print(np.__config__.show())# 性能测试:矩阵乘法deftest_blas_performance():size=4096a=np.random.rand(size,size).astype(np.float32)b=np.random.rand(size,size).astype(np.float32)start=time.time()c=np.dot(a,b)duration=time.time()-start gflops=2*size**3/duration/1e9print(f"矩阵大小:{size}x{size}")print(f"耗时:{duration:.2f}秒")print(f"性能:{gflops:.2f}GFLOPS")test_blas_performance()
  1. numpy-1.20.3自带的是openblas
aaa@kylin-pc:~/par$ python3 pip-22.3.1.pyz install numpy==1.20.3 -i https://mirrors.aliyun.com/pypi/simple/ Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://mirrors.aliyun.com/pypi/simple/ Collecting numpy==1.20.3 Downloading https://mirrors.aliyun.com/pypi/packages/22/bc/167ee56ac14f314544f393009b2cc62250c6e8d4d048d10304c8124b374b/numpy-1.20.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.7/12.7 MB 33.5 MB/s eta 0:00:00 Installing collected packages: numpy Attempting uninstall: numpy Found existing installation: numpy 1.21.6 Uninstalling numpy-1.21.6: Successfully uninstalled numpy-1.21.6 Successfully installed numpy-1.20.3 aaa@kylin-pc:~/par$ python3 pip-22.3.1.pyz show numpy Name: numpy Version: 1.20.3 Summary: NumPy is the fundamental package for array computing with Python. Home-page: https://www.numpy.org Author: Travis E. Oliphant et al. Author-email: License: BSD Location: /home/aaa/.local/lib/python3.8/site-packages Requires: Required-by: matplotlib, pandas aaa@kylin-pc:~/par$ cd /home/aaa/.local/lib/python3.8/site-packages aaa@kylin-pc:~/.local/lib/python3.8/site-packages$ ls cycler kiwisolver matplotlib-3.5.3-py3.8-nspkg.pth numpy.libs pandas-1.3.5.dist-info pyparsing-3.1.4.dist-info cycler-0.12.1.dist-info kiwisolver-1.4.7.dist-info mpl_toolkits packaging __pycache__ uv fontTools matplotlib numpy packaging-26.0.dist-info pylab.py uv-0.11.5.dist-info fonttools-4.57.0.dist-info matplotlib-3.5.3.dist-info numpy-1.20.3.dist-info pandas pyparsing aaa@kylin-pc:~/.local/lib/python3.8/site-packages$ aaa@kylin-pc:/usr/local/lib/python3.8/dist-packages$ cd ~/par aaa@kylin-pc:~/par$ python3 test_num.py blas_mkl_info: NOT AVAILABLE blis_info: NOT AVAILABLE openblas_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] blas_opt_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] lapack_mkl_info: NOT AVAILABLE openblas_lapack_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] lapack_opt_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] None 矩阵大小: 4096x4096 耗时: 1.34秒 性能: 102.23 GFLOPS aaa@kylin-pc:~/par$ cd ~/.local/lib/python3.8/site-packages/numpy/core aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy/core$ ldd _multiarray_umath.cpython-38-aarch64-linux-gnu.so linux-vdso.so.1 (0x0000007f87b1e000) libopenblasp-r0-afb71072.3.13.dev.so => /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/libopenblasp-r0-afb71072.3.13.dev.so (0x0000007f862dc000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f86216000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f861e6000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f86074000) libgfortran-daac5196.so.5.0.0 => /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/libgfortran-daac5196.so.5.0.0 (0x0000007f85eec000) /lib/ld-linux-aarch64.so.1 (0x0000007f87aee000) libz-faed9fd9.so.1.2.7 => /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/libz-faed9fd9.so.1.2.7 (0x0000007f85eab000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f85e87000) aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy.libs$ ls -l 总用量 23584 -rwxrwxr-x 1 aaa aaa 1539832 4月 10 13:25 libgfortran-daac5196.so.5.0.0 -rwxrwxr-x 1 aaa aaa 22408760 4月 10 13:25 libopenblasp-r0-afb71072.3.13.dev.so -rwxrwxr-x 1 aaa aaa 198680 4月 10 13:25 libz-faed9fd9.so.1.2.7 aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy.libs$ cd ~/par

用ldd命令可见数组相乘库用了libopenblasp,这个在Whl包的numpy.libs目录中提供。
2. numpy-1.23.4自带的是openblas64

aaa@kylin-pc:~/par$ python3 pip-22.3.1.pyz install numpy==1.23.4 -i https://mirrors.aliyun.com/pypi/simple/ Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://mirrors.aliyun.com/pypi/simple/ Collecting numpy==1.23.4 Downloading https://mirrors.aliyun.com/pypi/packages/2a/28/94ef96d74927d35d2c53fba76e5636031958c374937d4714bcb9e4fe2506/numpy-1.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.0/14.0 MB 1.0 MB/s eta 0:00:00 Installing collected packages: numpy Attempting uninstall: numpy Found existing installation: numpy 1.20.3 Uninstalling numpy-1.20.3: Successfully uninstalled numpy-1.20.3 Successfully installed numpy-1.23.4 aaa@kylin-pc:~/par$ python3 test_num.py openblas64__info: libraries = ['openblas64_', 'openblas64_'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None)] runtime_library_dirs = ['/usr/local/lib'] blas_ilp64_opt_info: libraries = ['openblas64_', 'openblas64_'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None)] runtime_library_dirs = ['/usr/local/lib'] openblas64__lapack_info: libraries = ['openblas64_', 'openblas64_'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None), ('HAVE_LAPACKE', None)] runtime_library_dirs = ['/usr/local/lib'] lapack_ilp64_opt_info: libraries = ['openblas64_', 'openblas64_'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None), ('HAVE_LAPACKE', None)] runtime_library_dirs = ['/usr/local/lib'] Supported SIMD extensions in this NumPy install: baseline = NEON,NEON_FP16,NEON_VFPV4,ASIMD found = ASIMDHP,ASIMDDP,ASIMDFHM not found = None 矩阵大小: 4096x4096 耗时: 0.99秒 性能: 138.41 GFLOPS aaa@kylin-pc:~/par$ cd ~/.local/lib/python3.8/site-packages/numpy/core aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy/core$ ldd _multiarray_umath.cpython-38-aarch64-linux-gnu.so linux-vdso.so.1 (0x0000007f99e4b000) libopenblas64_p-r0-9c1f2efe.3.20.so => /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/libopenblas64_p-r0-9c1f2efe.3.20.so (0x0000007f9837e000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f982b8000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f98288000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f98116000) libgfortran-daac5196.so.5.0.0 => /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/libgfortran-daac5196.so.5.0.0 (0x0000007f97f9b000) /lib/ld-linux-aarch64.so.1 (0x0000007f99e1b000) libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007f97f71000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f97f4d000) aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy/core$ cd /home/aaa/.local/lib/python3.8/site-packages/numpy/core/./../../numpy.libs/ aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy.libs$ ls -la 总用量 26012 drwxrwxr-x 2 aaa aaa 4096 4月 10 14:08 . drwx------ 23 aaa aaa 4096 4月 10 14:08 .. -rwxrwxr-x 1 aaa aaa 1484448 4月 10 14:08 libgfortran-daac5196.so.5.0.0 -rwxrwxr-x 1 aaa aaa 25138552 4月 10 14:08 libopenblas64_p-r0-9c1f2efe.3.20.so aaa@kylin-pc:~/.local/lib/python3.8/site-packages/numpy.libs$

简单矩阵乘法测试的结果,openblas64库比openblas快了30%多。

http://www.jsqmd.com/news/623629/

相关文章:

  • 从输入URL到页面显示:这中间到底发生了什么?一场“互联网快递”的奇幻漂流
  • 为什么现代PHP项目需要统一的支付解决方案:专业级支付SDK深度解析
  • 单细胞注释进阶指南-利用AddModuleScore精准定位细胞亚群
  • 基于深度学习的YOLOv11的车辆测速和测距与轨迹预测项目 车辆测距识别 车速识别 车辆轨迹预测
  • AI 搜索时代,让本地客户主动找到你 —— 广州互赢网络geo优化 - 资讯焦点
  • 5分钟搞定:用Everything文件搜索工具提升MCP服务的本地文件检索效率
  • Markdown演示文稿制作终极方案:Marp CLI高效命令行工具深度解析
  • 聊聊厦门做隐形车衣有千台经验师傅的门店推荐 - 工业设备
  • 《短剧平台商品详情页前端性能优化实战》
  • cv_resnet101_face-detection_cvpr22papermogface多场景落地:会议签到、活动人流统计、智能门禁预处理
  • 从拉格朗日乘子到支持向量机:深入解析KKT条件与SVM优化
  • 5G室外宏站机房设计与设备布局实战:基于IUV平台的AAU、BBU、电源柜摆放避坑要点
  • 深入解析YOLOv8检测头中的DFL实现原理
  • HunyuanVideo-Foley生成音频的后处理:使用专业软件进行混音与母带制作
  • 为什么你的PyTorch模型需要量化?从原理到落地全解析
  • AnimateDiff模型压缩教程:10分钟掌握量化部署技巧
  • 喜报!itc保伦股份荣膺数字展示在线“2025年度十大LED显示屏品牌奖” - 资讯焦点
  • Linux驱动开发必备:手把手教你编译自定义设备树(dts文件)
  • 张雪机车碾压夺冠背后:比热爱更稀缺的,是“一眼见道”的能力
  • 【实战】AI编程“三件套“深度拆解:Hermes Agent 4.7万star + Claude Code 登顶SWE-bench + Superpowers 14万star,附完整工作流配置
  • 零代码搞定脑电分析!用Brainstorm处理MEG/EEG数据的保姆级入门教程
  • Wan2.2-I2V-A14B创意应用:基于Qt开发跨平台视频生成桌面工具
  • 2026年分析厦门贴隐形车衣哪家可协助提车,靠谱门店解读 - 工业品牌热点
  • PS3游戏更新下载器:解决怀旧游戏更新的终极方案
  • 告别驱动烦恼:Windows平台终极ADB安装工具全解析
  • Qwen3-0.6B-FP8在运维领域的应用:日志分析与故障排查智能助手
  • 开源可部署+国产适配:Lychee-Rerank在昇腾910B上的ACL适配部署教程
  • 【独家首发】AI原生研发决策树V3.2(含Gartner 2024新兴技术成熟度映射):仅限前500位CTO/技术VP下载的选型检查清单
  • 从零开始:B站视频下载器BilibiliDown的5个核心使用技巧
  • 选购SPC门,广东炬业成这样的供应商值得选吗? - myqiye