以矩阵乘积为例看AAuto的运行速度

来源:互联网 发布:4s店网络销售沟通技巧 编辑:程序博客网 时间:2024/05/16 19:17

刚刚接触AAuto,用矩阵乘积做一下AAuto的运行速度测试。注意系统配置不同,运行结果会有差异。上代码吧。

AAuto代码:

import time.performancefunction matmul(A,n){    B={}    for(i=1;n)        for(j=1;n)        {            v=0;            for(k=1;n)                v=v+A[i+n*(k-1)]*A[k+n*(j-1)]            B[i+n*(j-1)]=v         }     return B}io.open()n=400A={}for(i=1;n)    for(j=1;n)        A[i+n*(j-1)]=1;tk=time.performance.tick()B=matmul(A,n)io.print(n++"阶矩阵阶数自乘耗时 "++time.performance.tick()-tk++" 毫秒")execute("pause")io.close()

运行时间:12569毫秒

#include<iostream>#include<ctime>using namespace std;void matmul(double *A,int n,double *B){double v(0);for(int i=0;i<n;++i)for(int j=0;j<n;++j){v=0;for(int k=0;k<n;++k)v+=A[i+n*k]*A[k+n*j];B[i+n*j]=v;}}int main(){int n=400;double *A=new double[n*n];double *B=new double[n*n];for(int i=0;i<n;++i)for(int j=0;j<n;++j)A[i+n*j]=1.0;clock_t tk=clock();matmul(A,n,B);cout<<n<<"阶矩阵阶数自乘耗时 "<<clock()-tk<<" 毫秒"<<endl;delete[] A;delete[] B;}


(Release编译)运行时间:234毫秒


MATLAB代码:

function B=matmul(A)n=size(A,1);B=zeros(n);for i=1:n    for j=1:n        v=0;        for k=1:n            v=v+A(i,k)*A(k,j);        end        B(i,j)=v;    endend

在命令窗口运行:

>> A=ones(400);tic,B=matmul(A);toc
Elapsed time is 0.904675 seconds.

注:系统配置 WinXP SP3,intel core2 CPU Quad Q8300 2.50GHz,内存金士顿两条共4GB。

原创粉丝点击