提升R语言的矩阵计算速度

提升R语言的矩阵计算速度


前言

R语言为人诟病的地方很多,运行速度太慢是很突出的一点。这里介绍一种野路子的方法。
本文转载改写自:https://www.bilibili.com/read/cv12524943


一、OpenBLAS

OpenBLAS是开源的矩阵运算库,性能可以比肩Intel的MKL,介绍看这:https://www.openblas.net/

R默认用的BLAS库是万能不更新的BLAS,具体介绍看这:https://www.netlib.org/blas/

更换掉RBlas.dll可以秒提升速度几倍,特别是对于万行以上记录的回归、分类问题,原版Rblas的性能让人捉急,动不动半小时甚至半天的,换了openblas,几分钟搞定。

这方法十年前大家都知道,只是以前需要自己动手编译openblas,过于麻烦,现如今张大神已经在github上提供预先编译好的openblas.dll,经测试,只要复制到R\bin\x64\文件夹中,把原先的Rblas.dll改个别的名字,把openblas.dll改名成Rblas.dll即可。

运行R.exe如果不报错,那就大功告成了。

二、使用步骤

1.下载OpenBLAS-0.3.20-x64.zip

以前需要自己动手编译openblas,过于麻烦,现如今张大神已经在github上提供预先编译好的openblas.dll,经测试,只要复制到R\bin\x64\文件夹中,把原先的Rblas.dll改个别的名字,把openblas.dll改名成Rblas.dll即可。

下载地址:

https://github.com/xianyi/OpenBLAS/releases
https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.20
https://github.com/xianyi/OpenBLAS/releases/download/v0.3.20/OpenBLAS-0.3.20-x64.zip

下载慢的话用油猴脚本github加速,可以bing搜索教程。

通常windows就下载第一个OpenBLAS-0.3.17-x64.zip 然后解压缩就行,里面有编译好的dll。
在这里插入图片描述

2.替换系统文件

解压OpenBLAS-0.3.20-x64.zip,找到 解压文件下 \bin\libopenblas.dll,将libopenblas.dll重命名为Rblas.dll ,然后替换掉R里面的文件(记得备份),比如R目录是C:\Program Files\R\R-4.1.0\bin\x64里面。

3.测试

x <- matrix(rnorm(9000000),3000,3000)
system.time(tmp <- x %*% x)
这是Rblas的性能
user system elapsed
19.29 0.00 19.41
这是替换完openblas后的性能
user system elapsed
2.35 0.08 0.68

两者差异28倍

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茅逗逗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值