Путь доступа в Zero-Copy в OpenCL
Я немного запутался в том, как именно работает нулевое копирование.
1- Хочу подтвердить, что следующее соответствует нулевой копии в 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 . .
. . .
............................
GPU / CPU обращается к System / GPU-RAM напрямую, без явного копирования.
2-В чем преимущество этого? PCI-e по-прежнему ограничивает всю полосу пропускания. Или единственным преимуществом является то, что мы можем избежать копий c2 & amp; c1 / c3 в вышеуказанных ситуациях?