Unidade de processamento gráfico - Graphics processing unit

Componentes de uma GPU

Uma unidade de processamento gráfico ( GPU ) é um circuito eletrônico especializado projetado para manipular e alterar rapidamente a memória para acelerar a criação de imagens em um buffer de quadro destinado à saída para um dispositivo de exibição . As GPUs são usadas em sistemas embarcados , telefones celulares , computadores pessoais , estações de trabalho e consoles de jogos .

As GPUs modernas são muito eficientes na manipulação de computação gráfica e processamento de imagens . Sua estrutura altamente paralela os torna mais eficientes do que as unidades de processamento central (CPUs) de uso geral para algoritmos que processam grandes blocos de dados em paralelo. Em um computador pessoal, uma GPU pode estar presente em uma placa de vídeo ou embutida na placa - mãe . Em certos CPUs, eles são incorporados na CPU die .

Na década de 1970, o termo "GPU" originalmente significava unidade de processador gráfico e descrevia uma unidade de processamento programável que trabalhava independentemente da CPU e era responsável pela manipulação e saída de gráficos. Mais tarde, em 1994, a Sony usou o termo (agora significando unidade de processamento gráfico ) em referência à GPU Sony projetada pela Toshiba do console PlayStation em 1994. O termo foi popularizado pela Nvidia em 1999, que comercializou a GeForce 256 como "a primeira do mundo GPU ". Ele foi apresentado como um " processador de chip único com transformadores integrados , iluminação, configuração / recorte de triângulo e motores de renderização". A rival ATI Technologies cunhou o termo " unidade de processamento visual " ou VPU com o lançamento do Radeon 9700 em 2002.

História

Década de 1970

As placas de sistema Arcade têm usado circuitos gráficos especializados desde os anos 1970. Nos primeiros hardwares de videogame, a RAM para buffers de quadro era cara, então os chips de vídeo combinavam os dados enquanto a tela era digitalizada no monitor.

Um circuito barrel shifter especializado foi usado para ajudar a CPU a animar os gráficos do framebuffer para vários jogos de arcade da década de 1970 da Midway e Taito , como Gun Fight (1975), Sea Wolf (1976) e Space Invaders (1978). O sistema de arcade Namco Galaxian em 1979 usava hardware gráfico especializado com suporte a cores RGB , sprites multicoloridos e fundos de mapa de blocos . O hardware Galaxian foi amplamente utilizado durante a era de ouro dos videogames de arcade , por empresas de jogos como Namco , Centuri , Gremlin , Irem , Konami , Midway , Nichibutsu , Sega e Taito .

Microprocessador Atari ANTIC em uma placa-mãe Atari 130XE

No mercado doméstico, o Atari 2600 em 1977 usava um deslocador de vídeo chamado Adaptador de Interface de Televisão . Os computadores Atari de 8 bits (1979) tinham ANTIC , um processador de vídeo que interpretava instruções que descreviam uma "lista de exibição" - a maneira como as linhas de varredura são mapeadas para modos de bitmap ou de caracteres específicos e onde a memória é armazenada (para que não seja necessário ser um buffer de quadro contíguo). As sub - rotinas de código de máquina 6502 podem ser acionadas em linhas de varredura definindo um bit em uma instrução de lista de exibição. ANTIC também suportava rolagem vertical e horizontal suave independente da CPU.

Década de 1980

NEC μPD7220 A

O NEC µPD7220 foi a primeira implementação de um processador de vídeo gráfico para PC como um único chip de circuito integrado Large Scale Integration (LSI) , permitindo o design de placas de vídeo de baixo custo e alto desempenho, como as da Number Nine Visual Technology . Tornou-se a GPU mais conhecida até meados da década de 1980. Foi o primeiro processador gráfico VLSI ( integração de muito grande escala) metal-óxido-semicondutor ( NMOS ) totalmente integrado para PCs, com suporte para resolução de até 1024x1024 e lançou as bases para o mercado emergente de gráficos para PC. Ele foi usado em várias placas de vídeo e foi licenciado para clones como o Intel 82720, a primeira unidade de processamento gráfico da Intel . Os jogos de arcade da Williams Electronics Robotron 2084 , Joust , Sinistar e Bubbles , todos lançados em 1982, contêm chips blitter personalizados para operar em bitmaps de 16 cores.

