是否可以将汇编指令放入 CUDA 代码中?
我想在 CUDA C 代码中使用汇编代码 为了减少昂贵的执行 就像我们在 C 编程中使用 asm 一样。
是否可以?
I want to use assembly code in CUDA C code
in order to reduce expensive executions
as we do using asm in c programming.
Is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
自 CUDA 4.0 起,CUDA 工具链支持内联 PTX。工具包中有一个文档对其进行了描述:Using_Inline_PTX_Assembly_In_CUDA.pdf
下面是一些演示在 CUDA 4.0 中使用内联 PTX 的代码。请注意,此代码不应用作 CUDA 内置 __clz() 函数的替代品,我编写它只是为了探索新的内联 PTX 功能的各个方面。
Since CUDA 4.0, inline PTX is supported by the CUDA toolchain. There is a document in the toolkit that describes it: Using_Inline_PTX_Assembly_In_CUDA.pdf
Below is some code demonstrating use of inline PTX in CUDA 4.0. Note that this code should not be used as a replacement for CUDA's built-in __clz() function, I merely wrote it to explore aspects of the new inline PTX capability.
不,你不能,没有什么比 C/C++ 的 asm 构造更好的了。您可以做的是调整生成的 PTX 程序集,然后将其与 CUDA 一起使用。
有关示例,请参阅此。
但对于GPU来说,装配优化不是必需的,你应该先做其他优化,比如内存合并和占用。请参阅CUDA 最佳实践指南了解更多信息。
No, you can't, there is nothing like the asm constructs from C/C++. What you can do is tweak the generated PTX assembly and then use it with CUDA.
See this for an example.
But for GPUs, assembly optimizations are NOT necessary, you should do other optimizations first, such as memory coalescency and occupancy. See the CUDA Best Practices guide for more information.