加速代码传递解释器但在CUDA下失败

时间:2015-08-24 13:21:11

标签: haskell cuda numeric accelerate-haskell

我一直在尝试编写一个函数,它将使用加速库获取矢量的直方图。我认识到直方图并不是GPU处理的理想情况,但是我从一个小种子生成了一个相当大的数据集,如果它可以在将其转移回主存之前减少到几千字节阵列,那就太好了。

我提出的代码如下。它需要一些输出区然后创建一个新数组,其中a [x]的值是xs中x的出现次数

hist :: A.Exp Int -> A.Acc (A.Vector Int) -> A.Acc (A.Vector Int)
hist bins xs = A.permute
               (const (+1))
               (A.fill (A.index1 bins) 0)
               (A.index1 . (xs A.!))
               xs

代码似乎在Accelerate解释器下正常运行。但是,如果我尝试通过accele-cuda调用它,我会收到以下错误消息。

./Data/Array/Accelerate/CUDA/State.hs:85:9: (unhandled): CUDA Exception: unspecified launch failure

我的问题是双重的。首先,我在做什么导致CUDA失败?第二,有没有更好的方法通过Accelerate获取直方图?

0 个答案:

没有答案