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

2

Suponha que eu tenha um programa que faça muitas computações de ponto flutuante e seja impraticavelmente lento no meu hardware atual. Para reduzir o tempo de execução, tanto quanto possível, quero descobrir se é melhor investir em CPUs ou GPUs, dado um orçamento fixo (cerca de US $ 3000-4000 no meu caso). Eu sei que para comparar um CPU com outro, eu posso ter um sentido muito áspero das velocidades de processamento relativas multiplicando a freqüência do clock pelo número de núcleos para cada CPU e comparando esses números. Mas e as GPUs? Existe alguma maneira de calcular rapidamente um número baseado nas especificações da GPU que me dirá aproximadamente quão rápido posso esperar para rodar 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 das velocidades de clock da CPU / GPU. Para os propósitos desta questão, estou ignorando esses outros fatores, ou seja, supondo que o tempo gasto para qualquer tarefa diferente do processamento de número de ponto flutuante seja insignificante (portanto, não é vinculado a E / S ou qualquer coisa 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 para a capacidade máxima enquanto o programa for executado).

    
por David Z 03.02.2011 / 20:02

1 resposta

2

Bem, você poderia tentar com benchmarks sintéticos. Eles vão te dar uma ideia. O kit de ferramentas NVIDIA'a CUDA, 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 você 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 do núcleo. Alguns cartões até mesmo têm números de 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 chegar a ele agora. Talvez esteja nos downloads do kit de ferramentas CUDA?

Há também o nível de habilidade de computação que mostra quais recursos cada cartão oferece, mas se eu me lembro corretamente, ele não causa impacto direto na velocidade de cálculo, apenas na precisão e no conjunto de instruções que podem ser usados.

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

    
por 03.02.2011 / 23:26

Tags