小编brb*_*002的帖子

ArrayFire与原始CUDA编程?

我对GPU编程很陌生,但由于我有一个计算密集型的任务,我已经转向GPU以获得可能的性能提升.

我尝试使用ArrayFire Free版本重写我的程序.它确实比启用多线程的CPU例程更快,但达不到我预期的程度(即<100%加速),并且返回的结果不是很正确(假设与CPU例程相比误差<1%,假设CPU例程的结果是正确的).

我的任务主要是基于元素的float-32数学运算在大型矩阵(300MB-500MB大小)上,几乎没有if-thens/switch-cases等.我想性能瓶颈可能是CPU和GPU内存之间的带宽,因为它有我测试的GPU是GeForce 580GTX,带有3GB的视频内存.

如果我编写原始CUDA代码(使用CUBLAS等和平均优化)而不是使用ArrayFire来完成我的任务,是否还有一些重要的优化空间?我读了一些NVIDIA优化指南; 似乎有一些内存访问技巧可以加快数据访问速度并减少银行冲突.ArrayFire会自动使用这些常规技巧吗?

cuda gpu arrayfire

16
推荐指数
1
解决办法
4031
查看次数

标签 统计

arrayfire ×1

cuda ×1

gpu ×1