Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CUDA:指令获取问题_Cuda - Fatal编程技术网

CUDA:指令获取问题

CUDA:指令获取问题,cuda,Cuda,我写了一个内核,它在指令获取方面有一些问题。超过75%的问题暂停原因是由于指令获取 我不知道如何改进这一点。Nvidia没有说明任何关于指令获取策略的内容,Nsight文档也没有提供任何信息:如果下一条汇编指令尚未获取,则说明指令获取暂停的原因 有没有办法避免这个问题或减少影响?这是什么类型的内核?你的问题是什么?我们能看看代码吗?分支可能是罪魁祸首吗?那么75%的指令发出暂停是由于指令获取,但首先有多少个发出暂停?如果warp-issue-efficiency图是相关的,那么首先似乎指令发出仅

我写了一个内核,它在指令获取方面有一些问题。超过75%的问题暂停原因是由于指令获取

我不知道如何改进这一点。Nvidia没有说明任何关于指令获取策略的内容,Nsight文档也没有提供任何信息:如果下一条汇编指令尚未获取,则说明指令获取暂停的原因


有没有办法避免这个问题或减少影响?

这是什么类型的内核?你的问题是什么?我们能看看代码吗?分支可能是罪魁祸首吗?那么75%的指令发出暂停是由于指令获取,但首先有多少个发出暂停?如果warp-issue-efficiency图是相关的,那么首先似乎指令发出仅在6.2%的周期内暂停,因此我们讨论的是占总周期4.65%的指令获取暂停,即一个次要的效率问题?一个可能的原因是分支,特别是循环末尾的反向分支,其主体超过了指令缓存的大小。如果您的代码包含部分展开的循环,请尝试减少展开因子。你是对的,向后分支可能是问题所在。我不知道这些图是否相关,但如果相关,我同意这是一个小问题。在我的简单FMA循环中,我使用了积极的循环展开,例如256个循环,但仍然注意到大量的指令提取暂停。事实上,展开因子越大,百分比越高。有人能解释一下吗?