Em 1984, a Hitachi lançou o ARTC HD63484, o primeiro grande processador gráfico CMOS para PC. O ARTC era capaz de exibir resolução de até 4K no modo monocromático e foi usado em várias placas de vídeo e terminais de PC durante o final da década de 1980. Em 1985, o Commodore Amiga apresentava um chip gráfico personalizado, com uma unidade de blitter que acelerava as funções de manipulação de bitmap, desenho de linha e preenchimento de área. Também está incluído um coprocessador com seu próprio conjunto de instruções simples, capaz de manipular registros de hardware gráfico em sincronia com o feixe de vídeo (por exemplo, para opções de paleta por scanline, multiplexação de sprite e janelas de hardware) ou direcionar o blitter. Em 1986, a Texas Instruments lançou o TMS34010 , o primeiro processador gráfico totalmente programável. Ele podia executar código de uso geral, mas tinha um conjunto de instruções orientadas para gráficos. Durante 1990–1992, esse chip se tornou a base das placas aceleradoras do Windows da Texas Instruments Graphics Architecture ("TIGA") .

O adaptador IBM 8514 Micro Channel, com complemento de memória.

Em 1987, o sistema gráfico IBM 8514 foi lançado como uma das primeiras placas de vídeo compatíveis com IBM PC a implementar primitivos 2D de função fixa em hardware eletrônico . Afiada 's X68000 , lançado em 1987, usou um chipset gráficos personalizados com uma paleta e hardware suporte 65.536 cores para sprites, rolagem e vários playfields, eventualmente, servir como uma máquina de desenvolvimento para Capcom ' s CP Sistema de placa de arcade. Mais tarde, a Fujitsu competiu com o computador FM Towns , lançado em 1989 com suporte para uma paleta de cores completa 16.777.216. Em 1988, as primeiras placas gráficas 3D poligonais dedicadas foram introduzidas em fliperamas com o Namco System 21 e o Taito Air System.

Seção VGA na placa-mãe em IBM PS / 55

IBM 's proprietária Video Graphics Array padrão de vídeo (VGA) foi introduzida em 1987, com uma resolução máxima de 640 × 480 pixels. Em novembro de 1988, a NEC Home Electronics anunciou a criação da Video Electronics Standards Association (VESA) para desenvolver e promover um padrão de exibição de computador Super VGA (SVGA) como sucessor do padrão de exibição VGA proprietário da IBM. Super VGA habilitado para resolução de tela de até 800 × 600 pixels , um aumento de 36%.

Década de 1990

Placa Voodoo3 2000 AGP

Em 1991, a S3 Graphics lançou o S3 86C911 , que seus designers batizaram com o nome do Porsche 911 como uma indicação do aumento de desempenho que prometia. O 86C911 gerou uma série de imitadores: em 1995, todos os principais fabricantes de chips gráficos para PC adicionaram suporte de aceleração 2D a seus chips. Nessa época, os aceleradores de função fixa do Windows haviam ultrapassado os caros coprocessadores gráficos de uso geral no desempenho do Windows, e esses coprocessadores desapareceram do mercado de PCs.

Ao longo da década de 1990, a aceleração de GUI 2D continuou a evoluir. À medida que as capacidades de fabricação melhoravam, também aumentava o nível de integração dos chips gráficos. As interfaces de programação de aplicativos (APIs) adicionais chegaram para uma variedade de tarefas, como a biblioteca de gráficos WinG da Microsoft para Windows 3.x e sua interface DirectDraw posterior para aceleração de hardware de jogos 2D no Windows 95 e posterior.

No início e em meados da década de 1990, os gráficos 3D em tempo real estavam se tornando cada vez mais comuns em jogos de arcade, computador e console, o que levou a uma crescente demanda pública por gráficos 3D acelerados por hardware . Os primeiros exemplos de hardware gráfico 3D para o mercado de massa podem ser encontrados em placas de sistema de arcade, como Sega Model 1 , Namco System 22 e Sega Model 2 , e nos consoles de videogame de quinta geração , como Saturn , PlayStation e Nintendo 64 . Sistemas de arcade como o Sega Model 2 e Namco Magic Edge Hornet Simulator em 1993 eram capazes de T&L de hardware ( transformar, recortar e iluminar ) anos antes de aparecerem em placas gráficas de consumo. Alguns sistemas usaram DSPs para acelerar as transformações. A Fujitsu , que trabalhou no sistema de arcade Sega Model 2, começou a trabalhar na integração de T&L em uma única solução LSI para uso em computadores domésticos em 1995; a Fujitsu Pinolite, o primeiro processador de geometria 3D para computadores pessoais, lançado em 1997. O primeiro hardware T & L GPU em casa consolas de jogos de vídeo foi o Nintendo 64 's Reality coprocessador , lançado em 1996. Em 1997, a Mitsubishi lançou o 3DPro / 2MP , uma GPU com recursos completos, capaz de transformação e iluminação, para estações de trabalho e desktops Windows NT ; A ATi o utilizou em sua placa de vídeo FireGL 4000 , lançada em 1997.

O termo "GPU" foi cunhado pela Sony em referência ao GPU da Sony de 32 bits (projetado pela Toshiba ) no console de videogame PlayStation , lançado em 1994.

