Transferência sobreposta e computação de dispositivos no OpenCL

Eu sou um iniciante no OpenCL e tenho dificuldades em entender alguma coisa. Eu quero melhorar as transferências de uma imagem entre o host e o dispositivo. Eu fiz um esquema para me entender melhor.

Top: o que eu tenho agora | Bottom: o que eu quero HtD (Host to Device) e DtH (Device to Host) são transferências de memória. K1 e K2 são kernels.

Pensei em usar o mapeamento de memória, mas a primeira transferência (Host to Device) é feita com o comando clSetKernelArg (), não? Ou eu tenho que cortar minha imagem de entrada em sub-imagem e usar o mapeamento para obter a imagem de saída?

Obrigado.

Editar: Mais informações

K1 processar imagem de entrada mem. Imagem de saída do processo K2 do K1.

Então, eu quero transferir o MemInput em várias partes para o K1. E eu quero ler e salvar no host o MemOuput processado pelo K2.

questionAnswers(4)

yourAnswerToTheQuestion