Я пишу программу, в которой мне нужно:
- сделать тест на каждом пикселе изображения
- если результат теста TRUE, я должен добавить точку в облако точек
- если результат теста FALSE, ничего не делать
Я уже написал рабочий код на стороне процессора C++. Теперь мне нужно ускорить его с помощью CUDA. Моя идея состояла в том, чтобы сделать некоторый блок/поток (думаю, по одному потоку на пиксель) выполнять тест параллельно и, если результат теста ИСТИНЕН, создать поток для добавления точки в облако.
Вот моя проблема: Как я могу выделить место в памяти устройства для облака точек (используя cudaMalloc или подобное), если я заранее не знаю количество точек, которые я буду вставлять в облако?
Должен ли я выделять фиксированный объем памяти, а затем увеличивать его каждый раз, когда облако точек достигает предельного размера? Или есть способ "динамически" выделить память?