No mundo do PC, as primeiras tentativas fracassadas notáveis ​​para chips gráficos 3D de baixo custo foram o S3 ViRGE , ATI Rage e Matrox Mystique . Esses chips eram essencialmente aceleradores 2D da geração anterior com recursos 3D integrados. Muitos eram até compatíveis com os chips da geração anterior para facilidade de implementação e custo mínimo. Inicialmente, gráficos 3D de desempenho eram possíveis apenas com placas discretas dedicadas a funções 3D de aceleração (e sem a aceleração GUI 2D totalmente), como o PowerVR e o 3dfx Voodoo . No entanto, como a tecnologia de fabricação continuou a progredir, vídeo, aceleração de GUI 2D e funcionalidade 3D foram todos integrados em um único chip. Os chipsets Verite da Rendition foram os primeiros a fazer isso bem o suficiente para serem dignos de nota. Em 1997, a Rendition deu um passo além ao colaborar com a Hercules e a Fujitsu em um projeto "Thriller Conspiracy" que combinava um processador de geometria Fujitsu FXG-1 Pinolite com um núcleo Vérité V2200 para criar uma placa gráfica com um motor T&L completo anos antes da GeForce da Nvidia 256 . Esta placa, projetada para reduzir a carga colocada na CPU do sistema, nunca chegou ao mercado.

O OpenGL apareceu no início dos anos 90 como uma API gráfica profissional, mas originalmente sofria de problemas de desempenho que permitiram que a API Glide interviesse e se tornasse uma força dominante no PC no final dos anos 90. No entanto, esses problemas foram superados rapidamente e a API Glide foi deixada de lado. As implementações de software do OpenGL eram comuns durante este tempo, embora a influência do OpenGL eventualmente tenha levado a um suporte de hardware generalizado. Com o tempo, surgiu uma paridade entre os recursos oferecidos no hardware e os oferecidos no OpenGL. O DirectX se tornou popular entre os desenvolvedores de jogos do Windows no final dos anos 90. Ao contrário do OpenGL, a Microsoft insistia em fornecer suporte estrito de hardware um para um. A abordagem tornou o DirectX menos popular como uma API gráfica independente inicialmente, uma vez que muitas GPUs forneciam seus próprios recursos específicos, dos quais os aplicativos OpenGL existentes já podiam se beneficiar, deixando o DirectX frequentemente uma geração para trás. (Veja: Comparação de OpenGL e Direct3D .)

Com o tempo, a Microsoft começou a trabalhar mais de perto com os desenvolvedores de hardware e a direcionar os lançamentos do DirectX para coincidir com os do hardware gráfico de suporte. O Direct3D 5.0 foi a primeira versão da API em expansão a obter ampla adoção no mercado de jogos e competiu diretamente com muitas bibliotecas gráficas mais específicas de hardware, muitas vezes proprietárias, enquanto o OpenGL mantinha um grande número de seguidores. O Direct3D 7.0 introduziu suporte para transformação acelerada por hardware e iluminação (T&L) para Direct3D, enquanto o OpenGL já tinha esse recurso exposto desde o início. As placas aceleradoras 3D foram além de simples rasterizadores para adicionar outro estágio de hardware significativo ao pipeline de renderização 3D. A Nvidia GeForce 256 (também conhecida como NV10) foi a primeira placa de nível de consumidor lançada no mercado com T&L acelerado por hardware, enquanto placas 3D profissionais já tinham esse recurso. A transformação e iluminação de hardware, ambos recursos já existentes do OpenGL, chegaram ao hardware de nível de consumidor nos anos 90 e estabeleceram o precedente para unidades de sombreador de pixel e vertex posteriores , que eram muito mais flexíveis e programáveis.

2000 a 2010

A Nvidia foi a primeira a produzir um chip capaz de sombreamento programável ; a GeForce 3 (codinome NV20). Cada pixel agora poderia ser processado por um pequeno "programa" que poderia incluir texturas de imagem adicionais como entradas, e cada vértice geométrico poderia da mesma forma ser processado por um pequeno programa antes de ser projetado na tela. Usado no console Xbox , ele competia com o PlayStation 2 , que usava uma unidade de vetor customizada para processamento de vértice acelerado por hardware (comumente referido como VU0 / VU1). As primeiras encarnações dos mecanismos de execução de sombreador usados ​​no Xbox não eram de propósito geral e não podiam executar código de pixel arbitrário. Vértices e pixels foram processados ​​por diferentes unidades que tinham seus próprios recursos com pixel shaders tendo restrições muito mais rígidas (visto que são executados em frequências muito mais altas do que com vértices). Os mecanismos de sombreamento de pixel eram, na verdade, mais parecidos com um bloco de funções altamente personalizável e não "executavam" um programa. Muitas dessas disparidades entre o sombreamento de vértice e pixel não foram abordadas até muito mais tarde com o Unified Shader Model .

