大家好,以两个openCL内核为例,一个内核让我们说add,另一个是sub。
添加内核是
__kernel void add(global int *output1,global int *input1,global int *input2
/* Put other parameters here */
)
{
int i = get_global_id(0);
output1[i] = input1[i] + input2[i];
}
子内核是
__kernel void add(global int *output2,global int *input1,global int *input2
/* Put other parameters here */
)
{
int i = get_global_id(0);
output2[i] = input1[i] - input2[i];
}
对于这两个输入相同的两个内核,我需要将相同的输入(输入 1 和输入 2)从主机内存复制到设备两次,这可能会增加一些性能成本。
有什么方法可以让我复制一次数据并在任何功能中重新使用它,直到我不释放内存?