c++ classes and related problems

Есть класс с парой-тройкой методов и ~20 атрибутами. На вход методу подается массив экземпляров этого класса и производятся всяческие вычисления. Метод хочу запустить на gpu.
Подскажите, как лучше это осуществить?
Если завести структуру, массивчик с ними и туда копировать данные перед отправкой на gpu, это, наверное, сильно замедлит работу? Размерность массива порядка 10000.

Forums: 

У Интела на эту тему есть

У Интела на эту тему есть текст(ы) (хотя нету GPU, но суть одна). Про то, что нужен не массив структур, а структура массивов.

Смысл тут вот в чем: если у вас атрибуты структуры, то они лежат в памяти рядом, соответственно два одинаковых атрибута одной структуры лежат далеко друг от друга. А быстрый доступ к памяти (что на GPU, что на CPU) - к соседним элементам.
Т.е. если у вас код такого вот типа

  1. struct A {
  2.   int value;
  3.   char purga[200];
  4. };
  5. A values[10000];
  6. ..
  7. for(i=0;i<...)
  8.  sum += values[i].value;

То гораздо выгоднее вынести нужные вам значения куда-то в памяти компактно. И векторизация может случиться и прочие 33 удовольствия.