Conheça um pouco mais sobre o Direct ML

Conheça um pouco mais sobre o Direct ML

Recurso pode beneficiar diversas áreas, incluindo a de jogos.
#Artigos Publicado por Sr Ori, em

O DirectML é conhecido por muitos como uma tecnologia que servirá para aumentar a resolução em jogos no Xbox através do uso de Inteligência Artificial, ou como o próprio nome do DirectML induz a entender, Aprendizado de Máquina / Machine Learning (ML). Porém, o recurso não chega a ser limitado a Xbox ou mesmo jogos, tendo outras funções em mente e que ajudam muitas outras pessoas em seus trabalhos.

Primeiramente é preciso explicar que o recurso por si só não tem a função de aumentar a resolução dos jogos, pois isso não é o que ele realmente foi projetado para fazer. O DirectML é uma tecnologia que foi criada com o foco em aumentar a performance do processamento de dados ao utilizá-los em um ML para treinamento ou testes, ou seja, fazer com que um mesmo computador consiga processar mais dados de treino/testes em ML em menos tempo, apenas utilizando esse recurso.

Ele funciona como um acelerador de GPU para o uso em inteligência artificial, o que é inclusive divulgado pela Microsoft como um auxiliador para criação de projetos e pesquisas, pois independente do hardware que o indivíduo tiver, possuindo uma GPU com suporte ao DirectX 12, ele conseguirá ter um ganho de performance em treinar seus modelos de inteligência artifical com o DirectML, diminuindo o tempo que demoraria ou podendo aumentar a quantidade de dados a ser utilizado.

A Microsoft planeja que o DirectML funcione bem com diversas bibliotecas, frameworks e ferramentas de ML, além de incluir o suporte do recurso ao WSL do Windows (recurso que imita um ambiente linux nativo), deixando de existir a obrigatoriedade de usarem um ambiente linux para o acelerador DirectML. O WSL auxiliará bastante na popularidade do DirectML porque muitos recursos são exclusivos do sistema operacional Linux, o que deixa de ser um impedimento ao utilizarem o WSL.

Como mencionado anteriormente, qualquer GPU com DirectX12 terá suporte ao recurso, seja fabricado pela Intel, Nvidia, AMD ou qualquer outra fabricante. Entrentanto, por causa da parceria entre a AMD e Microsoft, as placas mais recentes da AMD que possuem a tecnologia RDNA 2 conseguiram aumentar o ganho de desempenho ao utilizarem a biblioteca Tensor Flow para ML, chegando a melhorar 3.7x o desempenho em relação a penúltima versão disponível do DirectML. Isso traz um benefício muito grande para projetos que utilizam Tensor Flow, permitindo o uso desde datacenters até a desktops e notebooks pessoas para treinamento e testes de modelos.

IMAGEaHR0cHM6Ly9pLmltZ3VyLmNvbS9aQWNpQ2F0LnBuZw==

DirectML em jogos

Apesar de ter mencionado até agora diversas melhorias técnicas para estudos e aplicações, como o DirectML estará melhorando os jogos? Apesar de ainda não termos algo realmente funcional de forma que podemos ver algum exemplo em jogos da 9º geração de consoles, a Microsoft já mencionou algumas melhorias que poderemos ter em relação a inteligência artificial do jogos e qualidade de imagem.

No blog oficial do Xbox explica um pouco sobre o que se pode esperar com a utilização do recurso, como melhorias de imagem, tornar NPCs mais inteligentes e fornecer melhorias na animação para torná-las mais realista. Isso se deve ao mesmo processo explicado anteriormente, o uso da inteligência artificial em jogos demanda uma parte do processamento da GPU e isso acaba limitando o que se pode entregar em um jogo em vários aspectos, pois nem só de inteligência artificial um jogo é composto. Porém com o auxílio do DirectML para diminuir a carga na GPU nessa área de ML, os jogos poderão evoluir nesses quesitos apresentados e até possuir novas aplicações que melhorem a experiência no geral.