Em outubro de 2002, com a introdução do ATI Radeon 9700 (também conhecido como R300), o primeiro acelerador Direct3D 9.0, pixel e sombreadores de vértice do mundo podiam implementar looping e matemática de ponto flutuante demorada e estavam rapidamente se tornando tão flexíveis quanto CPUs, mas pedidos de magnitude mais rápido para operações de matriz de imagem. O sombreamento de pixel é frequentemente usado para mapeamento de relevo , que adiciona textura, para fazer um objeto parecer brilhante, opaco, áspero ou mesmo redondo ou extrudado.

Com a introdução da série Nvidia GeForce 8 e, em seguida, a nova unidade de processamento de fluxo genérico, as GPUs tornaram-se dispositivos de computação mais generalizados. Hoje, as GPUs paralelas começaram a fazer incursões computacionais contra a CPU, e um subcampo de pesquisa, denominado GPU Computing ou GPGPU para General Purpose Computing em GPU , encontrou seu caminho em campos tão diversos como aprendizado de máquina , exploração de petróleo , processamento de imagens científicas , álgebra linear , estatísticas , reconstrução 3D e até determinação de preços de opções de ações . O GPGPU na época era o precursor do que agora é chamado de sombreador de computação (por exemplo, CUDA, OpenCL, DirectCompute) e realmente abusou do hardware até certo ponto, tratando os dados passados ​​para algoritmos como mapas de textura e executando algoritmos desenhando um triângulo ou quadrante com um sombreador de pixel apropriado. Isso obviamente acarreta alguns overheads, já que unidades como o Scan Converter estão envolvidas onde não são realmente necessárias (nem mesmo a manipulação de triângulos é uma preocupação - exceto para invocar o pixel shader).

A plataforma CUDA da Nvidia , introduzida pela primeira vez em 2007, foi o primeiro modelo de programação amplamente adotado para computação GPU. Mais recentemente, o OpenCL tornou-se amplamente suportado. OpenCL é um padrão aberto definido pelo Khronos Group que permite o desenvolvimento de código para GPUs e CPUs com ênfase na portabilidade. As soluções OpenCL são suportadas pela Intel, AMD, Nvidia e ARM e, de acordo com um relatório recente da Evan's Data, OpenCL é a plataforma de desenvolvimento GPGPU mais usada por desenvolvedores nos Estados Unidos e na Ásia-Pacífico.

2010 até o presente

Em 2010, a Nvidia iniciou uma parceria com a Audi para alimentar os painéis de seus carros, usando as GPUs Tegra para fornecer maior funcionalidade aos sistemas de navegação e entretenimento dos carros. Os avanços na tecnologia de GPU em carros ajudaram a impulsionar a tecnologia de direção autônoma . As placas da série Radeon HD 6000 da AMD foram lançadas em 2010 e em 2011, a AMD lançou suas GPUs discretas da série 6000M para serem usadas em dispositivos móveis. A linha Kepler de placas gráficas da Nvidia foi lançada em 2012 e foram usadas nas placas da série 600 e 700 da Nvidia. Um recurso nesta nova microarquitetura de GPU incluiu GPU boost, uma tecnologia que ajusta a velocidade do clock de uma placa de vídeo para aumentá-la ou diminuí-la de acordo com seu consumo de energia. A microarquitetura Kepler foi fabricada no processo de 28 nm.

O PS4 e o Xbox One foram lançados em 2013, ambos usam GPUs baseadas nas Radeon HD 7850 e 7790 da AMD . A linha de GPUs Kepler da Nvidia foi seguida pela linha Maxwell , fabricada no mesmo processo. Os chips de 28 nm da Nvidia eram fabricados pela TSMC, a Taiwan Semiconductor Manufacturing Company, que na época fabricava usando o processo de 28 nm. Em comparação com a tecnologia de 40 nm do passado, este novo processo de fabricação permitiu um aumento de 20 por cento no desempenho enquanto consumia menos energia. Os fones de ouvido de realidade virtual têm requisitos de sistema muito altos. Os fabricantes de fones de ouvido VR recomendaram o GTX 970 e o R9 290X ou superior na época de seu lançamento. Pascal é a próxima geração de placas gráficas de consumo da Nvidia lançada em 2016. A série de placas GeForce 10 está sob esta geração de placas gráficas. Eles são feitos usando o processo de fabricação de 16 nm, que melhora a microarquitetura anterior. A Nvidia lançou uma placa não voltada para o consumidor sob a nova arquitetura Volta , a Titan V. As mudanças da Titan XP, a placa de ponta da Pascal, incluem um aumento no número de núcleos CUDA, a adição de núcleos tensores e HBM2 . Os núcleos tensores são especialmente projetados para aprendizado profundo, enquanto a memória de alta largura de banda é uma memória on-die, empilhada e de menor clock que oferece um barramento de memória extremamente amplo que é útil para o propósito pretendido do Titan V. Para enfatizar que o Titan V não é uma placa de jogo, a Nvidia removeu o sufixo "GeForce GTX" que ele adiciona às placas de jogo do consumidor.

