В Thrust
У меня есть три вектора устройстваThrust вектор доступа элементы по другому вектору
device_vector<int> ID(N)
device_vector<float> F(M),Y(N)
где обычно M<<N
(но это не имеет значения). Все значения ID
находятся в диапазоне 0...M-1
.
Я хотел бы назначить Y[i] = F[ID[i]]
для всех i=0...N-1
. Если я правильно понял Thrust, я не могу это сделать с for_each
и некоторым функтором. Есть ли способ реализовать это так, чтобы я мог использовать thrust::transform
или что-то подобное?
Таким образом, вы не хотите ничего делать на хосте? – coincoin
Точно, если возможно, я хочу избежать хоста. – k1next
Это называется операцией «собрать» - взгляните на алгоритм 'pushust :: gather'. –