有谁知道如何声明ArrayFire中的数据数组应该存储在共享内存而不是全局内存中?这可能吗?我有一小部分数据需要被所有线程随机访问。这是一个不断查找的表格,应该可以在应用程序的整个生命周期中使用。也许我只是想念明显的东西,但是阅读ArrayFire文档和谷歌搜索没有提供任何有关我如何告诉ArrayFire我的数据需要进入共享内存的信息。在ArrayFire中使用共享内存
0
A
回答
1
在CUDA中共享内存(OpenCL中的本地内存)是位于GPU上的非常快速的内存类型。它具有与线程块相同的生命周期,并且只能由同一个线程块中的线程访问。因此,它不能用于存储即使在原始CUDA中也需要由多个内核使用的持久性数据。您可能想要查看常量或纹理内存来实现查找表(LUT)。这些内存类型通常更适合您通常遇到的LUT访问类型。
ArrayFire具有高级API,可以通过许多常用函数的最快实现之一轻松实现GPU编程。使用ArrayFire,您将无法指定创建哪种类型的内存,但您可以自由使用您自己的内核中的数据。如果你正在使用我们的一个函数,那么我们很可能会在它有意义的地方使用共享/纹理/常量内存。
欧麦尔
披露:我的ArrayFire的开发者之一
相关问题
- 1. 在unix中使用共享内存时
- 2. 在矩阵中使用共享内存
- 3. 在PHP中使用共享内存
- 4. 在共享主机Linux帐户上使用共享内存
- 5. 内存共享
- 6. 在内存中缓存数据共享
- 7. CUDA共享内存占用
- 8. 共享内存在Unix的
- 9. OpenCL中的共享内存
- 10. DLL中的共享内存
- 11. C共享内存
- 12. Linux共享内存
- 13. 共享内存段
- 14. CUDA共享内存
- 15. RDMA内存共享
- 16. 使用boost库释放共享内存中的节点内存
- 17. 使用boost的共享内存
- 18. 使用共享内存的IPC
- 19. OpenACC共享内存使用情况
- 20. C++ - 使用多进程共享内存
- 21. 何时使用volatile共享CUDA内存
- 22. ç共享内存使用fork()的
- 23. 使用fork共享堆内存()
- 24. 在删除共享内存之前从共享内存中分离
- 25. 是否可以在共享内存中加载共享库?
- 26. 如何在共享内存中得到共享对象
- 27. `boost :: multi_index_container`在共享内存中?
- 28. Oracle共享内存领域不存在
- 29. CUDA:在不同内核之间使用共享内存
- 30. 在C++中使用共享内存的远程代理
共用存储器具有内核的寿命,并且是本地的一个块。你想用于像一个小的,不变的查找表是_constant_内存。但是,我不认为ArrayFire允许你真正地指定数组应该驻留的内存。 – Oblomov 2015-04-08 18:59:20