2017-07-23 4 views
0

Je suis intéressé par l'implémentation de thrust :: sort. Quel algorithme de tri est utilisé? Est-il utilisé tout le pouvoir de gcc et quel type de parallélisme y a-t-il?Quel algorithme de tri utilisé dans thrust :: sort?

+2

Je crois que la réponse [ici] (https://stackoverflow.com/questions/9037906/fast-cuda-thrust-custom-comparison-operator) est toujours exacte, comme il a été écrit par l'un des auteurs de Thrust . Depuis que cette réponse a été écrite, pour le premier cas (le cas rapide) poussée a déplacé à l'aide d'une implémentation de tri fournie par [cub] (https://nvlabs.github.io/cub/structcub_1_1_device_radix_sort.html), mais dans la mesure où Je sais que c'est encore le genre de base. Il n'est pas difficile de prouver cela avec un peu d'effort de la part d'un profileur CUDA. –

Répondre

1

Thrust utilise un tri Radix. Même si la page de manuel redirige vers une ancienne page SGI, il ne semble pas que cela signifie que la page SGI fait autorité sur l'algorithme. La documentation sur le tri Radix peut être trouvée here.