Oxide: Placas Nvidia não suportam computação assíncrona no DirectX 12 – Escândalo à vista?

Perante os Benchmarks apresentados pela Oxide Games e relativos ao benchmark de Ashes of the Singularity, a Nvidia veio referir que os valores não eram representativos de uma situação de mundo real, não representando assim os valores reais das placas Nvidia. Agora a Oxide responde… e deixa a Nvidia e as suas placas pelas ruas da amargura.

Se bem se recordam, recentemente colocamos online um artigo que explica os motivos pelos quais as placas da Nvidia se revelam inferiores às da AMD no DirectX 12.

Os benchamarks de Ashes of Singularity revelam não só ganhos gigantes das placas da AMD com a passagem para o DirectX 12 mas, mais curioso ainda, revelam que as placas da Nvidia perdem com essa situação, obtendo resultados piores do que em DirectX 11.

Naturalmente a Nvidia não ficou agradada com a situação, e veio a público tentar deitar poeira para o ar, fazendo crer que o benchmark em causa não era uma boa representação do DirectX 12 e das situações de mundo real.

Ora infelizmente, só não sabe a realidade quem não acompanha as notícias, ou então aqueles que as acompanhando ignora a realidade das coisas. A Nvidia desde à algum tempo que usa metodologias paralelas à capacidade de processamento pura e dura para melhorar as suas performances. Não que haja algum mal nisso, mas o certo é que patrocínios para uso de código proprietário nos jogos e alterações aos shaders e processamento originais implementados em optimizações das drivers são situações que com o DirectX 12 morrerão. Aqui o acesso é directo ao metal e pouca hipotese há de se recorrer a alternativas que não passem pela capacidade de processamento puro e duro do hardware.

Ora a Oxide não gostou das palavras da Nvidia e acabou por revelar algumas situações que a Nvidia certamente preferia que não viessem a ser conhecidas.

Não há qualquer guerra de palavras entre nós e a Nvidia. A Nvidia fez algumas afirmações incorrectas, e nesta altura, se questionarem os seus relações públicas, eles não disputam a nossa posição. Penso que a confusão inicial foi porque as relações públicas da Nvidia fizeram-nos alguma pressão para desactivar certas coisas no benchmark, e quando recusamos, penso que eles levam a coisa como algo pessoal.

Ora dado que com o DirectX 12 a Nvidia não pode optimizar o código como fazia antigamente, apercebendo-se que os Benchmarks iriam deixar mal as suas placas face às da AMD, tentou outras tácticas. Neste caso a desactivação de algumas partes do código que beneficiavam a concorrência. Um tipo de táctica com uma das muitas manobras, das quais a AMD se queixa à muito tempo.

Mas a Oxide vai mais longe… e o que refere posteriormente revela-se extremamente preocupante para os possuidores de placas Nvidia numa altura em que a computação assíncrona no GPGPU se prepara para entrar em força.

Pessoalmente, acho que poderiam acusar-nos de ter algo com a Nvidia, dado que o único código específico de “vendedor” que possuimo é para a Nvidia onde tivemos de desactivar a computação assincrona. Por específico de vendedor falo de um caso onde na identificação de um ID do vendedor fizemos alterações na forma de rendering. Curiosamente a sua driver reportava a característica (computação assincrona) como funcional mas tantar usa-la era um desastre não mitigado em termos de performance e conformidade pelo que tivemos de a desligar no seu hardware. Pelo que sei o Maxwell não tem verdadeiramente computação assincrona pelo que não sei porque motivo a driver estava a tentar expor a característica. A única outra coisa que é diferente entre fabricantes é que as placas Nvidia caem na classe Tier 2 em vez das Tier 3 da AMD, pelo que requerem um pouco mais de uso do CPU no D3D12, mas não penso que isso acabe por ser muito significativo. Isto não é um caminho específico do vendedor pois está apenas a responder a capacidades que a driver afirma existirem.

Resumidamente, e apesar de Ashes of Singularity apenas usar um bocadinho de nada de computação assincrona, a Oxide está a dar a conhecer que as placas Nvidia, pelo menos no estado actual das suas drivers,  não possuem uma computação assíncrona capaz, o que as torna basicamente inúteis para o que o DirectX 12 nos traz de futuro. E aqui, especialmente depois de vermos os Benchmarks, fica a dúvida sobre mesmo sobre as reais capacidades do Maxwell 2 que essas placas usam pois afinal a tecnologia, apesar de melhorada acaba por ser a mesma.

