Como posso avaliar o poder de processamento de uma GPU em relação a uma CPU?

Como posso avaliar o poder de processamento de uma GPU em relação a uma CPU?

Suponha que eu tenha um programa que faz muitos cálculos de ponto flutuante e é impraticavelmente lento no meu hardware atual. Para reduzir ao máximo o tempo de execução, quero descobrir se é melhor investir em CPUs ou GPUs, dado um orçamento fixo (cerca de US$ 3.000-4.000 no meu caso). Eu sei que para comparar uma CPU com outra, posso obter ummuito ásperosentido das velocidades relativas de processamento multiplicando a frequência do clock pelo número de núcleos de cada CPU e comparando esses números. Mas e as GPUs? Existe alguma maneira de calcular rapidamente um número com base nas especificações da GPU que me diráaproximadamentequão rápido posso esperar que ele execute meu programa, em relação a uma CPU conhecida?

Eu sei que a velocidade real de processamento dependerá muito da maneira como o programa é construído e de outros fatores além da velocidade do clock da CPU/GPU. Para os fins desta pergunta, estou ignorando esses outros fatores, ou seja, estou assumindo que o tempo necessário para qualquer tarefa que não seja a análise de números de ponto flutuante é insignificante (portanto, não está vinculado à E/S ou algo assim), e que o programa é infinitamente paralelizável (portanto, dado qualquer número de núcleos de CPU ou GPU, todos eles serão usados ​​em sua capacidade máxima enquanto o programa for executado).

Responder1

Bem, você poderia tentar com benchmarks sintéticos. Eles lhe darão uma ideia. O kit de ferramentas CUDA da NVIDIA, por exemplo, contém alguns programas que são executados em CPU e GPU e pode ser usado para comparar quanto tempo leva para executá-los em cada plataforma.

Se precisar fazer isso apenas usando planilhas de dados da GPU, você também pode fazer isso. Por exemplo,aquié a página da minha GeForce 9500 GS. Você pode encontrar informações sobre o número de núcleos de processamento lá. A capacidade de processamento é proporcional à frequência da GPU e ao número de núcleos. Algumas cartas atéterNúmero GFLOPS também. Havia um documento com descrições detalhadas mais uniformes disponíveis para cada cartão, mas não consigo encontrar uma maneira de acessá-lo agora. Talvez esteja nos downloads do kit de ferramentas CUDA?

Há também o nível de habilidade computacional que mostra quais recursos cada placa oferece, mas se bem me lembro, isso não tem impacto direto na velocidade de cálculo, apenas na precisão e no conjunto de instruções que podem ser usadas.

Não estou atualizado com informações sobre placas de outros fabricantes, mas espero que existam maneiras de obter os dados, pelo menos para AMD e Intel também.

informação relacionada