OpenCL内核排队与开始在ATI卡上运行之间的延迟
我最近将一个OpenCL应用程序从一个NVIDIA GPU迁移到一个运行在Ubuntu 12.04上的Radeon HD 6320 Fusion,它的运行速度出乎意料地慢了很多 我的程序在安装时将一个非常大的数据结构复制到GPU(CPU不再读取或访问该数据结构),然后:OpenCL内核排队与开始在ATI卡上运行之间的延迟,opencl,Opencl,我最近将一个OpenCL应用程序从一个NVIDIA GPU迁移到一个运行在Ubuntu 12.04上的Radeon HD 6320 Fusion,它的运行速度出乎意料地慢了很多 我的程序在安装时将一个非常大的数据结构复制到GPU(CPU不再读取或访问该数据结构),然后: 对几个内核和一个读取缓冲区进行排队(将非常小的数据结构复制回主内存) 调用clFinish以等待内核和读取缓冲区完成 这会不断重复,偶尔会复制一些额外的数据,具体取决于读取缓冲区返回的信息(这意味着读取缓冲区必须在下一轮内核添加
有什么原因导致我会有这么大的延迟吗?可能有很多原因,您是否正在运行其他可能需要完成的GPU程序,以便调度器可以为您腾出一些时间
问题是OpenCL规范没有定义可能的等待时间。从内核排队到它的执行没有时间要求,只要求它在某个时刻执行。我可能会在ATI OpenCL板上发表文章,那里的开发人员对这个问题非常熟悉,可能会给你一个答案。这是amd平台中的一个已知问题。查看此论坛链接
希望它是/将是固定的你尝试过不同的队列吗?你的论坛链接过时了,没有标题或任何我们可以搜索的内容…更新了链接