Я хочу написать функцию CUDA, которая извлекает точки изображения, которые удовлетворяют определенному условию, а затем помещает их в непрерывный блок памяти на устройстве.
Причина, по которой точки находятся в непрерывном блоке памяти на устройстве, заключается в том, что я могу сразу же обрабатывать эти точки параллельно, используя идентификаторы блоков и потоков в качестве индексов для точек в этом списке.
Если я обрабатываю точки, используя то же ядро (функцию), которое использовалось для их обнаружения, я теряю большую часть своих потоков, поскольку хочу назначить один поток на точку изображения, и очень немногие потоки будут принадлежать желаемым точкам. Остальные темы просто должны будут сидеть и ждать. Не говоря уже о том, что потоки, обрабатывающие нужные точки, будут принадлежать разным блокам, что серьезно подрывает предполагаемый выигрыш от распараллеливания операции в первую очередь.
Если у вас есть какие-либо предложения о том, как я могу взять набор точек и перенести их в новое местоположение на устройстве параллельно (!), Я открыт для идей. Спасибо за ваше время.