Baixe o app para aproveitar ainda mais
Prévia do material em texto
Uma visão sobre CPU e GPU, as Unidades de Processamento Mais Famosas da Atualidade Gustavo Silva Guimarães Campus Formiga – Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais (IFMG) CEP: 35.577-010– Formiga – MG – Brasil Gustavosilvadky02@gmail.com Abstract. This article aims to present a view on the correlation between CPU (Central processing unit) and GPU (Graphics Processing Unit), bringing a discussion about their advantages, disadvantages and applications. This is an overview of the most famous processing units today. Resumo. Esse artigo tem como objetivo apresentar uma visão a respeito da correlação entre CPU (Central processing unit) e GPU (Graphics Processing Unit), trazendo uma discussão a respeito de vantagens, desvantagens e aplicações das mesmas. Isto é apresentando uma visão geral sobre as unidades de processamento mais famosas da atualidade. 1. Visão Geral CPU e GPU, as unidades de processamento mais famosas quando o assunto são computadores domésticos. Uma única letra resulta em um funcionamento completamente diferente para dois componentes essenciais de um computador. De um lado a CPU que é conhecida por ser cérebro do computador e do outro a GPU que é a responsável por basicamente todo o processamento gráfico. 1.1. Visão Geral GPU GPU (Graphics Processing Unit, ou Unidade de Processamento Gráfico), conhecido também como VPU ou unidade de processamento visual, é o nome dado a um tipo de microprocessador especializado em processar gráficos em computadores pessoais, estações de trabalho ou videogames. GPUs modernas manipulam gráficos computadorizados com eficiência e sua estrutura de processamento paralelo os torna mais capazes neste tipo de trabalho que CPUs normais. Uma GPU normalmente é utilizada em placas de vídeo (este é chamado de Vídeo Offboard ou Placa de Vídeo Dedicada), nas versões simplificadas são integradas diretamente nas placas-mãe o que é chamado de Acelerador Gráfico Integrado ou Placa de Vídeo Onboard. Diferente de hoje, onde a GPU é um dos componentes mais importantes de um computador. Inicialmente, o propósito de uma placa de vídeo era pegar um fluxo de dados binários do processador central e renderizar as imagens para exibição. Entretanto, as unidades de processamento gráfico modernas estão envolvidas nos cálculos mais complexos, como pesquisa de big data, aprendizado de máquina e IA. Graças a um longo trabalho de várias décadas, onde pesquisadores e fabricantes conseguiram fazer a GPU evoluir de um único núcleo com hardware de função fica usado apenas para gráficos, para um conjunto de núcleos paralelos programáveis A evolução do processador gráfico moderno começa com a introdução das primeiras placas 3D em 1995, seguida pela adoção generalizada dos sistemas operacionais de 32 bits e do computador pessoal acessível. A indústria gráfica que existia antes disso consistia amplamente em uma arquitetura 2D mais trivial com placas gráficas mais conhecidas pelas convenções de nomenclatura alfanumérica de seus chips e seus enormes preços. Já em 1999 a Nvidia popularizou o termo GPU, com sua nova placa gráfica. A Nvidia definiu o termo unidade de processamento gráfico como “um processador de chip único com transformação integrada, iluminação, configuração / recorte de triângulo e motores de renderização que é capaz de processar um mínimo de 10 milhões de polígonos por segundo”. Imagem 1. GPU Nvidia Geforce 6600 GT 1.2. Visão Geral CPU Uma unidade de processamento central (CPU), também chamada de processador central, processador principal ou apenas processador, é o circuito eletrônico dentro de um computador que executa as instruções que compõem um programa de computador. A CPU realiza operações aritméticas, lógicas, de controle e de entrada / saída (E / S) básicas especificada pelas instruções do programa. O CPU é conhecido hoje como o cérebro do computador, pois é ele que orquestra a maior parte das operações do computador. A forma, o design e as implementações das CPUs mudaram ao longo de sua história, mas sua operação fundamental permanece quase inalterada. Os principais componentes de uma CPU incluem a unidade lógica aritmética (ALU), que realiza operações aritméticas e lógicas, os registradores que fornecem operandos para alu e armazenam os resultados das operações da mesma, é uma unida de controle que faz o gerenciamento de busca à memória e a execução de instruções, dirigindo as operações coordenadas da ALU, registros e outros componentes. Os primeiros computadores, como o ENIAC, que foi projetado para o calculo balístico, tinham de ser fisicamente reconectados para realizar diferentes tarefas, o que fazia com que essas máquinas fossem chamadas de "computadores de programa fixo". Uma vez que o termo "CPU" é geralmente definido como um dispositivo para execução de software (programa de computador). Logo, com a necessidade de execução de várias tarefas os primeiros dispositivos que poderiam ser corretamente chamados de CPUs vieram com o advento do stored-program computer, que são computadores que armazena instruções do programa em uma memória. Imagem 2. Processador i7 900 2. Funcionamento e Utilização A GPU surgiu para "aliviar" o processador principal do computador (CPU) da pesada tarefa de gerar imagens. Por isso, é capaz de lidar com um grande volume de cálculos matemáticos e geométricos, condição trivial para o processamento de imagens 3D (utilizadas em jogos, exames médicos computadorizados, entre outros). Para que as imagens possam ser geradas, a GPU trabalha executando uma sequência de etapas, que envolvem elaboração de elementos geométricos, aplicação de cores, inserção de efeitos e assim por diante. Essa sequência, de maneira bastante resumida, consiste no recebimento pela GPU de um conjunto de vértices (o ponto de encontro de dois lados de um ângulo); no processamento dessas informações para que elas obtenham contexto geométrico; na aplicação de efeitos, cores e afins; e na transformação disso tudo em elementos formados por pixels (um pixel é um ponto que representa a menor parte de uma imagem), processo conhecido com rasterização. O passo seguinte é o envio dessas informações à memória de vídeo (frame buffer) para que então o conteúdo final possa ser exibido na tela. Podemos assumir que GPUs são aceleradores que complementam uma CPU, de modo que não precisam ser capazes de realizar todas as tarefas de uma CPU. Esse papel lhes permitiu dedicar todos os seus recursos aos gráficos. Não importa se as GPUs realizam algumas tarefas mal ou que não realizem, visto que, em um sistema com uma CPU e uma GPU, a CPU pode realizá-las se for preciso. Assim, a combinação CPU- GPU é um exemplo de multiprocessamento heterogêneo, em que nem todos os processadores são idênticos . Atualmente o principal uso da GPU é o processamento gráfico. Este que envolve o desenho de vértices de primitivas de geometria 3D, como linhas e triângulos, e sombreamento ou renderização de fragmentos de pixels de primitivas geométricas. Os vídeo games, por exemplo, desenham 20 a 30 vezes mais pixels que vértices. Cada vértice pode ser desenhado independentemente, assim como na renderização de cada fragmento de pixel. Para renderizar milhões de pixels por frame rapidamente, a GPU evoluiu para executar muitos threads de programas sombreadores de vértice e pixel em paralelo. A GPU trabalha com tipos de dados gráficos que são vértices, consistindo em coordenadas (x, y, z, w), e pixels, consistindo em componentes de cor (vermelho, verde, azul, alfa). Destarte, pode se afirmar também que as GPUs representam cada componente do vértice como um número de ponto flutuante de 32 bits. Cada um dos quatro componentes de pixel foi originalmente um inteiro não sinalizado de 8 bits, mas as GPUs recentes agora representam cada componente comoum número de ponto flutuante de precisão simples, entre 0,0 e 1,0. É válido observar também que Talvez a maior diferença entre CPUS e GPUs são que as GPUS não contam com caches multinível para contornar a longa latência para a memória, como nas CPUs. Em vez disso, elas contam em ter threads suficientes para ocultar a latência para a memória. Ou seja, entre o momento de uma solicitação de memória e o momento em que os dados chegam, a GPU executa centenas ou milhares de threads que são independentes dessa solicitação. A memória é outro aspecto onde podemos analisar diferenças entre a GPU e a CPU. Isto é, uma vez que a memória da GPU é voltada para a largura de banda, em detrimento de latência. Inclusive, nota-se a existência de chips de DRAM separados para a GPU, esses que possuem a largura de banda mais alta do que os chips de DRAM para CPUS Além disso, as memórias da GPU tradicionalmente têm tido memória principal menor que os microprocessadores convencionais. Em 2008, as GPUs normalmente tinham 1GB ou menos, enquanto as CPUs tinham de 2 a 32GB. Dada a confiança em muitos threads para oferecer boa largura de banda de memória, as GPUs podem acomodar muitos processadores paralelos, além de muitos threads. Logo, cada processador de GPU é altamente multithreaded. Outro aspecto importante de salientar a respeito das GPUs é a respeito das instruções de programação nas GPUs, que são interfaces de programação de aplicação (APIs) de alto nível, como OpenGL e Microsoft's DirectX, junto com linguagens de sombreamento gráfico de alto nível, como C for Graphics (Cg) da NVIDIA e High Level Shader Language (HLSL) da Microsoft. Os compiladores de linguagem são voltados para linguagens intermediárias padrão da indústria, em vez de instruções de máquina. Os drivers da GPU geram instruções de máquina otimizadas, específicas para GPU. Embora essas APIs e linguagens evoluam rapidamente para abranger novos recursos de GPU habilitados pela lei de Moore, a liberdade da compatibilidade com a instrução binária permite que os projetistas de GPU explorem novas tecnologias sem temer que sejam seladas para sempre com a implementação de experimentos falhos. Esse ambiente leva à inovação mais rápida em GPUs do que em CPUs. Entretanto, embora as GPUs fossem projetadas para um conjunto mais estreito de aplicações, alguns programadores questionaram se poderiam especificar suas aplicações em uma forma que lhes permitissem aproveitar o alto desempenho em potencial das GPUs. Para distinguir esse estilo de uso das GPUs, alguns a chamam de General Purpose GPUs, ou GPGPUs. Depois de cansar de tentar especificar seus problemas usando as APIs gráficas e linguagens de sombreamento de gráficos, eles desenvolveram linguagens de programação inspiradas em C para permitir que escrevam programas diretamente às GPUs. Um exemplo é Brook, uma linguagem de streaming para GPUs. O próximo passo na facilidade de programação do hardware e da linguagem de programação é a CUDA (Compute Unified Device Architecture) da NVIDIA, que permite que o programador escreva programas em C para execução nas GPUs, embora com algumas restrições. O uso de GPUs para a computação paralela está aumentando com sua crescente facilidade de programação. 3. Tecnologia de Desenvolvimento O projeto de uma unidade de processamento geral não começa com qualquer pensamento em transistores ou trilhas de cobre, mas com algo chamado de especificação de requisitos do produto, ou PRS - uma definição priorizada de todos os recursos que o novo chip deve ter. o PRS atua como uma lista de verificação em todo o processo de design. Logo após, engenheiro começam a trabalhar na planta baixa. Esta é uma representação física que levará em conta o tamanho esperado de cada bloco e onde ele deve ser posicionado em relação aos outros blocos. Aqui, é levado em consideração quantos sinais passam entre os blocos com o objetivo de reduzir o comprimento das vias. Enquanto isso, outros engenheiros trabalham no projeto de nível de componente de cada um dos blocos. Em vez de um diagrama de circuito, o design é criado em uma linguagem de descrição de hardware como VDHL. Muito parecida com uma linguagem de programação, essa forma de gerar circuitos oferece muitos dos benefícios oferecidos ao engenheiro de software. Mais importante ainda, os circuitos podem ser definidos hierarquicamente, então, por exemplo, tendo definido uma porta OU lógica de transistores individuais, isso pode ser usado na definição de um bloco mais complicado como um somador de um bit. Quando o código VDHL é concluído, ele passa por um processo denominado síntese, que equivale a compilar uma linguagem de programação. a saída da síntese é chamada de netlist e define as conexões entre cada um dos componentes, A netlist poderia ir diretamente para o processo de fabricação de máscaras, mas isso causaria problemas porque designs tão complicados quanto uma GPU nunca são 100 por cento corretos na primeira tentativa. Em vez disso, o design é verificado e emulado. Quando todos os blocos individuais estiverem operacionais, a equipe passa para a emulação. Isso significa exercitar a GPU como um todo, mas dada a quantidade de tempo de processamento necessária para simular um chip, esses testes podem inicialmente ser nada mais complicados do que desenhar um único pixel. Com a simulação pronta, os projetitas sabem que as conexões do circuito estão corretas , com exceção da planta baixa, nenhum pensamento foi dado a onde os componentes vão no chip. Isso é feito por meio de um pacote CAD especial, orientado pela planta baixa. Este processo amplamente automatizado posiciona cada componente e roteia os trilhos de cobre que irão conectá-los todos juntos. O ponto culminante desse processo é um marco importante conhecido como 'fita adesiva' e marca a transição do design à fabricação. Antes que qualquer chip possa ser fabricado, a fundição precisa criar um conjunto de máscaras fotográficas que serão usadas na fotolitografia. A fotolitografia é a chave para muitas etapas subsequentes envolvidas na criação da GPU, ela será usada continuamente à medida que o circuito é construído, camada por camada no wafer de silício. Envolve a aplicação de uma máscara padronizada à superfície do wafer de modo que os processos químicos subsequentes afetem apenas as áreas com lacunas na máscara. Primeiro, uma camada de material fotossensível chamada fotorresiste é aplicada em cima de qualquer camada que já tenha sido criada. Isso é feito colocando a solução no wafer e girando-o para que a solução se espalhe em uma camada fina e uniforme. Quando a solução seca, o wafer é exposto à luz ultravioleta (UV) por meio de uma máscara. Esse processo altera a composição química do fotorresiste por onde a máscara permite a passagem da luz ultravioleta. O wafer é imerso em um tanque de revelador que dissolve as porções do fotorresiste que foram expostas à luz ultravioleta. Com uma camada parcial de fotoresiste agora colocada no wafer, é possível realizar um processo químico que afetará apenas o wafer nas áreas em que o resist foi removido. Com o processo químico agora concluído, o restante do fotorresiste pode ser removido do wafer usando um solvente. O wafer de silício conterá centenas de chips individuais, ou matrizes para dar a eles seus nomes corretos, então o estágio de exposição é realizado várias vezes - uma para cada matriz - com o wafer sendo movido em relação à máscara e à óptica do sistema entre cada exposição. Imagem 3. Processo de fotolitografia Vimos na etapa anterior que a camada de fotorresiste forma uma barreira adequada para muitos produtos químicos, permitindo assim que um processo químico seja realizado apenas em partes do wafer, conforme definido por uma máscara. Outros processos - principalmente aqueles envolvendo gases quentes - destruiriamo fotorresiste, então um tipo diferente de resistência é necessário. Nesses casos, uma camada de óxido padronizada, também conhecida como camada de óxido sacrificial (porque é subsequentemente removida), é usada. O wafer é coberto com uma camada de dióxido de silício, que reveste completamente todas as camadas existentes. O resultado final, portanto, é uma camada parcial de dióxido de silício no padrão dos recursos necessários. O processo químico necessário é realizado - isso afetará apenas as partes do wafer onde a camada de óxido padronizada está faltando. O remanescente da camada de óxido é removido, novamente usando ácido fluorídrico. Agora chega umas das partes mais importantes na construção de uma GPU, a criação de transistores. Um MOSFET (o tipo de transistor usado em GPUs) é uma chave eletrônica. Em outras palavras, é um componente eletrônico que usa um sinal em um circuito para controlar o fluxo de corrente em outro. O wafer de silício é então bombardeado com íons de fósforo que se implantam no silício através das lacunas do fotorresiste para criar os chamados poços de material do tipo n. Esta é uma forma modificada de silício que possui eletrodos adicionais para transportar uma corrente elétrica. Em seguida, duas ilhas menores de material do tipo p são criadas dentro dos poços do tipo n - estes formam os dois eletrodos conhecidos como a fonte e o dreno dos MOSFETs. Depois disso, uma camada isolante muito fina de dióxido de silício, com apenas algumas moléculas de espessura, é depositada na superfície do silício entre a fonte e o dreno. Isso é feito por meio da deposição química de vapor (CVD), processo que ocorre em um forno cheio de gases para modificar quimicamente o silício. Finalmente, novamente usando CVD, uma camada de silício é aplicada sobre a camada de óxido para criar o terceiro e último eletrodo dos MOSFETs, que é chamado de portão. È por último devemos conectar tudo isso. Agora com um wafer que compreende várias matrizes, cada uma das quais contém bilhões de transistores, mas para convertê- los de componentes isolados em um circuito de trabalho, eles precisam ser conectados usando faixas de cobre. Primeiro, uma camada isolante de dióxido de silício é aplicada ao wafer para que as trilhas de interconexão não encurtem todos os MOSFETs juntos. Em seguida, orifícios são gravados no dióxido de silício para que as conexões possam ser feitas aos eletrodos dos MOSFETs. Em seguida, as trincheiras em forma de trilhos são gravadas no dióxido de silício antes que uma camada de cobre seja aplicada por eletrogalvanização. Isso cobre toda a superfície do dióxido de silício e preenche as trincheiras e os buracos para fazer contato com os MOSFETs. Por fim, o excesso de cobre é removido por meio de um processo denominado polimento químico-mecânico, de forma que o cobre permaneça apenas nas trincheiras e buracos. Uma única camada de interconexões de cobre não é suficiente para criar um circuito viável. Como não é possível conectar tudo em uma única camada sem fazer shorts, são utilizadas camadas adicionais, cada uma criada da mesma forma que a primeira camada de cobre. Pode se afirmar também que o processo de construção de uma CPU e GPU tem grandes semelhança desde os wafers de silício até a aplicação de cobre. Sendo notável a mudanças perceptivel apenas como os mesmos são projetados. 4. Aplicação e Fabricantes 4.1. Aplicações É fato, que no começo, GPUS Foram desenvolvidas para tirar a responsabilidade de processamento gráfico das CPUS. Mas hoje é a Indústria dos Games que movimenta o grande crescimento do poder de processamento das GPUs. Essa indústria que exige cada dia mais poder de processamento, pois com os novos jogos cada dia mais realísticos e com gráficos mais refinados, diferente dos gráficos de 20 anos atrás que eram bem quadrados e com muitas arestas visíveis. Outra grande aplicação que se tornou moda nos últimos tempos é a mineração de criptomoedas, uma analogia à mineração de ouro e pedras preciosas. Para ganhar as moedas é preciso fazer um trabalho de decifrar códigos para resolver transações matemáticas entre os usuários. A ferramenta responsável é o próprio computador, que deverá fazer isso de maneira rápida. Na prática, você baixa um minerador no computador e inicia os trabalhos em busca da resolução do problema. O usuário que conseguir realizar o trabalho em menor tempo torna-se o descobridor do chamado Blockchain (bloco transacional), plataforma de armazenagem de todas as transações de todos os usuários da história. Mas o ponto chave é o papel da GPU nesse processo. Mineração com GPU é drasticamente mais rápida e mais eficiente que a mineração com CPU. Em uma comparação rápida, enquanto uma CPU pode executar 4 instruções de 32 bits por clock uma GPU pode executar 3200 destas operações ao mesmo tempo. GPUs foram feitas para ter uma alta vazão e alto paralelismo, ambos podem ser úteis na mineração de bitcoins, pois mineradores podem computar múltiplos hashes ao mesmo tempo com nonces diferentes. Mineração com GPU tem algumas desvantagens, pois muito de sua composição tem o objetivo de tratar vídeos. Especificamente elas têm unidades de ponto flutuante que não são usadas em SHA-256, sendo então desperdiçadas na mineração. GPUs também não possuem as melhores características de resfriamento e consumo de energia. Placas gráficas de alto desempenho podem calcular algo em torno de 200 milhões de hashes por segundo (MH/s), uma ordem de magnitude melhor do que seria como o uso de CPU. Porém mesmo com essa melhoria de desempenho, ainda seriam necessários mais de 300 anos em média para encontrar um bloco. Já o processador (CPU) é uma unidade de propósito mais geral. Responsável por fazer todas as operações matemáticas, é responsável por gerenciar a memória do computador, além de processar dados de entrada e saída do computador. Não é por acaso que é chamado de cérebro do processador. 4.2. Nvidia x AMD É fato que hoje uma grande parcela do mercado de produção de GPUs e controlada pelas empresas Nvidia e AMD. A NVIDIA surgiu no mercado em 1993, sendo responsável pela produção de semicondutores utilizados em diversos equipamentos eletrônicos. O foco principal da empresa está nos chips gráficos (GPU) utilizados em computadores e vídeo games, além de processadores centrais (CPU) com arquitetura ARM que são utilizados em smartphones e tablets — como a família Tegra. Do outro lado, temos a AMD, que trabalha com processadores desde 1969, mas que só começou a atuar fortemente no mercado de chips gráficos quando comprou a ATI, em 2006. Em 2010, o nome “ATI” foi extinto e as placas gráficas e GPUs fabricadas pela companhia passaram a levar o nome da própria AMD. Foi a partir daí que a guerra entre as duas alcançou patamares antes não imaginados. Em resumo, é possível dizer que AMD e NVIDIA dominam o mercado dos jogos. A Intel oferece chips integrados às CPUs para quem não quer gastar US$ 200 ou mais para conseguir utilizar seus computadores — lembrando, é claro, que a qualidade de imagens mostradas não é tão alta, mas permite a reprodução de vídeos e jogos mais leves, com menos detalhes. Longe dos computadores ainda existem diversas outras fabricantes que criam processadores gráficos para smartphones e tablets. Mas é difícil — repetindo — que encontremos alguma rival ameaçadora para as duas fabricantes em um futuro próximo. Ou seja: se pensarmos em chips gráficos de alto desempenho para computadores, realmente “só existe as duas”. Esse domínio de mercado pode ser comparado na parte dos processadores entre Intel e AMD, visto que as duas dominam o mercado de processadores no nicho de computadores domésticos e gamers. Imagem 4. GPUs AMD e Nvidia, respectivamente. 5. Barramentos Barramento são um conjunto de linhas de comunicação que permitem a interligaçãoentre dispositivos, como a CPU, a memória e outros periféricos. São as linhas de transmissão que transmitem as informações entre o processador, memória e todos os demais periféricos do computador. Sabendo disso, vale analisar os principais barramentos suportados por GPUS. O primeiro barramento é o barramento ISA é um padrão não mais utilizado, sendo encontrado apenas em computadores antigos. A sua primeira versão trabalhava com transferência de 8 bits por vez e clock de 8,33 MHz, com o tempo passou a trabalhar com 16 bits. Com o avanço da tecnologia, o padrão ISA foi aos poucos perdendo espaço. A versão de 16 bits era capaz de proporcionar transferência de dados na casa dos 8 MB/s (megabytes por segundo), mas dificilmente esse valor era alcançado, ficando em torno dos 5 MB/s. Pode se analisar também o Barramento AGP (Accelerated Graphics Port), que para lidar com o volume crescente de dados gerados pelos chips gráficos (GPU), a Intel anunciou em meados de 1996 o padrão AGP, cujo slot funcionava exclusivamente com placas de vídeo. A primeira versão do AGP, chamada de AGP 1.0, trabalhava a 32 bits e tinha clock de 66 MHz, o que equivale a uma taxa de transferência de dados de até 266 MB/s, mas, na verdade, conseguia chegar a 532 MB/s. Logo, algum tempo depois surgiram a segunda e terceira versão com taxa de transferência de até 1.064 MB/s e 2.133 MB/s respectivamente. Além da alta taxa de transferência de dados, o padrão AGP oferecia outras vantagens. Uma delas era a capacidade de operar em sua máxima capacidade, pois não havia outro dispositivo no barramento que podia, de algum modo, interferir na comunicação entre a placa de vídeo e o processador (lembre-se: o AGP era compatível apenas com placas de vídeo). A despeito de suas vantagens, o padrão AGP acabou perdendo espaço e foi substituído pelo PCI Express. E por ultimo, mas não menos importante a Tecnologia PCI Express. O padrão PCI Express (ou PCIe ou, ainda, PCI-EX) foi concebido pela Intel em 2002 / 2003 e se destaca por substituir, ao mesmo tempo, os barramentos PCI e AGP. Ao contrário das demais, o PCIe é usado até hoje. Isso é possível porque o PCI Express está disponível em vários segmentos: x1, x4, x8 e x16. Cada 'x' indica uma via de transmissão, portanto, quanto maior esse número, maior é a taxa de transferência de dados. Essa divisão também reflete no tamanho dos slots PCI Express. Vale ressalta ainda o poder desse barramento sendo que o PCIe x1 trabalha com até 250 MB/s, enquanto o PCI Express x16 pode atingir 4.000 MB/s. Mas isso na versão 1.0 da tecnologia. O PCI Express recebe atualizações periodicamente e, em cada nova versão, dobra a largura de banda em relação à geração anterior. Imagem 5. Barramentos de uma placa mãe. 6. Tecnologias 6.1. DirectX e OpenGL Fazer com que aplicações gráficas possam aproveitar todo o poder das GPUs não é tarefa fácil. Na época dos primeiros PCs, por exemplo, era até viável programar funcionalidades para acessar diretamente os recursos dos chips gráficos, mas com o passar do tempo e com a evolução da computação em 3D essa tarefa se tornou cada vez mais trabalhosa e complexa. Em vista disso, surgiram as APIs (Application Programming Interface) direcionadas às aplicações gráficas, que são, basicamente, conjuntos de instruções "pré-prontas" que permitem a programadores a criação de conteúdo gráfico de maneira mais rápida e fácil. Hoje, o mercado se baseia, essencialmente, em duas APIs: DirectX e OpenGL. O DirectX, que na verdade é um conjunto de APIs para aplicações de áudio e vídeo, pertence à Microsoft e, portanto, é amplamente utilizado nos sistemas operacionais Windows. Como essa plataforma é bastante popular em todo mundo, conta com inúmeras aplicações que utilizam DirectX, especialmente jogos. Logo, nada mais natural que os principais fabricantes de GPUs lancem chips gráficos compatíveis com essa tecnologia. O OpenGL, por sua vez, tem finalidades semelhantes ao DirectX, mas com um grande diferencial: trata-se de uma tecnologia aberta e, portanto, disponível gratuitamente para várias plataformas. Com isso, fica até mais fácil criar versões de uma mesma aplicação para sistemas operacionais distintos. A vantagem de ser aberto é que o OpenGL permite o desenvolvimento de uma grande quantidade de aplicações e não limita esse trabalho a uma única plataforma. 6.2. SLI e CrossFire Caso o objetivo seja obter ainda mais processamento do que uma placa de vídeo pode fornecer, talvez a solução esteja em fazer um SLI ou um CrossFire, tecnologias de Nvidia e AMD, respectivamente. Ambas as tecnologias utilizam pontes para conectar duas ou mais placas, unificando a saída de vídeo. Para o sistema, todas as placas de vídeo trabalharão como se fossem uma, extremamente rápida. Existem requisitos mínimos para fazer uso de ambas as tecnologias, como fonte de alimentação e número suficiente de slots PCI Express. 6.3. Ray Tracing Ray tracing (traçado de raios) é um algoritmo de computação gráfica usado para síntese (renderização) de imagens tridimensionais. O método utilizado pelo algoritmo chamado Ray Tracing, baseia-se na simulação do trajeto que os raios de luz percorreriam no mundo real, mas, neste caso, de trás para frente. Ou seja, no mundo real, os raios de luz são emitidos a partir de uma fonte de luz, percorrendo o espaço até encontrar um objeto. Após os raios de luz atingirem o objeto, estes são refratados ou refletidos, de acordo com as características do objeto, nomeadamente, cor, textura e transparência, alterando assim a sua trajetória, e fazendo com que apenas uma infinitésima minoria dos raios que partiram da fonte de luz atinjam, por fim, os olhos do observador. 7. Conclusão Podemos concluir então que uma GPU é uma unidade de processamento que foi criada e aperfeiçoada para lidar com o processamento gráfico. Sendo cada dia mais necessária em um mundo onde as resoluções estão cada dia maiores e a densidade de pixels na tela aumentam cada dia mais além de uma indústria de jogos que ano após ano requisita mais processamento gráfico. Logo, essa unidade se mantém em continuo desenvolvimento, graças a um mercado tão aquecido. Seguindo uma linha diferente do processador que é uma unidade de gerenciamento e processamento em geral, deixando a responsabilidade do aspecto gráfico para as GPUs. Referências Stallings, William. (2017). Arquitetura e Organização de Computadores. Pearson Universidades, 10th edition. TANENBAUM, A. S. (2013). Organização Estruturada de Computadores. Pearson Universidades, 5th edition. PATTERSON, David A.; HENNESSY, J. L. (2014). Organização e projeto de Computadores. In A interface Hardware/Software. CAMPUS, 4th edition. Lilly, Paul; A Brief History of CPUs: 31 Awesome Years of x86 Disponível em: <https://www.pcgamer.com/a-brief-history-of-cpus-31-awesome-years-of-x86/> Acesso em: 18 de agosto de 2020. Olena, Altumea; A Brief History of GPU Disponível em: <https://medium.com/altumea/a-brief-history-of-gpu-47d98d6a0f8a/> Acesso em: 18 de agosto de 2020. HISTORY OF GPUS Disponível em: < https://xoticpc.com/blogs/news/history-of- gpus/> Acesso em: 18 de agosto de 2020. Singer, Graham; The History of the Modern Graphics Processor Disponível em: <https://www.techspot.com/article/650-history-of-the-gpu//> Acesso em: 18 de agosto de 2020. Graphics Processing Unit Disponível em: <https://en. wikipedia.org/wiki/Graphics_processing_unit//> Acesso em: 18 de agosto de 2020. Hurska, Joel; How Do Graphics Cards Work? Disponível em: <https://www.extremetech.com/gaming/269335-how-graphics-cards-work//> Acesso em: 18 de agosto de 2020. Central processing unit Disponível em: < https://en. wikipedia.org/wiki/Central_processing_unit#History//> Acesso em: 18 de agosto de 2020. Dermatini, Felipe; O que é CPU e GPU?Qual a diferença entre elas? Disponível em: < https://canaltech.com.br/hardware/o-que-e-cpu-gpu-diferencas-154939///> Acesso em: 18 de agosto de 2020. Anderson, Chris. How GPUs are made Disponível em: < https://www.techradar.com/news/computing-components/graphics-cards/how-gpus-are- made-1000923/> Acesso em: 19 de agosto de 2020. Oderço. How A IMPORTÂNCIA DAS PLACAS DE VÍDEO PARA MINERAÇÃO DE CRIPTOMOEDAS em: < http://blog.oderco.com.br/placas-de-video-para- mineracao//> Acesso em: 19 de agosto de 2020. Mineração de Bitcoin em: < https://pt.wikipedia.org/wiki/Minera%C3%A7%C3%A3o_de_Bitcoin/> Acesso em: 19 de agosto de 2020. Hamann, Renan. AMD vs NVIDIA: entenda a guerra que começou há muito tempo: < https://www.tecmundo.com.br/amd/58584-amd-vs-nvidia-entenda-guerra-comecou-ha- tempo.htm/> Acesso em: 19 de agosto de 2020. Barramento em: < https://pt.wikipedia.org/wiki/Barramento#:~:text=Barramento%20%C3%A9%20um%20 conjunto%20de,os%20demais%20perif%C3%A9ricos%20do%20computador./> Acesso em: 19 de agosto de 2020. Alecrim, Emerson. Barramentos: ISA, AGP, PCI, PCI-X, AMR e outros < https://www.infowester.com/barramentos.php/> Acesso em: 19 de agosto de 2020. Alecrim, Emerson. Placa de vídeo e GPU: principais características< https:// https://www.infowester.com/placavideo.php/> Acesso em: 19 de agosto de 2020. Cipoli, Pedro. O que é CrossFireX e SLI?< https://canaltech.com.br/hardware/O-que-e- CrossFireX-e-SLI//> Acesso em: 19 de agosto de 2020. 1. Visão Geral 1.1. Visão Geral GPU 1.2. Visão Geral CPU 2. Funcionamento e Utilização 3. Tecnologia de Desenvolvimento 4. Aplicação e Fabricantes 4.1. Aplicações É fato, que no começo, GPUS Foram desenvolvidas para tirar a responsabilidade de processamento gráfico das CPUS. Mas hoje é a Indústria dos Games que movimenta o grande crescimento do poder de processamento das GPUs. Essa indústria que exige cada dia ... 4.2. Nvidia x AMD 5. Barramentos 6. Tecnologias 6.1. DirectX e OpenGL 6.2. SLI e CrossFire 6.3. Ray Tracing 7. Conclusão Referências
Compartilhar