Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/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,我似乎遇到了可以在计算引擎队列中排队的异步内核启动数量的限制。在此限制之后,主机将被阻止,GPU-CPU并发性将丢失。CUDA编程指南中没有提到这一点 可以在计算引擎队列中排队的异步内核启动的最大数量是多少 这个最大数量在某种程度上取决于正在启动的内核吗 CPU将内核启动放入计算引擎队列所需的时间是否取决于正在启动的内核 可以在复制引擎队列中排队的异步memcpy的最大数量是多少 我不确定这个问题是否有一个通用的答案,在某种程度上它是平台和CUDA版本特定的AFAIK。回答你的要点 我认为,

我似乎遇到了可以在计算引擎队列中排队的异步内核启动数量的限制。在此限制之后,主机将被阻止,GPU-CPU并发性将丢失。CUDA编程指南中没有提到这一点

  • 可以在计算引擎队列中排队的异步内核启动的最大数量是多少
  • 这个最大数量在某种程度上取决于正在启动的内核吗
  • CPU将内核启动放入计算引擎队列所需的时间是否取决于正在启动的内核
  • 可以在复制引擎队列中排队的异步memcpy的最大数量是多少

我不确定这个问题是否有一个通用的答案,在某种程度上它是平台和CUDA版本特定的AFAIK。回答你的要点

  • 我认为,限制是队列大小,因此队列操作的数量是最大的,而不是内核启动。相同的总限制应适用于内核、复制操作和流事件的任何组合。操作总数取决于平台和CUDA版本
  • 没有
  • 否,但一旦驱动程序队列被填满,提交任何异步操作所需的时间将大大增加
  • 见第一点。我认为驱动程序无法区分拷贝、内核启动或事件
我还记得在CUDA 2.1上做过一些基准测试,发现所有操作都运行得很快,直到24个操作排队,然后后续操作排队的时间就变慢了。当CUDA3.0发布时,我没有任何代码可以达到旧版本中存在的限制,所以有些东西改变了。编写一个基准来检查更现代的CUDA版本的功能应该很简单