Caminho de acesso em cópia zero no OpenCL
Estou um pouco confuso sobre como exatamente o trabalho de cópia zero.
1- Deseja confirmar que o seguinte corresponde a zero-copy no opencl.
.......................
. . .
. . .
. . CPU .
. SYSTEM . .
. RAM . c3 X .
. <=====> .
...|...................
PCI-E / /
| / /
c2 |X /PCI-E, CPU directly accessing GPU memory
| / / copy c3, c2 is avoided, indicated by X.
...|...././................
. MEMORY<====> .
. OBJECT .c1 .
. . GPU .
. GPU RAM . .
. . .
...........................
.......................
. . .
. . .
. . CPU .
.SYSTEM RAM . .
. . .
. . c3 .
. MEMORY<====> .
...| OBJECT............
| \ \
PCI-E \ \PCI-E, GPU directly accessing System memory. copy c2, c1 is avoided
| \ \
C2 |X \ \
...|.........\..\...........
. | . .
. <=======> .
. GPU c1 X GPU .
. RAM . .
. . .
............................
A GPU / CPU está acessando diretamente o sistema / GPU-RAM, sem cópia explícita.
2-Qual a vantagem de ter isso? O PCI-e ainda está limitando toda a largura de banda. Ou a única vantagem é que podemos evitar cópias c2 & c1 / c3 em situações acima?