2012-01-05 4 views
1

Меня интересует внедрение кодов частиц на графических процессорах с использованием CUDA для некоторых целей моделирования жидкостей.Лучший способ представить частицу в кодах CUDA

Моя частица должна иметь информацию, такую ​​как положение, масса, импульс, положение и некоторые другие физические параметры. Во всех моих симуляторах будут N частиц N> = 10^5

Мой вопрос - это самый эффективный способ представления данных для этих частиц?

ли я представлять физические величины в течение нескольких массивов, таких как масса [N], импульса [N], Позиция X [N] .... или я создать

struct particle 
{ 

mass M; 

pressure p; 
. 
. 

} 

, а затем создать массив из этих структур. Пожалуйста, порекомендуйте.

ответ

4

Использование отдельных массивов предпочтительнее использовать массив структур. Использование непрерывной памяти для каждой величины позволяет объединять память, тогда как чтение произвольной размерной структуры не происходит. Некоторые количества, которые обычно считываются как кортеж (например, позиции или компоненты скорости), вероятно, лучше всего сохраняются с использованием одного из собственных векторных типов графических процессоров (float2, float4) и считываются в транзакции с одной памятью. Это позволит увеличить пропускную способность памяти.

Смежные вопросы