Em 20 de agosto de 2018, a Nvidia lançou as GPUs da série RTX 20 que adicionam núcleos de rastreamento de raio às GPUs, melhorando seu desempenho em efeitos de iluminação. As GPUs Polaris 11 e Polaris 10 da AMD são fabricadas por um processo de 14 nanômetros. Seu lançamento resulta em um aumento substancial no desempenho por watt das placas de vídeo AMD. A AMD também lançou a série de GPUs Vega para o mercado de ponta como concorrente das placas Pascal de ponta da Nvidia, também apresentando HBM2 como a Titan V.

Em 2019, a AMD lançou o sucessor de seu conjunto de microarquitetura / instrução Graphics Core Next (GCN). Chamada de RDNA, a primeira linha de produtos com a primeira geração de RDNA foi a série de placas de vídeo Radeon RX 5000 , lançada posteriormente em 7 de julho de 2019. Posteriormente, a empresa anunciou que a sucessora da microarquitetura RDNA seria uma atualização. Chamada de RDNA 2, a nova microarquitetura foi supostamente agendada para lançamento no quarto trimestre de 2020.

A AMD revelou a série Radeon RX 6000 , sua próxima geração de placas gráficas RDNA 2 com suporte para ray tracing acelerado por hardware em um evento online em 28 de outubro de 2020. A linha consiste inicialmente no RX 6800, RX 6800 XT e RX 6900 XT . O RX 6800 e 6800 XT foram lançados em 18 de novembro de 2020, com o RX 6900 XT sendo lançado em 8 de dezembro de 2020. O RX 6700 XT, que é baseado no Navi 22, foi lançado em 18 de março de 2021.

O PlayStation 5 e o Xbox Series X e Series S foram lançados em 2020, ambos usam GPUs baseadas na microarquitetura RDNA 2 com ajustes proprietários e diferentes configurações de GPU na implementação de cada sistema.

Empresas de GPU

Muitas empresas produziram GPUs sob várias marcas. Em 2009, Intel , Nvidia e AMD / ATI eram os líderes em market share, com 49,4%, 27,8% e 20,6% de market share, respectivamente. No entanto, esses números incluem as soluções gráficas integradas da Intel como GPUs. Sem contar aqueles, Nvidia e AMD controlam quase 100% do mercado em 2018. Suas respectivas participações de mercado são de 66% e 33%. Além disso, a Matrox produz GPUs. Os smartphones modernos também usam principalmente GPUs Adreno da Qualcomm , GPUs PowerVR da Imagination Technologies e GPUs Mali da ARM .

Funções computacionais

As GPUs modernas usam a maioria de seus transistores para fazer cálculos relacionados à computação gráfica 3D . Além do hardware 3D, as GPUs atuais incluem recursos básicos de aceleração 2D e framebuffer (geralmente com um modo de compatibilidade VGA). Placas mais novas, como AMD / ATI HD5000-HD7000, não têm aceleração 2D; tem que ser emulado por hardware 3D. GPUs foram inicialmente usados ​​para acelerar o trabalho intensivo de memória de mapeamento de textura e renderização de polígonos, posteriormente adicionando unidades para acelerar cálculos geométricos , como a rotação e translação de vértices em diferentes sistemas de coordenadas . Desenvolvimentos recentes em GPUs incluem suporte para sombreadores programáveis que podem manipular vértices e texturas com muitas das mesmas operações suportadas por CPUs , técnicas de sobreamostragem e interpolação para reduzir o aliasing e espaços de cores de altíssima precisão . Dado que a maioria desses cálculos envolve operações de matriz e vetor , engenheiros e cientistas têm estudado cada vez mais o uso de GPUs para cálculos não gráficos; eles são especialmente adequados para outros problemas embaraçosamente paralelos .

Vários fatores da construção da GPU influenciam o desempenho da placa para renderização em tempo real. Os fatores comuns podem incluir o tamanho das vias do conector na fabricação do dispositivo semicondutor , a frequência do sinal de clock e o número e o tamanho de vários caches de memória no chip . Além disso, o número de Streaming Multiprocessors (SM) para GPUs NVidia ou Compute Units (CU) para GPUs AMD, que descreve o número de unidades de processador de núcleo em silício dentro do chip de GPU que executa os cálculos principais, normalmente trabalhando em paralelo com outros SM / CUs na GPU. O desempenho das GPUs é normalmente medido em operações de ponto flutuante por segundo ou FLOPS , com as GPUs nas décadas de 2010 e 2020 fornecendo desempenho medido em teraflops (TFLOPS). Esta é uma medida de desempenho estimada, pois outros fatores podem afetar a taxa de exibição real.

