У меня есть большой массив (скажем, 512K элементов), резидентный GPU, где нужно обрабатывать только небольшую часть элементов (например, 5K случайно распределенных элементов - множество S). Алгоритм для определения того, какие элементы принадлежат S, очень эффективен, поэтому я могу легко создать массив A указателей или индексов для элементов из набора S.Редкий массив в CUDA или OpenCL
Что такое наиболее эффективный способ запуска только ядра CUDA или OpenCL над элементами из S? Могу ли я запустить ядро над массивом A? Все примеры, которые я видел до сих пор, касаются смежных 1D, 2D или 3D массивов. Есть ли проблема с введением одного слоя косвенности?
Является ли массив массивным GPU-резидентным? Я помню, что скорость передачи на GPU не так велика, поэтому простое копирование A на графический процессор может сэкономить время, особенно если тест на A-версию равен O (1). – rampion
Это резидент GPU (я отредактировал вопрос, чтобы отразить это). –
Архитектура CUDA предоставляет различные виды памяти. Что вы используете? – karlphillip