Мне интересно, как вставить значения в ядро CUDA таким образом, чтобы все они были смежными. Позвольте мне объяснить: представьте, что у меня есть два массива (или выделения памяти) «a» и «b», и «a» в начале примерно так:
a = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Длина a равна 10. Вычисление выполняется с использованием другого массива b с равным размером (в данном случае 10). Я должен проверить условие (на значениях "b"), и если оно истинно, я должен поместить значения в первый массив (а). Допустим, что b:
b = [1, 17, 15, 12, 16, 7, 3, 8, 10, 11]
И, скажем, мне нужно проверить, какое число четное, и поместить его в «a», начиная с первой свободной позиции (я знаю, это потому, что у меня есть индекс для этого) до следующих n позиций (где n - это число значений, которые проверили условие, и у меня также есть «n»), все смежные, поэтому, в этом примере, конечный результат будет быть:
a = [12, 16, 8, 10, 0, 0, 0, 0, 0, 0]
Порядок вставки не важен, то есть:
a = [12, 16, 8, 10, 0, 0, 0, 0, 0, 0]
эквивалентен:
a = [8, 12, 10, 16, 0, 0, 0, 0, 0, 0]