OpenCL合并

时间:2017-11-13 19:59:58

标签: c opencl

我最近在使用不同的内核,我注意到我的读/写效率低(至少在我看来)。

我读到了关于合并内存访问的内容,我想我明白了,但我不知道出了什么问题。所以我去了一个简单的测试:

__kernel void TestCoalesced(__global float* data) {
    data[get_global_id(0)] = 200.0f; 
}

我将内核排列如下:

  m_err = clEnqueueNDRangeKernel(m_queue, m_kernel, 1, NULL, (size_t)(6220800), NULL, 0, NULL, NULL);

这是一个类似于我之前使用的图像的示例调用(1920 * 1080 * 3 = 6220800 =约6mb)。

因此内核只是在数组中的工作项位置写入。这应该不会更快?这需要大约1.06ms,当我查看CodeXL时,缓存命中率为0。

enter image description here

我有什么问题吗?我有一台带有2Go的AMD Radeon R7 200系列。

编辑

根据以下评论,我的问题可能会改为:

是否有任何工具或探查器可以知道我的数据访问是否已合并?因为我觉得我的内核运行缓慢,所以这么简单。

0 个答案:

没有答案