首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ArrayFire中使用共享内存

在ArrayFire中使用共享内存
EN

Stack Overflow用户
提问于 2015-04-06 10:47:41
回答 1查看 350关注 0票数 0

有人知道如何声明ArrayFire中的数据数组应该存储在共享内存中而不是全局内存中吗?这个是可能的吗?我有一小部分数据需要被所有线程随机访问。它是一个常量的查找表,应该可以在应用程序的生命周期内使用。也许我只是错过了一些显而易见的东西,但是阅读ArrayFire文档和谷歌搜索并没有发现任何关于我如何告诉ArrayFire我的数据需要进入共享内存的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 04:42:08

在CUDA中,共享内存(OpenCL中的本地内存)是位于GPU上的一种非常快速的内存类型。它的生存期与线程块相同,只能由同一线程块中的线程访问。因此,它不能用于存储需要多个内核使用的持久性数据,即使在原始数据自动化系统中也是如此。您可能需要查看常量或纹理内存来实现查找表(LUT)。这些内存类型通常更适合于您通常遇到的LUT访问类型。

ArrayFire有一个高级别的API,这使得GPU编程变得容易,它是许多常用函数中最快的实现之一。使用ArrayFire,您将无法指定创建了哪种类型的内存,但是您可以在自己的内核中自由地使用这些数据。如果您正在使用我们的函数之一,那么很可能我们将在有意义的地方使用共享/纹理/常量内存。

奥马尔

披露:我是ArrayFire的开发人员之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29469756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档