Презентация датируется 2011 годом и в первую очередь предназначалась для устройств с архитектурой Fermi (cc2.x).
В этих устройствах возможность полного параллелизма копий D2H и H2D вместе с одним или несколькими ядрами в конвейерном алгоритме (т. е. последовательность запусков D2H, H2D и ядра в обычном порядке) будет зависеть от фактический порядок выдачи (т. е. последовательность операций в хост-потоке). Это связано с «ложными зависимостями», которые архитектура Fermi вставляла между операциями в отдельных потоках, которые не должны иметь никакой зависимости друг от друга. Краткое описание причины этого дано на слайдах 20 и 21 данной презентации. Я не думаю, что было опубликовано более подробное описание этой архитектурной характеристики Ферми.
Кеплер представил Hyper-Q, который должен был уменьшить или устранить этот эффект. Архитектура не должна вводить такие ложные зависимости, поэтому с Kepler (cc3.x) и более поздними версиями должно быть возможно выполнять операции либо в порядке в глубину, либо в порядке в ширину, и по-прежнему наблюдать параллелизм между передачами данных. и операции ядра.
21.03.2016