2011-05-09 3 views
2

Dans une mise en œuvre du GPU, nous devons évaluer ses performances en termes de glops. Le code est très basique, mais mon problème est combien de FLOPS devrais-je donner aux opérations "sqrt" ou "mad", que ce soit 1 ou plus.FLOPS affecté à sqrt dans le GPU pour mesurer la performance et l'efficacité globale

D'ailleurs, j'obtenir 50 GFLOPS pour mon code si 1 dire 1 FLOP pour ces opérations, alors que le maximum théorique de ce GPU est 500GFLOPS. Si je l'exprime en termes de pourcentage, j'obtiens 10%. En termes d'accélération, je reçois 100 fois. Donc, je pense que c'est génial, mais 10% semble être un peu faible rendement, qu'en pensez-vous?

Merci

Répondre

1

La bonne réponse est probablement "ça dépend".

Pour des performances comparatives pur entre l'exécution de code sur différentes plates-formes, je compte habituellement transcendantaux, sqrt, mads, comme une seule opération. Dans ce genre de situation, la mesure de performance clé est la durée d'exécution du code. Il est presque impossible de faire la comparaison autrement - comment compareriez-vous le compte "FLOP" d'une instruction matérielle pour un transcendantal qui prend 25 cycles pour se retirer, par rapport à une strophe générée par bibliothèque mathématique d'instructions fmad qui prend également 25 cycles à compléter? Dans un tel cas, les instructions de comptage ou FLOP deviennent inutiles, les deux effectuant l'opération désirée dans le même nombre de cycles d'horloge, malgré un compte FLOP apparent différent.

D'autre part, pour le réglage de profilage et de la performance d'un morceau de code sur le matériel donné, le nombre FLOP pourrait être une mesure utile d'avoir. Dans les GPU, il est normal de regarder le comptage FLOP ou IOP et l'utilisation de la bande passante mémoire pour déterminer où se situe le goulot d'étranglement des performances d'un code donné. Avoir ces chiffres pourrait vous indiquer des optimisations utiles.

Questions connexes