Conteggio FLOPS GFLOPS / in programma - CUDA
Domanda
Già finito il mio applicazione che moltiplica CRS matrice e vettore (SpMV) e l'unica cosa da fare ora è quello di contare flop ha fatto la mia domanda. Secondo me è molto difficile stimare il numero di operazioni in virgola mobile nel caso di matrice sparse -. Vettore moltiplicazione, perché il numero di moltiplica in una fila è davvero "nervoso" o fluente
ho cercato solo di misurare il tempo utilizzando "cudaprof" (disponibile nella directory ./CUDA/bin) -. Funziona benissimo
Qualsiasi sugestions e paste di istruzione apprezzato!
Soluzione
Non è solo la tua opinione; è semplice fatto che il numero di operazioni nel caso di una matrice sparsa è dipendente dai dati, e così non è possibile ottenere una risposta ragionevole senza conoscere qualcosa circa i dati. Che rende impossibile avere una stima di un numero-fits-all-dati.
Questo è probabilmente uno dei tipi di situazioni in cui si potrebbe pensare duro su di esso per molte ore (e fare un sacco di ricerca) per fare una stima forse accurata, o si potrebbe spendere qualche minuto a scrivere una variante del vostro esistente implementazione che incrementa un contatore ogni volta che lo fa un'operazione. Certo, che sta andando a prendere un bel po 'di corsa (soprattutto se non lo fai in una forma CUDA-enabled), ma probabilmente molto meno tempo di quanto sarebbe necessario per fare il pensiero, e quando la risposta viene fuori, non c'è bisogno di fare un sacco di lavoro per convincere te stesso che è giusto.