Question

Déjà fini mon application qui multiplie la matrice CRS et vecteur (SpMV) et la seule chose à faire est maintenant compter FLOPS ma demande a fait. À mon avis, il est très difficile d'estimer le nombre d'opérations à virgule flottante en cas de matrice clairsemée -. Multiplication vectorielle, car le nombre de multiplications dans une ligne est vraiment « Jumpy » ou fluide

Je n'essayé de mesurer le temps en utilisant « cudaprof » (disponible dans le répertoire ./CUDA/bin) -. Il fonctionne très bien

Les sugestions et pâtes d'instruction apprécié!

Était-ce utile?

La solution

Ce n'est pas seulement votre avis; il est simple fait que le nombre d'opérations dans le cas d'une matrice creuse dépend des données, et vous ne pouvez pas obtenir une réponse raisonnable sans savoir quelque chose au sujet des données. Cela rend impossible d'avoir une estimation d'un nombre uniformisée-données.

Ceci est probablement l'une des sortes de situations où l'on pouvait réfléchir sérieusement à ce sujet pendant de nombreuses heures (et faire beaucoup de recherche) pour faire une estimation peut-être-précis, ou vous pouvez passer quelques minutes à écrire une variante de votre existante la mise en œuvre qui incrémente un compteur à chaque fois qu'il fait une opération. Bien sûr, cela va prendre un certain temps pour courir (surtout si vous ne le faites pas sous une forme compatible CUDA), mais probablement beaucoup moins de temps qu'il faudrait pour faire la pensée, et quand la réponse sort, vous ne devez pas faire beaucoup de travail pour vous convaincre qu'il a raison.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top