한국   대만   중국   일본 
Unidade de processamento de fisica ? Wikipedia, a enciclopedia livre Saltar para o conteudo

Unidade de processamento de fisica

Origem: Wikipedia, a enciclopedia livre.

Uma Unidade de Processamento de Fisica , do ingles Physics Processing Unit (PPU), e um Microprocessador dedicado, projetado para manipular calculos fisicos especialmente em motores de fisica de jogos eletronicos que usam cenarios em 3 dimensoes. Foi criado pela Ageia e apresentado pela primeira vez em 2005.

A Ageia criou o PPU para tirar do CPU o trabalho de calcular a fisica complexa dos jogos, permitindo que os jogos sejam muito mais realistas. O PPU foi focado nas seguintes areas: dinamica de corpo rigido , dinamica de corpo macio , deteccao de colisoes , simulacao de cabelos e roupas, analise de elementos finitos e fraturamento de objetos.

A ideia e a de que processadores especializados aliviam o uso de tarefas de uso intenso da CPU , assim como a Unidade de Processamento Grafico , do ingles Graphics Processing Unit (GPU), executa operacoes graficas no lugar da CPU. O termo foi criado pela empresa Ageia a fim de descrever o a unidade de processamento de fisica PhysX . Varias outras tecnologias no espectro CPU-GPU possuem caracteristicas em comum com a PPU, apesar da solucao criada pela empresa Ageia foi a unica projetada, comercializada e colocada em um sistema exclusivamente como uma PPU.

Historia [ editar | editar codigo-fonte ]

Um dos primeiros projetos academicos relacionados a pesquisa de PPUs foi nomeado SPARTA (do ingles Simulation of Physics on A Real-Time Architecture), e foi realizado pela Universidade de Georgia. Este era simples, baseado em um Field-programmable gate array , e era limitado em duas dimensoes. Este projeto foi estendido em um sistema mais avancado, baseado em um circuito integrado de aplicacao especifica nomeado HELLAS.

