cuda/OpenCL中使用全局内存的前缀和/扫描

cuda/OpenCL中使用全局内存的前缀和/扫描,opencl,prefix-sum,Opencl,Prefix Sum,我正在寻找使用CUDA或OpenCL的前缀和/扫描算法的全局内存实现。 所有的实现都是使用本地内存完成的。 有人能帮我介绍一下算法和应该如何进行吗?对于CUDA,在中以及中都提供了快速前缀和。强制cub不使用共享内存作为临时存储是可能的,尽管我不知道您为什么要这样做。如果您想自己编写代码(不推荐),可以开始。将临时存储从共享移动到全局应该是一个微不足道的修改。我想这样做,因为我的机器不支持本地内存。它无法使用_local访问本地内存中声明的变量。所以我想用全局内存运行它。@Luniam:那么你是

我正在寻找使用CUDA或OpenCL的前缀和/扫描算法的全局内存实现。 所有的实现都是使用本地内存完成的。
有人能帮我介绍一下算法和应该如何进行吗?

对于CUDA,在中以及中都提供了快速前缀和。强制cub不使用共享内存作为临时存储是可能的,尽管我不知道您为什么要这样做。如果您想自己编写代码(不推荐),可以开始。将临时存储从共享移动到全局应该是一个微不足道的修改。我想这样做,因为我的机器不支持本地内存。它无法使用_local访问本地内存中声明的变量。所以我想用全局内存运行它。@Luniam:那么你是在没有本地内存的平台上使用OpenCL?真的有这样的事情吗?AFAIK OpenCL需要对
\uuu local
内存的支持。也许这是对一些HD 4xxx GPU的参考,这些GPU“模拟”本地内存,性能可能会受到影响。我认为你不可能拥有一个实际上不支持本地内存的OpenCL兼容平台。我在使用本地内存时会遇到以下错误:在initial.cpp***[14100.684249]马里:在文件中:/home/jbmaster/work/01.LPD_OpenCL_RFS/01.arm_work_3_0_31/SEC_All_EVT0_TX013-BU-00001-r2p0-00rel0/TX013-BU-00001-r2p0-00rel0/driver/product/kernel/drivers/gpu/arm/t6xx/kbase/src/common/Mali_kbase_kbase_mmu.c行:1240功能:kbase_mmu报告故障和_kill[7014124]aseC002001;未处理的ase00页[14100.709728]原始故障状态0x500003C3[14100.709730]已解码故障状态:从属FA[14100.709738]源id 0x5000