设为首页 加入收藏

TOP

水文一篇--基于CUDA的矩阵相乘 (二)
2014-11-23 22:30:34 来源: 作者: 【 】 浏览:7
Tags:文一篇 基于 CUDA 矩阵 相乘
= 0 ; i < _size; ++i)
{
if (fabs(_A[i] - _B[i]) > 1.0e-3)
{
printf("%f \t %f\n",_A[i],_B[i]);
return false;
}
}
return true;
}

int main(int argc, char* argv[])
{
srand(13);
if(!InitCUDA()) {
return 0;
}

float* A = myNewOnCPU(WA*HA);
float* B = myNewOnCPU(WB*HB);
randomInit(A,WA*HA);
randomInit(B,WB*HB);
float* C = myNewOnCPU(WC*HC);
memset(C,0,sizeof(float)*WC*HC);

float* C2 = myNewOnCPU(WC*HC);
memset(C2,0,sizeof(float)*WC*HC);

unsigned int tick1 = GetTickCount();
MatrixMulCPU(C2,A,B,WA,HA,WB);
printf("CPU use Time : %dms\n",GetTickCount() - tick1);
unsigned int timer = 0;
cutilCheckError(cutCreateTimer(&timer));
cutilCheckError(cutStartTimer(timer));
{
matrixMulGPU(C,A,B,WA,HA,WB);
}
cutilCheckError(cutStopTimer(timer));
printf("GPU use time: %f (ms) \n", cutGetTimerValue(timer));
cutilCheckError(cutDeleteTimer(timer));

if (checkError(C,C2,WC*HC))
{
printf("Accept\n");
}
else
{
printf("Worng Answer\n");
}

myDeleteOnCPU(A);
myDeleteOnCPU(B);
myDeleteOnCPU(C);
myDeleteOnCPU(C2);

return 0;
}

运算结果如下:
版本0:

\

版本1:

\

可以看出,GPU并行性能比CPU好很多,而且版本1优于版本0

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇经典算法题--求对策字符串的最大.. 下一篇C语言学习趣事_数据结构_经典命题..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: