4 de dez de 2013

AMD responde: tudo o que você queria saber sobre a tecnologia Mantle


AMD responde: tudo o que você queria saber sobre a tecnologia Mantle 

Se você acompanha o cenário de hardware, certamente já deve estar a par dos novos modelos lançados pela AMD. A empresa anunciou uma mudança completa na sua família de placas de vídeo. Assim, em vez de trazer a família HD 8000 que era como muitos esperavam, a fabricante trouxe duas novas séries de GPUs: R7, com modelos mais simples voltados ao público em geral, e linha R9, voltada aos gamers e entusiastas.



Os modelos trazem, além de mais velocidade e novos recursos, suporte a uma nova API gráfica de baixo nível, o Mantle, que promete dar mais liberdade aos desenvolvedores e garantir mais desempenho aos equipamentos.

Nós já publicamos uma matéria completa sobre o Mantle em que comentamos sobre como a arquitetura funciona e o que o mercado espera dela. Entretanto, algumas coisas ainda não passavam de especulação. Para matar de uma vez por todas as dúvidas sobre o assunto, nós procuramos a AMD. Afinal de contas, não tem ninguém mais competente nesse assunto que a própria inventora da tecnologia.

Para isso, conversamos com Roberto Brandão, gerente de engenharia da AMD para América Latina, que esclareceu todas as nossas dúvidas. Confira.

AMD responde: tudo o que você queria saber sobre a tecnologia Mantle

O que é o Mantle exatamente e qual a vantagem da utilização esse sistema?
O Mantle é uma API que expõe funcionalidades da GPU em baixo nível diretamente para fabricantes de software, de forma a otimizar a performance da GPU em sistemas com gráficos AMD Radeon.

O Mantle é completamente independente de outras APIs gráficas, como o DirectX e o OpenGL, ou ele ainda depende dessas APIs (direta ou indiretamente) para funcionar?
Eu o classificaria como complementar a outras APIs. Um chamada direta a uma função do Mantle pode ser tratada diretamente pela GPU como pode disparar chamadas a outras APIs.

Em um game desenvolvido para o Mantle, será possível escolher qual API gráfica utilizar como acontecia antigamente (em alguns títulos era possível selecionar entre OpenGL, DirectX, Glide ou Software, por exemplo), ou esse processo será completamente automático e sem a participação do jogador?
Fica a cargo do desenvolvedor do jogo deixar essa funcionalidade exposta ou não ao gamer. Mas o jogo em si deve analisar a máquina e verificar a possibilidade de utilização do Mantle para aumentar a performance do sistema.

A partir de quando esse sistema vai estar disponível nos jogos? Será preciso instalar algum software separadamente ou tudo estará incluído no pacote de drivers tradicionais?
A ideia é que esteja completo com a instalação dos drivers, e os desenvolvedores já estão trabalhando nos títulos para 2014 usando essa tecnologia. De qualquer forma, nada impede que patches de jogos atuais “despertem” o uso do Mantle em games já consolidados.

Um jogo feito para o Mantle será completamente compatível com placas de vídeo de outros fabricantes (NVIDIA, Intel) ou ele precisa ser desenvolvido duas vezes com duas APIs gráficas diferentes para garantir a compatibilidade?
As chamadas ao Mantle são independentes de APIs existentes, ou seja, otimizações do Mantle vão aparecer apenas nas placas que as suportam. Por compatibilidade, acredito que os jogos continuarão fazendo chamadas à API Windows, e aqueles que quiserem se beneficiar do Mantle adicionarão check de hardware e execução condicional de código caso suporte Mantle ou não.

AMD responde: tudo o que você queria saber sobre a tecnologia Mantle 

O Mantle é aberto e pode ser “portado” para funcionar nativamente com placas de vídeo de outros fabricantes e, assim, garantir um desempenho equivalente àquele proporcionado pelo hardware da AMD, ou esse funcionamento será via software (utilizando uma espécie de “wrapper” que traduz o código Mantle para Direct3D, por exemplo) e, consequentemente, mais lento (algo como acontece com o PhysX)?
A princípio, o core do Mantle não será aberto ou open source, mas as funções de chamada serão totalmente documentadas de forma que os handles da API possam ser replicados em gráficos de outros fabricantes. Seria possível um middleware que traduzisse chamadas Mantle para D3D por exemplo, mas isso tornaria o uso pouco eficiente. A ideia do Mantle é exatamente expor as funcionalidades de programação da arquitetura GCN de modo que o game possa usá-las de forma otimizada. Um modelo de wrapping causaria perda de performance substancial no processo.

