Programé el kernel de CUDA por mi cuenta. Compare con el código de la CPU, mi código de kernel es 10 veces más rápido que las CPU.¿Cómo evaluar el rendimiento de CUDA?
Pero tengo una pregunta con mis experimentos.
¿Mi programa se optimiza completamente utilizando todos los núcleos de GPU, el uso adecuado de la memoria compartida, el recuento de registros adecuado, ocupación suficiente?
¿Cómo puedo evaluar el rendimiento de mi código kernel?
¿Cómo calculo el rendimiento máximo de CUDA teóricamente?
¿Tengo razón en que comparar GFLOPS de CPU y GFLOPS de GPU y GFLOPS es un rendimiento teórico transparente de ellos?
Gracias de antemano.
Gracias, Roger. Tu comentario es bueno para mi –
Tengo una pregunta adicional. Supongamos CPU: 2,8 GHz, 1 Core GPU: 1,6 GHz, 384 de núcleo (GTX 560 Ti Spec) En este ejemplo, el rendimiento esperado de CPU es de 2,8 GHz x 1 core = 2,8 GHz · Core rendimiento esperado de GPU es 0.8GHz x 384 core = 307.2 Ghz · Core Este cálculo es válido? –
No se puede medir el rendimiento en GHz. Para encontrar el rendimiento teórico, debe averiguar qué puede hacer la CPU/GPU en cada ciclo de reloj. Y las consideraciones que mencioné anteriormente afectan el rendimiento que puede obtener. Por ejemplo, si observa el rendimiento de un Intel Sandy Bridge, debe tener en cuenta que tiene un conjunto de instrucciones llamado AVX que puede realizar 8 operaciones SP por instrucción. –