Em fevereiro de 2006, foi lancada a primeira PPU PhysX pela empresa Ageia (mais tarde fundida com a NVIDIA . Esta unidade e especificamente efetiva no aceleramento de sistemas de particulas, com apenas um pequeno melhoramento de performance sobre fisica de corpos rigidos. A PPU Ageia e extensamente documentada pela patente americana de numero #20050075849. Nvidia/Ageia nao produzem mais PPU, e atualmente, hardware de aceleracao para processamento fisico e suportado em algumas de suas unidades de processamento grafico.

AGEIA PhysX [ editar | editar codigo-fonte ]

O primeiro processador a ser comercializado como uma PPU foi o microchip PhysX , introduzido pela empresa Ageia. Jogos eletronicos que utilizassem da vantagem da PPU PhysX devem utilizar a SDK PhysX (tambem conhecida como NovodeX SDK), disponibilizada pela empresa Ageia.

O microchip consiste de um nucleo RISC de uso geral, gerenciando um array de processadores VLIW de ponto flutuante SIMD que trabalham em uma memoria local, com um switch-fabric fazendo a gestao entre os dois pontos. Nao ha uma hierarquia de cache, como visto em uma CPU ou uma GPU.

A PhysX foi disponibilizada atraves de tres empresas do mesmo modo como placas de video eram produzidas. ASUS , BFG Technologies e ELSA Technologies foram as primeiras fabricantes. Computadores com PPUs ja instaladas eram vendidos por empresas como Alienware , DELL e Falcon Northwest.

Em fevereiro de 2008, apos a Nvidia comprar a empresa Ageia e eventualmente cortar a acessibilidade de processadores PhysX em sistemas com GPUs actice ATi/AMD, o microchip PhysX parecia pertencer 100% a Nvidia. No entanto, em Marco de 2008, foi anunciado pela Nvidia que os processadores PhysX seriam transformados em um padrao aberto para todos, para que produtores de processadores graficos pudessem ter suporte ao padrao PhysX na proxima geracao de placas graficas. A Nvidia anunciou que o PhysX tambem estaria disnpoivel para suas placas graficas atraves do download de drivers especificos.

PhysX P1 (PPU) Especificacoes de Hardware [ editar | editar codigo-fonte ]

As empresas ASUS e BFG Technologies compraram licencas para produzir versoes alternativas a PhysX P1 com 128 MB de memoria GDDR3, da Ageia.

  • Um dispositivo multi-core baseado em um conjunto de instrucoes MIPS com hardware de aceleracao fisica e um subsistema de memoria com "varios cores"
  • 125 milhoes de Transistores
  • Um circuito integrado com tamanho de 128 mm
  • Processamento de fabricacao: 130 nm
  • Pico maximo de consumo de energia: 30 Watts
  • 128 MB de memoria RAM GDDR3 com uma interface de 128 bits
  • Um PCI 3.0 de 32 bits (a ASUS tambem fez uma versao PCI Express )
  • Testes de colisao de esferas: 530 milhoes por segundo (maximo)
  • Testes de colisao convexas: 530 milhoes por segundo (maximo)
  • Pico de bandwidth de instrucoes: 20 bilhoes por segundo

Havok FX [ editar | editar codigo-fonte ]

A SDK Havok e a maior competidora a PhysX SDK. Usada em mais de 150 jogos eletronicos, incluindo grandes titulos como Half-Life 2, Halo 3 e Dead Rising.

Para competir a PPU PhysX, uma edicao conhecida como Havok FX foi otimizada para o uso de tecnologia multi-GPU criada pela ATI ( CrossFire ) e pela Nvidia ( SLI ), usando placas ja existentes para acelerar o processamento de alguns calculos fisicos.

A solucao da Havok divide-se na simulacao da fisica entre o efeito e o gameplay, como fisica de efeito sendo enviadas, se possivel, para a GPU como instrucoes baseadas no Shader Model 3.0 e fisicas de gameplay sendo processadas na CPU. A distincao importante entre estes dois e que a fisica de efeito nao afeta o gameplay (como poeira ou detritos de uma explosao, por exemplo); a grande maioria de operacoes fisicas ainda sao feitas por software. Esta abordagem diferencia-se significantemente da SDK PhysX, que move todos os calculos para a placa PhysX, se presente.

Desde que a Havok foi adquirida pela Intel, o projeto Havok FX parece ter sido cancelado.

GPUs vs PPUs [ editar | editar codigo-fonte ]

O uso ampliado de GPGPUS esta fazendo com que GPUs fiquem cada vez mais apropriadas para o trabalho de PPUs; DX10 adiciona o tipo de dado inteiro, uma arquitetura unificada de shaders, e um estagio de shader de geometria que permite uma maior variedade de algoritmos ser implementada; CUDA, da NVidia, prove um pouco mais no quesito de comunicacao de threads internas.

No entanto, GPUs sao construidas tendo em mente um tempo maior de latencia, threads mais lentas e tem seus tipos de dados otimizados para processamento de texturas e framebuffers. Isto diferencia-as de PPUs por nao serem tao bem otimizadas para tarefas de simulacao de mundo virtual.

O compilador Codeplay Sieve suporta PPUs, indicando que a physX, da Ageia, poderia efetuar tarefas designadas para GPGPU. No entanto, e muito improvavel que a Ageia persiga este mercado.

Fusao Intel Larrabee & AMD [ editar | editar codigo-fonte ]

E especulado que a Larrabee (uma implementacao da arquitetura x86 com alta taxa de transferencia (throughput) otimizado para muitos cores) seja adequada para assumir o papel de uma PPU; como o Cell, ela se encontra entre uma CPU e uma GPU no espectro de processamento de proposito geral contra processamento especializado back-end de alta performance. A Intel confirmou que a arquitetura de memoria da Larrabee nao ira usar scratchpads, como o Cell ou a PPU Ageia, e ira se parecer mais com uma memoria cache hierarquica, como em CPUs convencionais. No entanto, havera extensoes que permitirao computacao com alta taixa de transferencia (como um componente completo de instrucoes de controle de cache).

A AMD declarou que tem a intencao de permitir que suas APUs poderao usar Radeon como um co-processador de vetores, dividindo recursos como a hierarquia de cache. Esta caracteristica de configuracao comecou a aparecer na forma de arquiteturas de sistemas heterogeneos.

PS2 - VU0 [ editar | editar codigo-fonte ]

Apesar de muito diferente da Phys X, pode-se argumentar que a VUO, do PlayStation 2, e uma limitada e prematura implementacao de PPU. Reciprocamente, pode-se descrever uma PPU para um programador de PlayStation 2 como uma forma evoluida de VUO. As suas caracteristicas e localizacao dentro do sistema sao voltadas ao aceleramento de tarefas do jogo, como fisica e inteligencia artificial; ela pode descarregar tais calculos em sua stream de instrucoes enquanto a CPU esta operando em algo diferente. Sendo uma DSP, no entanto, ela e muito mais dependente da CPU para fazer tarefas realmente uteis em uma game engine e nao seria capaz de implementar uma API de fisica completa, nao podendo assim ser classificada como uma PPU. A VUO, tambem, e capaz de prover um poder de processamento de vertex adicional, apesar de isto ser mais uma caracteristica do sistema do que da unidade em si.

Este uso e similar ao da Havok FX ou calculos fisicos feitos pela GPU do modo que o uma unidade auxiliar de processamento de pontos flutuantes e usada para complementar a CPU, seja em calculos graficos ou fisicos.