Matlab平台下Nvidia显卡和Intel I7 CPU的并行计算性能比较:第一次测试

目的 :

1. 使用比较好的高端游戏平台(不很贵),测试在Matlab平台下Nvidia显卡和Intel I7 CPU做并行计算的性能

 2.解决如下问题

(1) 性能是1-2倍差距,还是5-20倍差距,还是50-100倍差距?

(2)要考虑并行计算的话 ,需不需要在有限预算下配高端游戏显卡,还是以配更好的CPU为主?

(3)信号处理的算法(非信息处理)的应用背景下,程序的编写简便和运行速度那个重要?


平台 

CPU:I7 4790K

显卡:GTX 970

内存:8G

其余都一样 

(去淘宝找I7 4790K的组装机,配置大多数都差不多)


测试结果 

1.测试1

程序基础设定 

(1).使用parfor 循环100次 ,做4000x4000的FFT2 运算,数据类型单精度(多运算几次,第一次很慢,需要配置系统,第二次,第三次就快了,而且结果相差不大)

运行结果如下

基于 CPU并行计算 ,使用 16.594280 秒。
基于 GPU并行计算 ,使用11.476335 秒。


(2).使用parfor 循环100次 ,做1000x1000的FFT2 运算数据类型单精度

运行结果如下

基于 CPU并行计算 ,使用 1.184894 秒。
基于 GPU并行计算 ,使用 0.809882 秒。


结论

1.与 《NVIDIA GTX 980 通用并行计算实测》(http://tieba.baidu.com/p/3700790326),测试结果相差很大。

2.Matlab平台下,结合其他程序(有些程序无法并行),FFT2性能是在整体提高30%-50%左右。个人估计其他类似程序,经过专门优化,速度提高在 2-4倍左右,运行时间能降低50%或者70%

3.要考虑并行计算的话 ,还是配高端CPU为主(不要是5960X,至强高端系列,那种很贵的)。因为大部分计算程序还是无法并行,用通用CPU,程序编写简便舒服点。

4.大规模的信号处理程序和模型参数识别,如优化。程序运行在10分钟到半小时之内,以CPU为主。需要2到3小时,才能运行出结果的程序。在能并行化的前提下,用GPU并行比CPU并行优化能省50%-90%的时间,还是要配好点的显卡吧。


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%测试程序

function mainTestGPU1
%%
%%%%test using GPU or no
clear all;
close all;


s = tic;
parfor i = 1:100
A= rand(4000,4000,'single');
B=fft2(A);
end
toc(s)




s = tic;
parfor i = 1:100
A= rand(4000,4000,'single');
A1=gpuArray(A);
B=fft2(A1);
B = gather(B);
end
toc(s)
end

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值