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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top