使用立即(整数)操作数编译CUDA代码,它们是保存在指令流中,还是放在内存中?具体来说,我正在考虑24或32位无符号整数操作数。
到目前为止,我还没有在任何CUDA文档中找到相关信息。所以对像这样的特定uarch细节的任何文档的引用都是完美的,因为我目前没有一个关于CUDA在这个级别如何工作的好模型。
答案 0 :(得分:3)
NVIDIA不会发布有关设备如何在此级别工作的任何信息。有一个名为decuda的工具可以反编译Cubins,因此您可以看到机器代码。如果我记得的话,立即进入指令流,至少就decuda能够推断出来一样。 decuda的问题在于它仅适用于CUDA 2.3或更低版本。他们在CUDA 3.0中将可执行格式更改为elf,并且decuda在很长一段时间内都没有得到维护。
最好的官方文档是PTX documentation,但是文档是虚拟机isa,而不是真实设备。
答案 1 :(得分:0)
如果我没记错,整数除法(例如)非常昂贵,有些浮点运算(如sinf(..))完全在硬件中实现,因此速度很快。
这次演讲给了我一些见解:“计算物理的CUDA技巧”http://physics.bu.edu/~kbarros/talks/