2013-10-09 2 views
0

Concernant un nombre aléatoire. génération j'ai des choix comme suit:Aléatoire aucune génération Vs Hachage à l'intérieur d'un noyau

1- Générer des numéros aléatoires. sur GPU et utilisation dans le noyau

2- Générer des numéros aléatoires. sur CPU et envoyer dans le noyau via le PCI-e

3- Générer fonction aléatoire en utilisant nos Hashage de écrit à l'intérieur du noyau

Comment puis-je décider ce qui est meilleur? Des directives générales?

Répondre

2

Le choix 1 devrait être le meilleur. CUDA fournit une bibliothèque cuRAND pour générer des nombres aléatoires de différentes distributions. Il est conçu pour avoir les meilleures performances.

Le choix 2 a des performances relativement médiocres. Cette figure montre l'écart de performance entre GPU et CPU sur la génération de nombres aléatoires.

cuRAND v.s. MKL

choix 3 est inutile parce que vous essayez de ré-implémenter bibliothèque cuRAND avec cette approche.

Veuillez vous référer à la page d'accueil et à la documentation de cuRAND pour plus de détails.

https://developer.nvidia.com/curand

http://docs.nvidia.com/cuda/curand/index.html

Questions connexes