PlayStation 4 e Xbox One trabalham com componentes AMD. Eles também rodam Mantle? Existe alguma ligação entre o Mantle desenvolvido para o PC e as APIs gráficas desenvolvidas para os dois consoles? Isso pode realmente facilitar a conversão de jogos entre as três plataformas (baixar o custo de produção e garantir títulos melhor otimizados para o PC)?
Consoles modernos têm nível de otimização e especialização em jogos muito maior que em PCs, que têm uso mais genérico. Certamente existem similares ao Mantle implementados como um middleware de software que expõe as características não apenas da GPU como de toda a plataforma do console, além de sistemas de sensores de movimento, por exemplo, de forma a prover performance e qualidade gráfica de níveis inéditos em consoles. Acredito que essa proximidade em arquitetura vai permitir maior facilidade no desenvolvimento de jogos multiplataforma com alta eficiência na utilização do hardware disponível tanto em PCs quanto em consoles.

AMD responde: tudo o que você queria saber sobre a tecnologia Mantle

Por se tratar de uma linguagem de baixo nível, em que os programadores podem ter um acesso mais direto ao hardware, o Mantle não estaria abrindo brechas de segurança e deixando os computadores mais vulneráveis?
Acredito que o nível de “proximidade” ao hardware não altera o nível de segurança pois ele ainda tem que obedecer às políticas de segurança do sistema operacional. Um exemplo seria que o fato de um vírus ter sido escrito em Assembly não o faz mais eficiente ou perigoso que um código malicioso baseado em script interpretado. Em ambos os casos, as políticas de segurança ainda se aplicam.

O Mantle será compatível com outros sistemas operacionais, como Linux e OS X? Isso facilitaria a conversão de títulos até então desenvolvidos somente para o Windows e movimentaria novos sistemas, como o já prometido Steam OS?
A princípio, a API tem foco em sistemas Microsoft Windows, já que é disparada a plataforma de preferência em jogos para PCs. Mas os conceitos certamente podem ser usados em “irmãos de arquitetura” para outras plataformas como consoles, tablets, smartphones e diferentes sistemas operacionais.

Não é novidade que uma API gráfica de baixo nível pode “desamarrar” o poder das placas de vídeo e liberar o poder do hardware. Por que só agora a AMD decidiu desenvolver um sistema como esse, e por que ninguém se arriscou a fazer isso antes?
Existe sempre um compromisso muito forte entre performance e compatibilidade, de forma que os gamers possam jogar todos os títulos disponíveis. Temos trabalhado na ideia do Mantle há alguns anos e esse foi o momento correto considerando portfólio, tecnologia, necessidade e suporte da indústria de games.

Qual a diferença média de desempenho entre um aplicativo rodando com o Mantle e com as APIs gráficas mais tradicionais? Por exemplo: no mesmo hardware, um game como Battlefield 4, por exemplo, roda a 30 fps com o DirectX. Qual seria o ganho com o Mantle?
Esse ganho pode ser expressivo, dependendo da eficiência da engine do jogo e da modelagem estrutural de dados usada nele. Jogos otimizados atuais conseguem fazer com que GPUs de alta performance exibam de 3 a 5 mil elementos gráficos por frame em uma taxa de 30 fps. Engines realmente otimizadas e com estruturas de dados mais simples poderiam chegar a 10 mil elementos por frame usando D3D por exemplo. Nosso objetivo com o Mantle é que esse número consiga chegar próximo aos 100 mil elementos. Certamente é um ganho máximo em condições ótimas, mas esperamos que o ganho mesmo em games menos favoráveis em estrutura de dados seja substancial.

AMD responde: tudo o que você queria saber sobre a tecnologia Mantle 

Qual a dificuldade em desenvolver games para o Mantle em relação às outras APIs gráficas? Existe alguma diferença significativa?
Temos recebido bons feedbacks dos desenvolvedores quanto à facilidade de codificação. O projeto otimizado em baixo nível requer maior esforço, mas a grande maioria dos desenvolvedores não tem problemas em dizer que esse esforço compensa. Além disso, estamos trabalhando no desenvolvimento de ferramentas e SDKs para suportar o projeto de games.

Com a utilização dessa API, teremos notebooks gamer mais poderosos e mais baratos, graças às novas APUs da AMD?
Essa tecnologia não altera especificamente o preço de notebooks, mas certamente permite explorar melhor o potencial da GPU instalada. Um exemplo impressionante foi a demonstração de jogo usando Battlefield 4 em 1080p sobre uma plataforma A10 da AMD (Kaveri) em que não era necessária uma GPU discreta. Portanto, podemos nos preparar para ter mais de nossos notebooks do ponto de vista de gráficos e games sim.