Je me demande si le cache L2 est libéré entre plusieurs appels de noyau. Par exemple, j'ai un noyau qui effectue un pré-traitement sur les données et le second qui l'utilise. Est-il possible d'obtenir de meilleures performances si la taille des données est inférieure à 768 Ko? Je ne vois aucune raison pour que les gars de NVidia l'implémentent autrement mais peut-être que je me trompe. Est-ce que quelqu'un a une expérience avec ça?NVidia CUDA: cache L2 et plusieurs appels de noyau
Répondre
En supposant que vous parlez de cache de données L2 dans Fermi.
Je pense que les caches sont vidées après chaque invocation du noyau. Dans mon expérience, l'exécution de deux lancements consécutifs du même noyau avec beaucoup d'accès mémoire (et # manque de cache L2) n'apporte pas de changements substantiels aux statistiques de cache L1/L2. Dans votre problème, je pense, en fonction de la dépendance des données, il est possible de mettre deux étapes dans un noyau (avec une certaine synchronisation) afin que la deuxième partie du noyau puisse réutiliser les données traitées par la première partie.
Voici une autre astuce: Vous savez que le gpu a, par exemple N SM, vous pouvez effectuer la première partie en utilisant les premiers blocs N * M1. Les prochains blocs N * M2 pour la deuxième partie. Assurez-vous que tous les blocs de la première partie se terminent en même temps (ou presque) en utilisant la synchronisation. D'après mon expérience, l'ordre de programmation des blocs est vraiment déterministe.
Espérons que ça aide.
- 1. Cache L2 dans NVIDIA Fermi
- 2. Nvidia cuda avec Bitmap
- 3. Comment allouer un tableau de pointeurs et les conserver pour plusieurs appels de noyau dans cuda
- 4. Que fait le pilote nVIDIA CUDA exactement?
- 5. comparaison des GPU nvidia activés par cuda
- 6. Mémoire cache L2
- 7. JDO L2 Cache SingleFieldIdentity
- 8. Profilage CUDA dans le noyau
- 9. Impossible de tuer le noyau défectueux fonctionnant sur NVIDIA GPU
- 10. CUDA - Appel d'un noyau plusieurs fois
- 11. Comment rechercher le cache L1 et L2?
- 12. Comment coder la profusion de plusieurs métriques à partir de cartes Nvidia CUDA gpu?
- 13. Fermi L2 cache hit latence?
- 14. nvidia cuda thrust abort() appelé find_if
- 15. ATI Stream par rapport à NVidia/CUDA
- 16. modèle Installation nvidia cuda en studio visuel
- 17. cuda - optimisation du noyau
- 18. Puis-je précharger des données spécifiques à un niveau de cache spécifique dans un noyau CUDA?
- 19. nVidia CUDA sur GPU avec interface PCI
- 20. Erreur compilation CUDA noyau
- 21. noyau CUDA complexe dans MATLAB
- 22. Blocage d'invocation du noyau CUDA?
- 23. Hibernate L2 Mise en cache et relations many-to-many
- 24. NHibernate L2 Cache - configuration nHibernate fluide
- 25. NVIDIA CUDA 4.0, mémorisation d'une mémoire avec l'API runtime
- 26. cuda des paramètres du noyau
- 27. NHibernate L2 Cache configuration dans Fluent NHibernate
- 28. Est-il possible d'exécuter un noyau cuda sur plusieurs gpus
- 29. Comportement étrange du noyau CUDA
- 30. trouver la bande passante L1 et L2 du cache