я должен сделать в привязке сокращения массивов с разными ключами, которые повторяются только один раз в то время:производительности тяги :: reduce_by_key с несколькими ключевыми повторениями
keys = {1,2,3,3,4,5,6,7,7, 8, 9, 9,10,11,...}
array = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,...}
// after reduction
result = {1,2,7,5,6,7,17,10,23,13,14}
Использование thrust::reduce_by_key
(или любой другой сегментированным методом редукции) является не самый быстрый вариант здесь, поскольку большинство операций на самом деле являются просто копиями из одного массива в другой.
Что было бы лучшим подходом к этой проблеме?
Можно ли априорно узнать, какие сегменты имеют длину> 1? Если ответ отрицательный, то это кажется трудной проблемой, потому что стоимость движения данных только для определения сегментов будет сопоставима с стоимостью '' 'reduce_by_key'''. –
@ JaredHoberock: Да, на самом деле у меня есть длина сегментов, хранящихся в другом массиве. – bbtrb