CUDA下四重循环两种并行方式效率分析

本文探讨了CUDA环境下四重循环的两种并行实现方式:粗粒度并行与细粒度并行。实验结果显示,在M、N、I、J均为256的情况下,粗粒度并行比细粒度并行慢1.7倍。性能分析表明,for循环的指令开销是主要影响因素。尽管粗粒度并行在X=6时合并kernel有所提升,但细粒度并行在简单算术运算上表现更优,开销降低至1.6倍。
摘要由CSDN通过智能技术生成

1 问题描述

原代码:for(int m=0;m<M;m++)

                     for(intn=0;n<N;n++)

                            for(inti=0;i<I;i++)

                                   for(intj=0;j<J;j++)

                                   {

                                          //X条算术运算;(X=6)

                                          B[i][j]= pow(A[i][j],2);

                                          C[ij][]= sqrt(B[i][j]);

                                          ……

                                   }

两种并行方式

1 粗粒度并行:分成X个kernel函数,每个kernel函数里面做两层循环,内层循环并行打开,每个kernel执行一条算数运算。

              Kernek_1:for(int m=0;m<M;m++)

                                   for(intn=0,n<N’n++)

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值