Pregunta

Ya terminó mi aplicación que multiplica CRS matriz y el vector (SPMV) y la única cosa que hacer ahora es contar Flops hizo mi solicitud. En mi opinión, es muy difícil estimar el número de operaciones de punto flotante en el caso de la matriz dispersa -. Multiplicación de vectores, debido a que el número de multiplica en una fila es muy "nervioso" o fluidez

Yo sólo trataba de medir el tiempo usando "cudaprof" (disponible en el directorio ./CUDA/bin) -. Funciona bien

Cualquier sugerencias y pastas de instrucción apreciados!

¿Fue útil?

Solución

Esto no es sólo su opinión; Es simple hecho de que el número de operaciones en el caso de una matriz dispersa depende con datos, y por lo tanto no se puede obtener una respuesta razonable sin saber algo acerca de los datos. Eso hace que sea imposible tener una estimación de un número único para todos-datos.

Este es probablemente uno de los tipos de situaciones en las que usted podría pensar mucho en ello durante muchas horas (y hacer un montón de investigación) para hacer una estimación tal vez con precisión, o se puede pasar unos minutos para escribir una variante de su actual implementación que incrementa un contador cada vez que se hace una operación. Por supuesto, eso va a tomar bastante tiempo para correr (sobre todo si no lo hace en una forma compatible con CUDA), pero probablemente mucho menos tiempo de lo que se necesitaría para hacer la forma de pensar, y cuando la respuesta sale, usted no tiene que hacer mucho trabajo para convencerse de que es correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top