Эффективная топологическая структура данных для сеток на CUDA?

В университетском проекте задача моей группы — внедрить отслеживание поверхности на основе сетки на CUDA. Для этого нам нужна топологическая структура данных для треугольных сеток.
В реализации ЦП я бы использовал что-то вроде полуребра или winged-edge, но в CUDA это приводит к случайному переходу через глобальную память, что очень медленно. Топология сетки будет меняться очень часто, поэтому структура данных также должна иметь возможность динамически меняться.

Существует ли структура данных для CUDA, отвечающая этим требованиям?


person maddin45    schedule 01.06.2013    source источник


Ответы (1)


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

person Thomas Young    schedule 29.07.2015