现在,我想实现每个线程执行一条指令,而不是一条语句,有没有什么方法可以实现CUDA C里面嵌套汇编。
你好,您可以在您的kernel里面嵌入PTX代码来实现这一点。
欢迎来到cudazone,祝您编码愉快~
能不能具体说明一下 我现在想让每个kernel就执行add这个指令 和有关存储的其他指令先做好 我就 我就要看到每个kernel 只执行add 能否具体说明一下 非常感谢
您可以查看一下cudatoolkit自带的ptx isa的pdf文档,或者
http://docs.nvidia.com/cuda/parallel-thread-execution/index.html
这里的在线文档。
祝您编码愉快~
CUDA 暂不支持直接利用最底层的ISA进行编程。
PTX是编译的中间结果,会被进一步优化,不代表最终程序执行的指令。
不过你可以用cuobjdump对nvcc产生的cubin文件进行反汇编。从而查看nvcc编译后的结果,进而验证是否得到了想要“每个线程执行一条指令”程序。
大神 能否留个邮箱 以后可以询问问题 非常感谢
我现在想实现如何cuda代码嵌套汇编代码 然后可以单一指令重复多次运行。。 还有就是你有关于cuobjdump的详细文档或者教程吗
您可以在CUDA toolkit 自带的文档里面找到cuobjdump.pdf。
如果需要参考PTX的文档这里也有的。
祝您编码愉快。
不是什么大神 呵呵。ice 说得对,你可以参考这些文档,里面有详细的使用方法。
几位版主和我们都会随时关注论坛,如果再有什么问题都可以发到论坛中,我们会尽早回复。如果需要也可以发我论坛里留的邮箱。
cuobjdump是不是只支持计算能力1.0~1.3的cubin文件?
您好,更高版本也支持的。
祝您好运!
但是好像只有采用-sass参数的时候有输出,其他参数都没有输出,这是为啥呢?
用-dump-sass输出的是sass的反汇编,而-dump-ptx则输出的是ptx的。
使用-dump-chenhao可以有效的dump出其他你想要的东西(真的么??)
自从cuda4(如果我没记错的话)之后,生成的可执行文件已经是标准的elf格式了,所以和计算能力无关。
PE和PE32+的exe文件带领COFF格式的.obj文件小弟们默默无语飘过。
Windows和微软默默无语飘过。
我默默无语飘过。
以及,我不认为能否从PE格式的可执行文件(或者elf格式的其他某平台可执行文件)和能否被cuobjdump支持提取其中的cubin并反汇编有关系。外层只是相当于容器,cubin放置里头。
-cubin可是什么都没有输出啊,toolkit是4.2的
-cubin可是什么都没有输出啊,toolkit是4.2的,和debug和release有关系吗?
coff is not ELF.BTW, I mean that works on Linux if I say anything related to CUDA.
I don’t care about windows, HPC don’t care about Windows, and CUDA is based on HPC.
风大您好:
1:横扫斑竹并未说过coff和elf是一样的,实际上前面一直是以两种并行的平台举例子的。
2:16#中内容的关键在于“可执行文件的格式本身并不构成cuobjdump提取cubin并反汇编的一个限制”。而非纠结于具体哪个平台或者哪种格式。
因此您19#回复的内容并没有真正回答您引用的16#的内容。
大致如上,与君商榷。