2010-10-21 25 views
0

À la page 51 du Visual Profiler Compute Guide de l'utilisateur, il indique que:A propos Compute Visual Profiler et le nombre de blocs pour le profilage

Notez que dans le cas où le nombre blocs dans un noyau est inférieur ou non nombre de multiprocesseurs multiples valeurs de compteurs à travers plusieurs exécutions ne seront pas cohérentes.

Est-ce une déclaration "ou" inclusive ou exclusive? Est-ce que ça doit toujours être un multiple?

Répondre

1

L'incohérence mentionnée dans les docs est causée par un déséquilibre de charge entre les multiprocesseurs. Par exemple, si vous exécutez un noyau avec 15 blocs sur un Tesla C2050 qui a 14 multiprocesseurs, l'un des multiprocesseurs finira par exécuter des threads à partir du bloc "extra". Si le profileur collecte des données de ce multiprocesseur exécutant des threads de deux blocs dans une exécution de profilage, mais d'une exécution de threads d'un seul bloc dans un autre, les résultats seront évidemment différents.

Pour répondre à la question que vous avez posée, le «ou» est inclusif, comme c'est généralement le cas dans les langues naturelles. Bien que je ne me souvienne pas d'être mentionné dans la documentation, je peux imaginer que même si ces conditions sont toutes deux fausses, l'incohérence du profil peut également se produire lorsque les données provoquent un déséquilibre (quantité d'arithmétique/données ou certaines données).