Comment calculer Gflops d'un noyau

Je veux une mesure de la façon dont beaucoup de la performance de pointe de mon kernel archives.

Dire que j'ai une NVIDIA Tesla C1060, qui a un pic GFLOPS de 622.08 (~= 240Cores * 1300MHz * 2).
Maintenant, dans mon noyau, j'ai compté pour chaque thread 16000 flop (4000 x (2 soustraction, de multiplication de 1 et 1 sqrt)). Alors, quand j'ai 1 000 000 de threads, je viendrait avec 16GFLOP. Et comme le noyau prend 0,1 secondes, je voudrais archive 160GFLOPS, qui représente un quart de la performance de pointe. Maintenant mes questions:

  • Cette approche est-elle correcte?
  • Que sur des comparaisons (if(a>b) then....)? Dois-je les considérer ainsi?
  • Puis-je utiliser CUDA profiler plus facile et plus précise des résultats? J'ai essayé le instructions compteur, mais je ne pouvais pas comprendre, ce que la figure moyens.

sœur question: Comment calculer l'atteinte de la bande passante d'un noyau CUDA

OriginalL'auteur Framester | 2011-10-24