У меня есть тяга device_vector, разделенная на куски по 100 (но полностью смежные в памяти графического процессора), и я хочу удалить последние 5 элементов каждого фрагмента, не перераспределяя новый device_vector для его копирования.
// Layout in memory before (number of elements in each contiguous subblock listed):
// [ 95 | 5 ][ 95 | 5 ][ 95 | 5 ]........
// Layout in memory after cutting out the last 5 of each chunk (number of elements listed)
// [ 95 ][ 95 ][ 95 ].........
thrust::device_vector v;
// call some function on v;
// so elements 95-99, 195-99, 295-299, etc are removed (assuming 0-based indexing)
Как я могу правильно реализовать это? Предпочтительно, чтобы я не выделял новый вектор в памяти графического процессора для сохранения преобразования. Я понимаю, что существуют шаблонные функции Thrust для работы с такого рода операциями, но у меня возникают проблемы с их объединением. Есть ли что-то, что может сделать Thrust?
thrust::copy_if
. - person Jared Hoberock   schedule 31.01.2013