sexta-feira, 11 de setembro de 2015

AMD, Nvidia, e DX12: O que sabemos até agora




Desde DirectX 12 foi anunciado, AMD e Nvidia têm brigavam por posição sobre qual deles iria oferecer melhor suporte para a nova API e as suas várias características. Uma capacidade que a AMD falou-se extensivamente é o apoio da GCN para computação assíncrona. Computação assíncrona permite que todas as GPUs baseadas na arquitetura GCN da AMD para executar cargas de trabalho de computação gráfica e simultaneamente. Na semana passada, um empregado de óxido Games informou que ao contrário da crença geral, hardware Nvidia não pôde executar a computação assíncrona e que o impacto de tentar fazê-lo desempenho foi desastroso sobre hardware da empresa.
Este anúncio deu início a uma onda de investigação sobre o que hardware Nvidia fez e não apoiar, bem como reivindicações anedóticas que as pessoas (ou já teve) retornam a sua GTX 980 Ti de base em Cinzas do desempenho Singularity. Nós passamos os últimos dias conversando com várias fontes trabalhando no problema, incluindo Mahigan e CrazyElf em Overclock.net, bem como a análise através de vários conjuntos de dados e relatórios de desempenho. Nvidia não respondeu ao nosso pedido de esclarecimento de como ainda, mas aqui está a situação como nós atualmente compreendê-lo.

Nvidia, AMD, e de computação assíncrona
Quando AMD e Nvidia falar sobre o apoio de computação assíncrona, eles não estão falando a mesma capacidade de hardware. Os motores assíncronos de comando em GPUs da AMD (entre 2-8 dependendo do cartão você possui) são capazes de executar novas cargas de trabalho em latências tão baixas quanto um único ciclo. Um cartão AMD high-end tem oito ACEs e cada ACE possui oito filas. Maxwell, em contraste, tem duas condutas, uma das quais é uma tubagem gráficos de alta prioridade. O outro tem aa profundidade da fila de 31 -, mas a Nvidia não pode alternar contextos em qualquer lugar próximo tão rapidamente quanto AMD lata.

De acordo com uma palestra na GDC 2015, há restrições sobre as capacidades preeemption da Nvidia. O texto adicional abaixo o slide explica que "a GPU só pode mudar de contextos nos limites da chamada draw" e "On GPUs futuros, estamos trabalhando para ativar a preempção de grão mais fino, mas que ainda é um longo caminho." Para explorar as várias capacidades de Maxwell e GCN, os usuários no Beyond3D e Overclock.net usaram um teste de computação assíncronos que avaliaram a capacidade em ambos hardware AMD e Nvidia. O valor de referência foi revisto várias vezes ao longo da semana, assim que os primeiros resultados não são comparáveis ​​com os dados que vimos em corridas posteriores.

Note-se que este é um teste de latência de computação assíncrona, e não o desempenho. Isso não testar throughput geral - em outras palavras, apenas o tempo que leva para executar - eo teste é concebido para demonstrar se compute assíncrona está ocorrendo ou não. Porque este é um teste de latência, os números mais baixos (mais perto da linha amarela "1") significa que os resultados são mais perto do ideal.
Radeon R9 290

Aqui está o desempenho do R9 290. A linha amarela é a perfeição - é o que teríamos se o GPU comutada e executados instantaneamente. O eixo y do gráfico apresenta a performance normalizada para 1x, que é onde nós esperaríamos latência assíncrona perfeito para ser. A linha vermelha é o que nós estamos mais interessados ​​em acção. Mostra GCN realizando quase idealmente na maioria dos casos, mantendo o desempenho estável mesmo como contagens da linha subir. Agora, compare isso a GTX 980 Ti da Nvidia.