Com o surgimento do aprendizado profundo, a importância das GPUs aumentou. Em pesquisa feita pela Indigo, descobriu-se que, ao treinar redes neurais de aprendizado profundo, as GPUs podem ser 250 vezes mais rápidas do que as CPUs. Tem havido certo nível de competição nesta área com ASICs , principalmente a Unidade de Processamento de Tensor (TPU) feita pelo Google. No entanto, os ASICs exigem mudanças no código existente e as GPUs ainda são muito populares.

Decodificação e codificação de vídeo acelerada por GPU

A GPU ATI HD5470 (acima) possui UVD 2.1 que permite decodificar os formatos de vídeo AVC e VC-1

A maioria das GPUs feitas desde 1995 suporta o espaço de cores YUV e sobreposições de hardware , importantes para a reprodução de vídeo digital , e muitas GPUs feitas desde 2000 também suportam primitivos MPEG , como compensação de movimento e iDCT . Este processo de decodificação de vídeo acelerado por hardware, onde partes do processo de decodificação de vídeo e pós-processamento de vídeo são transferidos para o hardware GPU, é comumente referido como "decodificação de vídeo acelerada por GPU", "decodificação de vídeo assistida por GPU", "hardware GPU acelerado decodificação de vídeo "ou" decodificação de vídeo assistida por hardware GPU ".

As placas gráficas mais recentes até mesmo decodificam vídeo de alta definição na placa, descarregando a unidade de processamento central. As APIs mais comuns para decodificação de vídeo acelerada por GPU são DxVA para sistema operacional Microsoft Windows e VDPAU , VAAPI , XvMC e XvBA para sistemas operacionais baseados em Linux e UNIX. Todos, exceto o XvMC, são capazes de decodificar vídeos codificados com MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Parte 2) , MPEG-4 AVC (H.264 / DivX 6), VC-1 , WMV3 / WMV9 , Xvid / OpenDivX (DivX 4) e codecs DivX 5 , enquanto o XvMC só é capaz de decodificar MPEG-1 e MPEG-2.

Existem várias soluções dedicadas de decodificação e codificação de vídeo por hardware .

Processos de decodificação de vídeo que podem ser acelerados

Os processos de decodificação de vídeo que podem ser acelerados pelo hardware de GPU moderno de hoje são:

As operações acima também têm aplicações em edição, codificação e transcodificação de vídeo

Formulários GPU

Terminologia

Em computadores pessoais, existem duas formas principais de GPUs. Cada um tem muitos sinônimos:

  • Placa gráfica dedicada - também chamada de discreta .
  • Gráficos integrados - também chamados de soluções gráficas compartilhadas , processadores gráficos integrados (IGP) ou arquitetura de memória unificada (UMA).

GPU de uso específico

A maioria das GPUs são projetadas para um uso específico, gráficos 3D em tempo real ou outros cálculos de massa:

  1. Jogos
  2. Cloud Gaming
  3. Posto de trabalho
  4. Estação de Trabalho em Nuvem
  5. Treinamento em inteligência artificial e nuvem
  6. Carro automatizado / sem motorista

Placas gráficas dedicadas

As GPUs da classe mais poderosa normalmente fazem interface com a placa - mãe por meio de um slot de expansão , como PCI Express (PCIe) ou Porta Gráfica Acelerada (AGP) e geralmente podem ser substituídas ou atualizadas com relativa facilidade, assumindo que a placa-mãe seja capaz de suportar a atualização. Algumas placas gráficas ainda usam slots Peripheral Component Interconnect (PCI), mas sua largura de banda é tão limitada que geralmente são usadas apenas quando um slot PCIe ou AGP não está disponível.

Uma GPU dedicada não é necessariamente removível, nem faz interface necessariamente com a placa-mãe de maneira padrão. O termo "dedicado" se refere ao fato de que as placas gráficas dedicadas têm RAM que é dedicada ao uso da placa, não ao fato de que a maioria das GPUs dedicadas são removíveis. Além disso, essa RAM é geralmente selecionada especialmente para a carga de trabalho serial esperada da placa de vídeo (consulte GDDR ). Às vezes, os sistemas com GPUs dedicadas e discretas eram chamados de sistemas "DIS", em oposição aos sistemas "UMA" (consulte a próxima seção). As GPUs dedicadas para computadores portáteis são mais comumente conectadas por meio de um slot não padrão e muitas vezes proprietário devido às restrições de tamanho e peso. Essas portas ainda podem ser consideradas PCIe ou AGP em termos de sua interface de host lógica, mesmo se não forem fisicamente intercambiáveis ​​com suas contrapartes.

