Mon code CUDA doit fonctionner avec (réduire en moyenne/std, calculer l'histogramme) 4 tableaux, chaque 2048 flottants de long et déjà stockés dans la mémoire de l'appareil à partir des noyaux précédents.CUDA - Meilleure occupation vs moins d'accès mémoire mondial?
Il est généralement conseillé de lancer au moins autant de blocs que j'ai de multiprocesseurs. Dans ce cas, cependant, je peux charger chacune de ces matrices dans la mémoire partagée d'un seul bloc et ne lancer que 4 blocs. Ceci est loin de «garder le gpu occupé» mais si j'utilise plus de blocs, je devrai faire plus de communications inter-blocs via la mémoire globale et je prévois que toute utilisation supplémentaire des multiprocesseurs sera en veine en raison de l'extra supplémentaire temps passé à transférer des données dans et hors de la mémoire globale.
Quelle est la meilleure façon de paralléliser dans ce genre de situation?
Bonjour du futur! Quelque chose a changé? L'occupation semble toujours être une affaire énorme. –
Bonjour à l'avenir! L'occupation fait fureur ces jours-ci. – MaiaVictor