cuda - 是否有宏来定义特定内核可以使用的最大寄存器数量?

标签 cuda gpu nvidia

我编写了一个 CUDA 库,有没有办法专门在某些库内核上设置寄存器上限,而不是在库内的所有内核上设置寄存器上限?

最佳答案

在 C 代码级别没有。您可以使用 __launch_bounds__ 关键字指定每个 block 的线程的预期上限,这可能会导致编译周期期间每个线程的寄存器上限。或者,如果编译为 PTX,则可以将 .maxnreg 引入内核前导码。

CUDA 5 现在支持单独编译并具有设备代码链接器,因此还应该可以使用不同的编译器参数将内核编译为不同的设备对象文件,然后将它们链接到您的库对象中。

关于cuda - 是否有宏来定义特定内核可以使用的最大寄存器数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074149/

相关文章:

python - PyCUDA 和 NumbaPro CUDA Python 有什么区别?

c++ - CUDA 优化不起作用

graphics - Skia 或 Direct2D 如何使用 GPU 渲染线或多边形?

c - 使用CUDA内核进行数组操作

c++ - CUDA 和 Eclipse : How can I tell eclipse that <<< (or >>>) is part of the syntax?

c++ - STL推力多 vector 变换?

cuda - GPU中的上下文切换机制是什么?

macos - 如何检测 macOS 上的外部 GPU (eGPU) 连接和断开连接?

optimization - 分析时,大部分时间都花在 nvoglv64.dll 中。我应该推断出什么?

c++ - Vulkan:几何着色器验证不正确?