Tecnologias como SLI e NVLink da Nvidia e CrossFire da AMD permitem que várias GPUs desenhem imagens simultaneamente para uma única tela, aumentando o poder de processamento disponível para gráficos. Essas tecnologias, no entanto, são cada vez mais incomuns, já que a maioria dos jogos não utiliza totalmente várias GPUs, já que a maioria dos usuários não pode comprá-las. Múltiplas GPUs ainda são usadas em supercomputadores (como na Summit ), em estações de trabalho para acelerar vídeo (processamento de vários vídeos de uma vez) e renderização 3D, para VFX e para simulações, e em IA para agilizar o treinamento, como é o caso da linha de Nvidia de Estações de trabalho e servidores DGX e GPUs Tesla e as próximas GPUs Ponte Vecchio da Intel.

Unidade de processamento gráfico integrado

A posição de uma GPU integrada em um layout de sistema ponte norte / ponte sul
Uma placa - mãe ASRock com gráficos integrados, que possui saídas HDMI, VGA e DVI.

Unidade de processamento gráfico integrado (IGPU), gráficos integrados , soluções gráficas compartilhadas , processadores gráficos integrados (IGP) ou arquitetura de memória unificada (UMA) utilizam uma parte da RAM do sistema de um computador em vez de memória gráfica dedicada. Os IGPs podem ser integrados na placa-mãe como parte do chipset (northbridge) ou no mesmo chip ( circuito integrado) com a CPU (como AMD APU ou Intel HD Graphics ). Em certas placas-mãe, os IGPs da AMD podem usar memória de porta lateral dedicada. Este é um bloco fixo separado de memória de alto desempenho que é dedicado para uso pela GPU. No início de 2007, os computadores com gráficos integrados eram responsáveis ​​por cerca de 90% de todas as remessas de PCs. Eles são menos caros de implementar do que o processamento gráfico dedicado, mas tendem a ser menos capazes. Historicamente, o processamento integrado foi considerado impróprio para jogar jogos 3D ou executar programas gráficos intensos, mas poderia executar programas menos intensivos, como Adobe Flash. Exemplos de tais IGPs seriam ofertas da SiS e VIA por volta de 2004. No entanto, processadores gráficos modernos integrados como AMD Accelerated Processing Unit e Intel HD Graphics são mais do que capazes de lidar com gráficos 2D ou gráficos 3D de baixo estresse.

Uma vez que os cálculos da GPU consomem muita memória, o processamento integrado pode competir com a CPU pela memória RAM do sistema relativamente lenta, já que ela tem pouca ou nenhuma memória de vídeo dedicada. Os IGPs podem ter até 29,856 GB / s de largura de banda de memória da RAM do sistema, enquanto uma placa de vídeo pode ter até 264 GB / s de largura de banda entre sua RAM e o núcleo da GPU. Essa largura de banda do barramento de memória pode limitar o desempenho da GPU, embora a memória multicanal possa atenuar essa deficiência. Os chipsets gráficos integrados mais antigos não tinham transformação de hardware e iluminação , mas os mais novos incluem.

Processamento gráfico híbrido

Essa nova classe de GPUs compete com gráficos integrados nos mercados de desktops e notebooks de baixo custo. As implementações mais comuns disso são HyperMemory da ATI e TurboCache da Nvidia .

As placas de vídeo híbridas são um pouco mais caras do que as integradas, mas muito menos caras do que as placas de vídeo dedicadas. Eles compartilham memória com o sistema e têm um pequeno cache de memória dedicado, para compensar a alta latência da RAM do sistema. As tecnologias do PCI Express podem tornar isso possível. Embora essas soluções às vezes sejam anunciadas como tendo até 768 MB de RAM, isso se refere à quantidade que pode ser compartilhada com a memória do sistema.

Processamento de stream e GPUs de uso geral (GPGPU)

Está se tornando cada vez mais comum usar uma unidade de processamento gráfico de propósito geral (GPGPU) como uma forma modificada de processador de fluxo (ou um processador de vetor ), executando kernels de computação . Esse conceito transforma o enorme poder computacional do pipeline de sombreador de um acelerador gráfico moderno em poder de computação de uso geral, em vez de ser conectado exclusivamente para fazer operações gráficas. Em certos aplicativos que exigem operações vetoriais massivas, isso pode gerar um desempenho várias ordens de magnitude maior do que uma CPU convencional. Os dois maiores designers de GPU discretos (consulte " Placas de vídeo dedicadas " acima), AMD e Nvidia , estão começando a buscar essa abordagem com uma variedade de aplicativos. A Nvidia e a AMD se uniram à Universidade de Stanford para criar um cliente baseado em GPU para o projeto de computação distribuída Folding @ home , para cálculos de dobra de proteínas. Em certas circunstâncias, a GPU calcula quarenta vezes mais rápido do que as CPUs tradicionalmente usadas por esses aplicativos.

