CUDA Thrust: reduce_por_clave solo en algunos valores de una matriz, basados en valores de una matriz "clave"
Digamos que tengo dos arreglos de device_vector <byte>,d_keys
yd_data
.
Sid_data
es, por ejemplo, una matriz 2D 3x5 aplanada (por ejemplo, {1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3}) yd_keys
es una matriz 1D de tamaño 5 (por ejemplo, {1, 0, 0, 1, 1}), ¿cómo puedo hacer una reducción tal que termine agregando solo valores por fila si el correspondiented_keys
el valor es uno (por ejemplo, terminando con un resultado de {10, 23, 14})?
lossum_rows.cu ejemplo me permite agregar todos los valores end_data
, pero eso no es del todo correcto.
Alternativamente, puedo, por fila, usar unzip_iterator
y combinard_keys
con una fila ded_data
a la vez, y hacer untransform_reduce
, agregando solo si el valor clave es uno, pero luego tendría que recorrer eld_data
formación.
Lo que realmente necesito es algún tipo detransform_reduce_by_key
Funcionalidad que no está incorporada, pero seguramente debe haber una manera de hacerlo.