首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩阵乘法与RcppArmadillo:为什么它不更快?

矩阵乘法与RcppArmadillo:为什么它不更快?
EN

Stack Overflow用户
提问于 2016-03-16 16:28:55
回答 1查看 2.5K关注 0票数 1

我试图用RcppArmadillo做一些矩阵乘法.但是,我的代码显示,使用RcppArmadillo不会变得更快。

我使用的是R3.2.4的Windows_10_Pro和RcppArmadillo的0.6.600.4.0

例如:

代码语言:javascript
复制
library(RcppArmadillo)
library(inline)

MCplus <- cxxfunction(signature(X_="numeric", Y_="numeric"),body ='
arma::mat X = Rcpp::as<arma::mat>(X_);
arma::mat Y = Rcpp::as<arma::mat>(Y_);
arma::mat ans = X * Y * X;
return(wrap(ans));
', plugin="RcppArmadillo")

A <- matrix(1:16000000,4000,4000)
C <- matrix(2:16000001,4000,4000)

R_M <- proc.time()
ans_R <- A%*%C%*%A # test with R
proc.time() - R_M

C_M <- proc.time()
ans_C <- MCplus(A,C) # test with RcppArmadillo
proc.time() - C_M

R产出:

代码语言:javascript
复制
user  system elapsed
106.75   0.24 106.98

RcppArmadillo输出:

代码语言:javascript
复制
user  system elapsed
108.28   0.23 108.56 

有什么可以改进的吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 16:55:58

R本身就把它外包给LAPACK/BLAS --链接到通过LAPACK/BLAS调用的R的代码也是如此。因此,是的,这两种方法都将运行相同的代码,差异只是由于较小的开销。

有许多教程告诉您如何更改LAPACK库。当然,这取决于操作系统。从R安装和管理手册及其附录开始吧。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36041525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档