O GPGPU pode ser usado para muitos tipos de tarefas embaraçosamente paralelas , incluindo traçado de raio . Eles geralmente são adequados para cálculos do tipo de alto rendimento que exibem paralelismo de dados para explorar a arquitetura SIMD de largura vetorial ampla da GPU.

Além disso, os computadores de alto desempenho baseados em GPU estão começando a desempenhar um papel significativo na modelagem em grande escala. Três dos 10 supercomputadores mais poderosos do mundo tiram vantagem da aceleração da GPU.

As GPUs oferecem suporte a extensões de API para a linguagem de programação C , como OpenCL e OpenMP . Além disso, cada fornecedor de GPU introduziu sua própria API que funciona apenas com suas placas, AMD APP SDK e CUDA da AMD e Nvidia, respectivamente. Essas tecnologias permitem que funções especificadas, chamadas de núcleos de computação de um programa C normal, sejam executadas nos processadores de fluxo da GPU. Isso possibilita que os programas C aproveitem a capacidade da GPU de operar em grandes buffers em paralelo, enquanto ainda usam a CPU quando apropriado. CUDA também é a primeira API a permitir que aplicativos baseados em CPU acessem diretamente os recursos de uma GPU para computação de propósito mais geral, sem as limitações de usar uma API gráfica.

Desde 2005 tem havido interesse em usar o desempenho oferecido pelas GPUs para computação evolutiva em geral, e para acelerar a avaliação de aptidão em programação genética em particular. A maioria das abordagens compila programas lineares ou em árvore no PC host e transfere o executável para a GPU a ser executado. Normalmente, a vantagem de desempenho só é obtida executando o único programa ativo simultaneamente em muitos problemas de exemplo em paralelo, usando a arquitetura SIMD da GPU . No entanto, uma aceleração substancial também pode ser obtida ao não compilar os programas e, em vez disso, transferi-los para a GPU, para serem interpretados lá. A aceleração pode então ser obtida interpretando vários programas simultaneamente, executando simultaneamente vários problemas de exemplo ou combinações de ambos. Uma GPU moderna pode interpretar facilmente centenas de milhares de programas muito pequenos simultaneamente.

Algumas GPUs de estação de trabalho modernas, como as placas de estação de trabalho Nvidia Quadro usando as arquiteturas Volta e Turing, apresentam núcleos de processamento dedicados para aplicativos de aprendizado profundo baseados em tensores. Na série atual de GPUs da Nvidia, esses núcleos são chamados de Tensor Cores. Essas GPUs geralmente apresentam aumentos significativos de desempenho de FLOPS, utilizando multiplicação e divisão de matriz 4x4, resultando em desempenho de hardware de até 128 TFLOPS em alguns aplicativos. Esses núcleos tensores também devem aparecer em placas de consumidor executando a arquitetura Turing e, possivelmente, na série Navi de placas de consumidor da AMD.

GPU externa (eGPU)

Uma GPU externa é um processador gráfico localizado fora da caixa do computador, semelhante a um grande disco rígido externo. Processadores gráficos externos às vezes são usados ​​com laptops. Os laptops podem ter uma quantidade substancial de RAM e uma unidade de processamento central (CPU) suficientemente poderosa, mas muitas vezes não têm um processador gráfico poderoso e, em vez disso, têm um chip gráfico integrado menos poderoso, mas mais eficiente em termos de energia. Os chips gráficos integrados geralmente não são poderosos o suficiente para jogar videogames ou para outras tarefas graficamente intensas, como edição de vídeo ou animação / renderização 3D.

Portanto, é desejável ser capaz de anexar uma GPU a algum barramento externo de um notebook. O PCI Express é o único barramento usado para essa finalidade. A porta pode ser, por exemplo, uma porta ExpressCard ou mPCIe (PCIe × 1, até 5 ou 2,5 Gbit / s respectivamente) ou uma porta Thunderbolt 1, 2 ou 3 (PCIe × 4, até 10, 20 ou 40 Gbit / s respectivamente). Essas portas estão disponíveis apenas em alguns sistemas de notebook. Os gabinetes eGPU incluem sua própria fonte de alimentação (PSU), porque as GPUs poderosas podem consumir facilmente centenas de watts.

O suporte oficial do fornecedor para GPUs externas ganhou força recentemente. Um marco notável foi a decisão da Apple de suportar oficialmente GPUs externas com MacOS High Sierra 10.13.4. Existem também vários fornecedores importantes de hardware (HP, Alienware, Razer) lançando gabinetes Thunderbolt 3 eGPU. Este suporte continuou a alimentar implementações de eGPU por entusiastas.

Vendas

Em 2013, 438,3 milhões de GPUs foram enviadas globalmente e a previsão para 2014 era de 414,2 milhões.

Veja também

Hardware

APIs

Formulários

Referências

links externos