Thrust: sort_by_key lento debido a la asignación de memoria

Estoy haciendo unsort_by_key con matrices int de valor-clave de un tamaño de 80 millones. El dispositivo es unGTX 560 Ti con 2GB VRAM. Cuando la memoria disponible (libre) antes de sort_by_key es1200MB, termina de ordenar en200ms. Pero, cuando la memoria disponible cae a600MB, sort_by_key para las mismas matrices de valores clave toma1.5-3s!

Ejecuté el programa enCompute Visual Profiler. Descubrí que la marca de tiempo de la GPU salta 1.5-3s entre el último núcleo antes desort_by_key y la primera llamada del núcleo dentro desort_by_key (el cual es unRakingReduction).

Sospecho que hay una asignación de memoria dentro desort_by_key, antes de llamar a su primer núcleo interno. El recuerdo quesort_by_key necesidades está disponible (incluso cuando la memoria disponible es600MB) desde elsort_by_key funciona, aunque sea más lento. Veo que la computadora se congela por 1s cuando esto sucede. También veo una protuberancia en la CPUMemoria físic gráfico si mantengoProcess Explorer abierto

¿Hay algo que pueda hacer para hacer estosort_by_key ¿funciona igual de rápido cuando la memoria disponible es menor? Además, ¿qué está sucediendo entre el dispositivo y el host que está causando el aumento de la memoria y la congelación temporal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta