Pyopencl Enqueue Copy对于大缓冲区来说太慢了

时间:2017-06-10 14:47:42

标签: python arrays numpy pyopencl

让我们假设我正在执行这个简单的内核:

__kernel void sine(__global float *res){
    int i = get_global_id(0);
    res[i] = sin((float)i);
}

所以我基本上计算了n个样本的正弦值。我有一个numpy空数组float32,其形状为n,而WRITE_ONLY缓冲区的大小与numpy数组相同。

使用输入缓冲区调用具有n全局大小的内核,n=10000000大约需要0.2ms,现在,使用Equeue Copy将数据从缓冲区复制到空数组100毫秒。

我的问题是,有这个时间这是正常的吗?反正有改进吗?

0 个答案:

没有答案