groups.google.com/forum/#!topic/thrust-users/nXQD6j7_xfs
аюsort_by_key
с массивами ключ-значение размером 80 миллионов. Устройство являетсяGTX 560 Ti с участием2 Гб VRAM. Когда доступная (свободная) память перед sort_by_key1200MB
, завершает сортировку в200ms
, Но когда доступная память падает до600MB
, sort_by_key для тех же массивов ключ-значение занимает1.5-3s
!
Я запускал программу подCompute Visual Profiler, Я обнаружил, что метка времени GPU скачет на 1,5-3 с между последним ядромsort_by_key
и первый вызов ядра внутриsort_by_key
(который являетсяRakingReduction
).
Я подозреваю, что происходит выделение памяти внутриsort_by_key
до того, как он вызовет свое первое внутреннее ядро. Память о том, чтоsort_by_key
потребности доступны (даже если доступная память600MB
) так какsort_by_key
работает, хотя и медленнее. Я вижу, что компьютер зависает на 1 с, когда это происходит. Я также вижу удар в процессореФизическая память график, если я продолжуProcess Explorer открытый.
Есть ли что-нибудь, что я могу сделать, чтобы сделать этоsort_by_key
работать так же быстро, когда доступная память меньше? Кроме того, что происходит между устройством и хостом, что вызывает скачок памяти и временное зависание?