首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将__restrict__与__constant__指针指向的数组组合起来?

问如何将__restrict__与__constant__指针指向的数组组合起来?
EN

Stack Overflow用户
提问于 2015-08-04 16:56:01
回答 1查看 256关注 0票数 0

这将是一个有点古怪的问题,我认为,如果我需要详细说明,请这样说。

情况如下:我有大约2G的GPU内存包含我的随机数,我需要使用这些在许多不同的功能。为了防止将指针传递到这个内存,从设备函数传递到设备函数(并且多次传递),我将指针放入gpu常量内存中,这也节省了我的寄存器(对我来说非常重要)。现在我知道了,在某些情况下,如果函数被解释为它的参数所指向的内存块是不重叠的,可以使用关键字__restrict__来加速它们。

问题:如何确保编译器知道常量内存中指针所指向的全局内存中的内存块是不重叠的(也许知道这一点也很好:在生成随机内核调用之后永远不会改变)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-05 15:00:17

我不知道如何为编译器提供关于其他匿名指针的启发式方法。

如果您可以管理它,尝试并帮助编译器完成其工作的最简单方法是将指针作为__restrict__修饰的内核参数传递,然后强制设备函数内联。这将绕过ABI,并允许编译器利用已知的非混叠条件来优化内存访问模式。它还应该有助于您的函数的寄存器占用一点。我不确定__restrict__会对__device__函数或__constant__声明产生多大影响,但是您已经注意到编译器接受它,所以我想至少尝试一下不会有什么害处。

我期待着从NVIDIA的工具链或优化大师的意见,什么可能会发生在引擎盖下,哪些其他技巧可能是有用的在这种情况。

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

https://stackoverflow.com/questions/31815090

复制
相关文章

相似问题

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