我正在处理图像立方体(450x450x1500)的大数据集。我有一个适用于单个数据元素的内核。每个数据元素产生 6 个中间结果(浮点数)。我的块由 1024 个线程组成。每个线程(6 个浮点数组)将 6 个中间结果存储在共享内存中。但是,现在我需要添加每个中间结果以产生总和(6 个总和值)。我没有足够的全局内存来将这 6 个浮点数组保存到全局内存,然后从主机代码中运行推力或任何其他库的缩减。
是否可以从共享内存中数组的内核函数内部调用任何缩减例程?
解决这个问题的最佳方法是什么?我是 CUDA 编程的新手,欢迎任何建议。