小编mat*_*msa的帖子

我的OpenCL内核在更快的硬件上速度较慢..但为什么呢?

在我完成多核编程课程的编写时,我想出了一些非常奇怪的东西,我想和你讨论.

我们被要求创建任何程序,以显示为多核平台编程的显着改进.我决定尝试在GPU上编写代码以试用OpenCL.我已经选择了矩阵卷积问题,因为我对它非常熟悉(我之前使用open_mpi对它进行了并行处理,对于大图像来说速度很快).

所以在这里,我选择一个大的GIF文件(2.5 MB)[2816X2112],我运行顺序版本(原始代码),我得到平均15.3秒.

然后我运行我刚刚在我的MBP集成GeForce 9400M上编写的新OpenCL版本,我得到的平均时间为1.26秒.到目前为止一切都很好,它的速度是12倍!

但是现在我进入节能面板打开"图形性能模式"该模式关闭GeForce 9400M并打开我的系统所具有的Geforce 9600M GT.Apple称这张卡的速度是集成卡的两倍.

猜猜看,我使用kick-ass显卡的时间平均为3.2秒...我的9600M GT似乎比9400M慢两倍多..

对于那些倾向于OpenCL的人,我在开始之前将所有数据复制到远程缓冲区,因此实际计算不需要往返于主ram的往返.另外,我让OpenCL确定最佳本地工作量,因为我已经读过它们在确定参数时已经做了很好的实现.

有人有线索吗?

编辑:makefile文件的完整源代码http://www.mathieusavard.info/convolution.zip

cd gimage
make
cd ../clconvolute
make
put a large input.gif in clconvolute and run it to see results
Run Code Online (Sandbox Code Playgroud)

opencl hardware-acceleration

11
推荐指数
2
解决办法
3970
查看次数

如何使用MPI_CART将进程映射到超立方体

我正在尝试使用MPI为2 ^ n处理器实现bitonic排序.

为了方便起见,我想使用n维超立方体来做到这一点.使用MPI_Cart_Create我可以创建自组织维度.这样做可以最大限度地提高我的工艺效率,并减少我必须吐出的LOC数量才能完成.

谷歌搜索和文学总是说同样的事情:

注意,n维超立方体是n维环面,每个坐标方向有2个处理.因此,不需要对超立方体结构的特殊支持.

我还没有看到任何单个例子+ n维三环,每个坐标方向有2个进程对我来说似乎不过是个谜.有人要建议吗?

谢谢,

sorting mpi cartesian hypercube

2
推荐指数
1
解决办法
2715
查看次数