A Oxide informa ainda que a Nvidia, assim como a AMD, possuiam acesso ao código do jogo à mais de um ano.

AshesDX11


AshesDX12

Nota: Entretanto nos fóruns do Beyond 3D um programador criou um pequeno programa de testes para tentar confirmar algumas situações e que parecem ser claras quanto às capacidades das Nvidia (Maxwell 2 incluido). Eis os resultados partilhados que comprovam que nas placas Nvidia não há computação em paralelo (assíncrona).
O programa em causa coloca uma lista de 128 comandos que manda para processamento de forma cumulativa num total de 128 vezes. Por uma questão visual apenas vamos indicar os 9 primeiros ciclos.

Geforce 680Ti driver 355.60

Só computação
1. 17.91ms
2. 18.03ms
3. 17.90ms
4. 17.98ms
5. 18.05ms
6. 18.09ms
7. 18.02ms
8. 18.03ms
9. 35.49ms

Só gráficos: 50.75ms (33.06G pixels/s)
Graphicos + computação:
1. 68.12ms (24.63G pixels/s)
2. 68.20ms (24.60G pixels/s)
3. 68.23ms (24.59G pixels/s)
4. 68.15ms (24.62G pixels/s)
5. 68.26ms (24.58G pixels/s)
6. 68.14ms (24.62G pixels/s)
7. 68.48ms (24.50G pixels/s)
8. 68.09ms (24.64G pixels/s)
9. 85.80ms (19.55G pixels/s)

Como vemos, não há computação assincrona (em paralelo). O tempo usado pelos gráficos + computação é basicamente o tempo do grafismo somado ao da computação demonstrando uma computação em série.

Geforce 750 Ti driver 355.60

Só Computação
1. 11.92ms
2. 11.90ms
3. 11.18ms
4. 10.75ms
5. 10.74ms
6. 10.75ms
7. 10.59ms
8. 10.54ms
9. 10.55ms

Só graficos: 106.67ms (15.73G pixels/s)
Graficos + computação:
1. 117.15ms (14.32G pixels/s)
2. 117.19ms (14.32G pixels/s)
3. 117.12ms (14.32G pixels/s)
4. 117.15ms (14.32G pixels/s)
5. 117.15ms (14.32G pixels/s)
6. 117.14ms (14.32G pixels/s)
7. 117.15ms (14.32G pixels/s)
8. 117.18ms (14.32G pixels/s)
9. 117.14ms (14.32G pixels/s)

Os resultados são em tudo similares aos anteriores.

Geforce 980Ti driver 355.60

Só computação:
1. 11.63ms
2. 11.62ms
3. 11.82ms
4. 10.68ms
5. 10.66ms
6. 10.65ms
7. 10.68ms
8. 9.97ms
9. 9.99ms

Só gráficos: 17.88ms (93.82G pixels/s)
Graphicos + computação:
1. 27.69ms (60.59G pixels/s)
2. 27.62ms (60.74G pixels/s)
3. 27.76ms (60.45G pixels/s)
4. 27.68ms (60.61G pixels/s)
5. 27.67ms (60.64G pixels/s)
6. 27.76ms (60.44G pixels/s)
7. 27.79ms (60.37G pixels/s)
8. 27.82ms (60.31G pixels/s)
9. 27.75ms (60.46G pixels/s)

Mais uma vez a situação repete-se. Há um acumulação dos tempos de processamento.

Vejamos agora um exemplo de uma placa AMD.

R9 290X driver 15.20.1062.1004

Só Computação:
1. 55.17ms
2. 55.14ms
3. 55.13ms
4. 55.13ms
5. 55.15ms
6. 55.14ms
7. 55.14ms
8. 55.14ms
9. 55.14ms

Só graficos: 26.98ms (62.18G pixels/s)
Graphicos + computação:
1. 55.62ms (30.16G pixels/s)
2. 55.44ms (30.26G pixels/s)
3. 55.52ms (30.22G pixels/s)
4. 55.44ms (30.26G pixels/s)
5. 55.49ms (30.24G pixels/s)
6. 55.50ms (30.23G pixels/s)
7. 55.23ms (30.37G pixels/s)
8. 55.49ms (30.24G pixels/s)
9. 55.97ms (29.98G pixels/s)

Como vemos o uso de gráficos mais computação não altera os valores do processamento individual com maior peso (neste caso a computação genérica) mostrando a existência de uma assincronia no encaixe em paralelo do processamento gráfico no da computação genérica.

Fonte: Dsogaming e Foruns Beyond3D


Publicidade

Posts Relacionados