안녕하십니까. 예를 들어 은 두 개의 openCL 커널 중 하나의 커널을 추가하고 다른 하나는 sub라고 가정합시다.openCL 메모리 재사용
추가 커널 서브 커널 장치에 두번 2 개 입력 동일 제가 동일한 입력을 복사 할 필요가 두 커널 (& 입력 2 입력 1) 미국
__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];
}
이다
__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];
}
인 호스트 메모리에서 가져 오면 성능면에서 약간의 비용이 추가 될 수 있습니다.
메모리를 해제하지 않을 때까지 데이터를 한 번 복사 한 다음 다시 사용할 수있는 방법이 있습니까?
왜 동일한 입력을 두 번 복사해야합니까? 장치 메모리에 버퍼를 만들고 clSetKernelArg()를 통해 커널 인수를 다시 정의하여 재사용 할 수 있습니다 (물론 * 동시에 * 사용하는 것이 더 까다 롭습니다. 사실 OpenCL 표준에 의해서도 허용됨). – Thomas