¿Cómo puedo evaluar la potencia de procesamiento de una GPU en relación con una CPU?

¿Cómo puedo evaluar la potencia de procesamiento de una GPU en relación con una CPU?

Supongamos que tengo un programa que realiza muchos cálculos en punto flotante y es imprácticamente lento en mi hardware actual. Para reducir el tiempo de ejecución tanto como sea posible, quiero averiguar si es mejor invertir en CPU o GPU, dado un presupuesto fijo (alrededor de $ 3000-4000 en mi caso). Sé que para comparar una CPU con otra, puedo obtener unamuy ásperosentido de las velocidades de procesamiento relativas multiplicando la frecuencia del reloj por el número de núcleos de cada CPU y comparando esos números. Pero ¿qué pasa con las GPU? ¿Hay alguna manera de calcular rápidamente un número basado en las especificaciones de la GPU que me lo indique?apenas¿Qué tan rápido puedo esperar que ejecute mi programa, en relación con una CPU conocida?

Sé que la velocidad de procesamiento real dependerá en gran medida de la forma en que se construye el programa y de otros factores además de las velocidades de reloj de la CPU/GPU. Para los propósitos de esta pregunta, estoy ignorando esos otros factores, es decir, asumo que el tiempo necesario para cualquier tarea que no sea el cálculo de números de punto flotante es insignificante (por lo que no está vinculado a E/S ni nada por el estilo), y que el programa es infinitamente paralelizable (por lo tanto, dada cualquier cantidad de núcleos de CPU o GPU, todos se utilizarán a su máxima capacidad mientras se ejecute el programa).

Respuesta1

Bueno, podrías probar con puntos de referencia sintéticos. Ellos te darán alguna idea. El kit de herramientas CUDA de NVIDIA, por ejemplo, contiene algunos programas que se ejecutan tanto en CPU como en GPU y se puede utilizar para comparar cuánto tiempo lleva ejecutarlos en cada plataforma.

Si necesita hacerlo únicamente utilizando hojas de datos de GPU, también puede hacerlo. Por ejemplo,aquíEsta es la página de mi GeForce 9500 GS. Puede encontrar información sobre la cantidad de núcleos de procesamiento allí. La capacidad de procesamiento es proporcional a la frecuencia de la GPU y al número de núcleos. Algunas tarjetas inclusotenerNúmero GFLOPS también. Había un documento con descripciones detalladas más uniformes disponibles para cada tarjeta, pero no puedo encontrar una manera de acceder a él en este momento. ¿Quizás esté en las descargas del kit de herramientas CUDA?

También está el nivel de capacidad de cálculo que muestra qué características proporciona cada tarjeta, pero si no recuerdo mal, no tiene un impacto directo en la velocidad de cálculo, solo en la precisión y el conjunto de instrucciones que se pueden usar.

No estoy actualizado con información sobre tarjetas de otros fabricantes, pero espero que haya formas de obtener datos al menos para AMD e Intel también.

información relacionada