Tentativa de executar gráficos e calcular simultaneamente no GTX 980 Ti provoca depressões e picos de desempenho e pouco em termos de ganhos. Neste momento, existem apenas algumas contagens da linha onde Nvidia corresponde desempenho ideal (latência, neste caso) e muitos casos em que isso não acontece. Outras investigações indicaram que gasoduto asynch da Nvidia parece inclinar-se sobre a CPU para algumas das suas etapas iniciais, enquanto GCN da AMD lida com o trabalho em hardware.
Agora, a melhor evidência disponível sugere que, quando a AMD ea Nvidia falar sobre computação assíncrona, eles estão falando de dois muito diferentes capacidades. "Computação assíncrona," na verdade, não é necessariamente o melhor nome para o que está acontecendo aqui. A questão é se ou não Nvidia GPUs pode executar cargas de trabalho de computação gráfica e simultaneamente. AMD pode, cortesia de suas unidades ECA.
Sugeriu-se que a abordagem da AMD é mais como Hyper-Threading, que permite que a GPU para trabalhar em diferentes computação e gráficos cargas de trabalho ao mesmo tempo sem perda de desempenho, ao passo que a Nvidia pode ser encostado na CPU para algumas das suas etapas iniciais de configuração e tentar agendar simultânea de computação gráfica + carga de trabalho para a execução ideal. Obviamente, esse processo não está funcionando bem ainda. Desde o nosso artigo inicial, Oxide, desde então, declarou o seguinte:
"Nós, na verdade, apenas conversou com Nvidia sobre Async Compute, na verdade, o motorista não foi totalmente implementado ainda, mas ele apareceu como se fosse. Estamos trabalhando estreitamente com eles como eles implementar plenamente Async Compute. "
Aqui está o que provavelmente significa que, dada próprias apresentações da Nvidia na GDC e os vários benchmarks de teste que foram montados durante a semana passada. Não Maxwell não tem uma configuração GCN estilo de motores assíncronos de computação e não pode alternar entre as cargas de trabalho de computação gráfica e tão rapidamente quanto GCN. De acordo com Beyond3D 

"Havia reivindicações originalmente, que a Nvidia GPUs não seria sequer capaz de executar shaders assíncrono de computação de forma assíncrona de todo, esse mito foi desmascarado rapidamente. O que se tornar claro, no entanto, é que a Nvidia GPUs preferido uma carga muito mais leve do que AMD cartões. Em pequenas cargas, Nvidia GPUs iria correr círculos em torno da AMD cartões. A carga elevada, bem, muito pelo contrário, até o ponto onde Nvidia GPUs levou tanto tempo para processar a carga de trabalho que eles desencadeada salvaguardas no Windows. O que causou o Windows para puxar o gatilho e matar o motorista, assumindo que ele ficou preso.
"O resultado final (por enquanto): GPUs AMD são capazes de lidar com uma carga muito maior. Cerca de 10x vezes o que Nvidia GPUs pode manipular. Mas eles também precisam também de 4x a pressão aplicada antes de começar a jogar lá fora capacidades. "
Ext3h continua a dizer que preempção no caso da Nvidia só é usada quando se alterna entre contextos gráficos (1x gráficos + 31 modo de computação) e "contexto de computação puro", mas afirma que esta funcionalidade é "totalmente quebrado" em placas Nvidia no presente. Ele também afirma que, enquanto Maxwell 2 (GTX 900 da família) é capaz de execução paralela, "O hardware não lucrar com isso muito embora, uma vez que tem apenas 'lacunas' pequenos na utilização shader de qualquer maneira. Então, no final, ainda é apenas a execução sequencial para a maioria da carga de trabalho, mesmo que se você conseguiu parar o pipeline de alguma forma através da construção de uma carga de trabalho infeliz, você ainda pode lucrar com isso. "
Nvidia, enquanto isso, tem representado a óxido de que ele pode implementar computação assíncrona, no entanto, e que esta capacidade não foi totalmente ativado em motoristas. Como Oxide, vamos esperar e ver como a situação evolui. O segmento em análise Beyond3D deixa muito claro que esta é uma questão extremamente complexa, e muito do que Nvidia e Maxwell pode ou não pode estar fazendo não é clara.
Anteriormente, mencionamos que a abordagem da AMD para a computação assíncrona superficialmente se assemelhava a Hyper-Threading. Não há outra maneira em que essa analogia pode ser exato: Quando Hyper-Threading estreou, muitos fãs da AMD perguntou por que a equipe Red não tinha copiado o recurso para aumentar o desempenho em K7 e K8. A resposta da AMD na época era de que os processadores K7 e K8 teve pipelines muito mais curtos e muito diferentes arquiteturas, e eram intrinsecamente menos propensos a se beneficiar de Hyper-Threading, como resultado. O P4, em contraste, teve uma longa tubagem e uma taxa relativamente elevada de bloqueio. Se uma thread parado, HT permitiu outro segmento para continuar a execução, o que impulsionou o desempenho geral do chip.
GCN em estilo de computação assíncrona é improvável para melhorar o desempenho Maxwell, em outras palavras, porque Maxwell não é realmente concebido para estes tipos de cargas de trabalho. Se Nvidia pode contornar essa limitação (ou implementar algo ainda mais rápido) continua a ser visto.

Seja o primeiro a comentar ;)

Postar um comentário

  ©Noticias de Hoje - Todos os direitos reservados.

Template by Marcelo Teles | Topo