我正在尝试找出clcreatecommandqueue
和clenqueuewritebuffer
API之间的关系。
我正在使用一个非常简单的例子,即Vector addition和AMD CodeCL来衡量性能。
以下是clcreatecommandqueue和clenqueuewritebuffer API的不同配置的一些数字:
Scenario Command-Queue Properties blocking_write time taken
1 in-order non-blocking 46.83ms
2 in-order blocking 4.711ms
3 out-of-order non-blocking 46.55ms
4 out-of-order blocking 4.358ms
所记录的时间是从cpu-to-gpu传输4MB数据(我得到了40MB数据传输的类似结果)。
根据我的理解,所花费的时间最少应该是无序和非阻塞,并且所花费的时间最多应该是有序和阻塞写入。
但是上面的数据表明,无论什么类型的命令队列,阻塞写入都优于其他所有。
有人可以帮我理解这些统计数据吗?