O que temos de forma apresentável (mesmo sendo ainda uma demo antiga) sobre isso hoje em dia e que aparentemente é foco de melhoria da Microsoft para o Xbox é o Super Resolution, o qual a partir de uma baixa resolução consegue aumentar a mesma através do uso de inteligência artificial. A demonstração apresentada na Games Developer Conference 2019 (GDC) mostra que é possível aumentar a resolução de um vídeo através do uso dessa tecnologia, transformando 540p em 1080p ou 1080p em 4k. Isso faz com que o jogo tenha mais recursos de hardware disponíveis para serem alocados em outras áreas (gráficos, físicas, taxa de quadros, tamanho de jogo, etc), pois boa parte do recurso necessário para gerar uma imagem bem definida foi feita através de inteligência artificial e não por hardware.

Na apresentação da demo eles utilizaram um vídeo (não era o jogo realmente sendo executado) de Forza Horizon 3 para apresentar o recurso, mostrando as melhorias significativas de imagem em diversos pontos. Também foi apresentado que a utilização do Tensor Flow para o recurso é bem complicado por ser um modelo que não trabalha bem com respostas em tempo real, portanto foi utilizado o DirectML (baseado no conceito do Tensor Flow) e com a ajuda da Nvidia conseguiram melhorar o modelo para que fosse possível ter uma melhoria considerável no exemplo, como mostrado abaixo.

dl9Hc05uX1QxYVU=

O maior problema dessa técnica de Super Resolution é o tempo de resposta junto a qualidade mínima esperada da imagem. Diferente de imagens estáticas, o processo de aprendizado de máquina terá que processar cada quadro em baixa resolução, aumentar a resolução e entregar o resultado final, isso obrigatoriamente demorando o mesmo tempo ou menos que entregar uma imagem em alta resolução não trabalhada. Talvez a Microsoft em parceria com a AMD consigam chegar a uma solução aplicável para os jogos de 9º geração, mas teremos que aguardar para ver isso em prática.

Não temos muitas mais informações sobre essa parte focada em jogos, mas o CEO da Midgar Studio e o CEO da Quantic Dreams mencionaram suas visões sobre o DirectMl e os Xbox Series X|S, respectivamente:

Para o Xbox Series X, "o melhor recurso de hardware" é o suporte do DirectML. Não acho que seja muito usado ainda, mas o aprendizado de máquina permitirá melhorias de desempenho impressionantes (super-resolução de ML), transferência de estilo para novos estilos de arte, jogabilidade emergente, etc ...
Os shader cores do Xbox são mais adequados para aprendizado de máquina, o que pode ser uma vantagem se a Microsoft conseguir implementar um equivalente ao DLSS da Nvidia (uma solução de rede neural avançada para inteligência artificial).

Parece muito sonhador imaginar que todos os desenvolvedores utilizem o DirectML para melhorar a qualidade de seus jogos na parte de inteligência artificial, como reação dos npcs e animações. Porém, ao menos o recurso Super Resolution parece uma ambição por parte da Microsoft e que será de fácil implementação em jogos, possibilitando pelo menos uma taxa de quadros mais estável caso o desenvolvedor não queira tirar proveito em outros recursos.

Esse empenho da Microsoft para inteligência artificial é visível até mesmo na forma em que criaram os Xbox Series X|S, os quais conseguem executar computação assíncrona, sendo a mesma técnica usada para treinamento e testes de dados em aprendizado de máquinas no PC, independente do tipo da aplicação. Isso talvez possa colaborar com o resultado final do projeto e ser um ótimo recurso para o ciclo de vida dos Xbox Series.

Apesar de o recurso estar meio nebuloso sobre aplicação em jogos, a Microsoft já liberou o recurso para aplicações em geral e inclusive para que as pessoas possam testar e contribuir com o projeto através do Git. Então ao menos em outros projetos já teremos uma melhoria considerável com o passar do tempo.

Vocês podem deixar suas opiniões sobre o recurso no geral e se acham que futuramente ele fará alguma grande diferença em jogos para o Xbox e PC em questão de qualidade e desempenho, principalmente nos first party da Xbox Game Studios.

Sr Ori
Sr Ori #luhckaz100
Usuário do Site
Publicações em Destaque