让我们假设我正在执行这个简单的内核:
__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毫秒。
我的问题是,有这个时间这是正常的吗?反正有改进吗?