Vous êtes sur la page 1sur 10

APU - Accelerated Processing Unit

Roberto Ferreira dos Santos Junior robertoferreirajrr@gmail.com 18 de Junho de 2012


Resumo Esse artigo faz a an alise de APUs (Accelerated Processing Units), focando sua deni ca o, motiva ca o, estrutura e aplica ca o. As arquiteturas de processadores AMD Fusion, e Intel Sandy Bridge s ao estudadas com mais anco. As APUs s ao uma nova categoria de chips que vem surgindo, re unem em um u nico a CPU e a GPU.

Introdu c ao

A alta demanda por velocidade em sistemas computacionais esta crescendo dia p os dia, e com isso novas tecnologias vem surgindo para tentar suprir essa demanda. Com isso uma nova arquitetura de chips denominada APU (Accelerated Processing Unit) vem ganhando destaque pela sua arquitetura que disponibiliza poder de processamento e baixo consumo de energia, o que e important ssimo em tempos em que dispositivos embarcados est ao cada vez mais tomando espa co no mercado.

Entendendo uma GPU

A demanda de multim dia e da ind ustria de jogos para processamento de gr aco em tempo real, dirigiu esfor cos de algumas companhias de hardware a desenvolverem processadores gr acos paralelos [1], anal de contas renderizar gr acos e um problema que exige um tremendo paralelismo. Com isso novas tecnologias vem surgindo, visando cada vez mais o desempenho, ou seja, a velocidade e a quantidade de informa c oes que s ao processadas em um intervalo de tempo, e eci encia, ou o quanto essas informa c oes podem ser processadas utilizando-se poucos recursos, caracter stica essa que e de suma import ancia em dias que dis nesse ponto que percebemos que a ind positivos embarcados. E ustria passa a mudar sua preocupa c ao de instru c ao por segundopara instru c ao por watt, e certo que processar informa c oes ecientemente signica economia de energia. Uma GPU (Graphic Processing Unit) ou Unidade de processamento gr aco e a unidade respons avel por principalmente processamento de v deo, deni c ao essa que tem sido cada vez mais desmisticada devido a ampla disponibilidade de programa c ao e de poder de processamento paralelo que as novas arquiteturas de GPUs tem oferecido, fazendo com que as GPUs comecem a tomar espa co na computa c ao de prop osito geral. As GPUs para prop osito geral s ao popularmente conhecidas como GPGPU (General Purpose Graphic Prossessing Unit) [1]. Um 1

exemplos bastante conhecido de programa c ao para prop osito geral em GPU e o OpenCL (Open computing language), ela utiliza um subconjunto de C99 (Linguagem C) para escrever kernels. Hoje as GPUs ultrapassam as CPUs em processamento aritm etico e banda de mem oria, fazendo assim delas o processador ideal para acelerar uma variedade de aplica c oes paralelas.

2.1

O funcionamento

Existem uma innidade de GPUs e arquiteturas dispon veis no mercado, para entender melhor como funciona uma GPU esse trabalho apresentar a a arquitetura Fermi de GPUs da NVIDIA. As primeiras GPUs Fermi foram introduzidas no mercado em 2009.

Figura 1: Arquitetura Fermi com 512 processadores CUDA organizados em 16 multiprocessadores streaming compartilhando um mesmo cache de segundo n vel, seis interfaces 64-bit DRAM, e uma interface para conectar a CPU, sistema de mem oria e dispositivos de I/O. Cada multiprocessador streaming tem 32 n ucleos CUDA. (Reprodu c ao[2]) A arquitetura Fermi de GPUs utiliza processadores Cuda (Computer Unied Device Architecture). CUDA e o hardware e arquitetura de software que ativa as GPUs para executar um programa escrito para GPU, programas esses que s ao chamados de kernels ou n ucleos. Uma vez compilados, os kernels consistem em muitas threads que executam o mesmo programa em paralelo. No processamento de imagem, por exemplo, uma thread pode operar um pixel, enquanto todas threads juntas o kernel podem operar uma imagem inteira. O compilador organiza essas threads em blocos de threads, todas as threads de um 2

bloco de threads rodam em um u nico SM (Streaming Multiprocessor), o que permite que as threads compartilhem mem oria [2].

Figura 2: Fermi Streaming Multiprocessor(SM). (Reprodu c ao[2]) O SM quebra os blocos de threads em grupos de 32 threads paralelas chamados warps, sendo assim sempre existir ao warps executando dados em endere cos pr oximos, aumentando a performance. Duas warps de diferentes blocos de threads, at e mesmo de diferentes kernels, podem ser executadas concorrentemente, aumentando o aproveitamento do hardware e consequentemente a eci encia. A GPU instancia um kernel em um grid de blocos de threads paralelas. Cada segmento com um bloco de segmentos executa uma instancia do kernel, l e, escreve, e sincroniza a mem oria global L2 entre as chamadas de kernels dependentes. A primeira GPU baseada em Fermi, implementa 3 bilh oes de transistores, com 512 n ucleos CUDA. Um n ucleo CUDA executa um ponto utuante ou uma instru c ao de inteiro por clock para uma thread. Os 512 n ucleos CUDA

s ao organizados em 16 SMs com 32 n ucleos cada. A GPU tem 6 parti c oes de mem oria 64-bit, devido a interface de mem oria 384-bit, suportando at e um total de 6gb de mem oria GDDR5 DRAM. a interface hostconecta a GPU na CPU via PCI-Express.

Um comparativo entre CPU e GPU

De acordo com teste realizado por Gang Chen no artigo High Performance Computing Via A Gpu [3], utilizando uma GPU AMD reStream 9250 de 1GB GDDR3, e uma CPU AMD PhenomTM 9950 Quad-Core com 3.25Ghz. A GPU e mais r apida que a CPU, quando a quantidade de dados e maior. O speedup e baixo quando o n umero de informa c oes e menor, apesar do n umero de informa c oes ser menor a GPU precisa fazer mais trocas de informa c oes do que a CPU, incluindo o tempo em que a informa c ao demora para percorrer o barramento PCIe. O teste faz uma multiplica c ao de duas matrizes NxN (A e B) que resulta em uma matriz NxN (C). O speedup e denido por: Speedup = CP U T ime GP U T ime

Tabela 1: Performance em diferentes tamanhos de matriz (Un. de tempo = segundos)[3]

4
4.1

APU - Accelerated Processing Unit


A Motiva c ao

Com um ganho assistido no processamento a GPU e uma boa op c ao quando o assunto e grande quantidade de instru c ao. O gargalo principal na maioria das 4

vezes esta no custo de transferir os dados entre a GPU e a CPU, transfer encia essa que geralmente e feita atrav es de um barramento PCIe. Esse gargalo eo grande causador de perda de desempenho em sistemas computacionais com essa distribui c ao de hardware.

Figura 3: Transfer encia CPU x GPU feita por um barramento qualquer. (Reprodu c ao[4]) Foi tentando eliminar esse gargalo que surge a APU, que nada mais e do que a jun c ao da CPU com a GPU, eliminando o custo da transfer encia e reunindo em um u nico chip processamento serial e paralelo.

4.2

Arquiteturas existentes no mercado

V arias fabricantes apostaram nessa nova arquitetura, alguns exemplos s ao a Intel com a sua tecnologia denominada SandyBridge, a AMD com sua arquitetura Fusion e a NVDIA com o projeto Denver.

4.3

AMD Fusion

Essa arquitetura combina n ucleos de processadores x86 com uma array de SIMDs (Single Instruction, Multple Data streams - Taxonomia de Flynn [5]) program aveis. A caracter stica mais marcante dessa arquitetura AMD esta realmente no fato de que a GPU integrada ainda pode ser program avel com alguma linguagem de alto n vel como OpenCL ou DirectCompute. Os primeiros chips APUs da AMD tem o nome de Llano e Ontario, direcionados para desktops e notebooks, a Figura 4 mostra o arranjamento da primeira APUs. O aspecto chave a ser notado s ao os principais elementos do sistema x86 cores, vetor de SIMD, e um decodicador de v deo unicado anexados diretos ao mesmo barramento, e sendo assim na mem oria principal[6].

Figura 4: APU AMD. (Reprodu c ao[6]) Os n ucleos x86 e o mecanismo SIMD compartilham o mesmo caminho. Essa arquitetura prev e alta taxa de transfer encia de dados entre os n ucleos x86 e o SIMD, sendo que nunca ser a necess ario algum tipo de mem oria externa para essa conversa c ao, dessa maneira garantindo ao desenvolvedor ler e escrever nos blocos na mem oria SIMD em execu c ao envolvendo outros blocos[6].

Figura 5: AMD Phenom II QuadCore, 65nm, 283mm2

Figura 6: APU Llano 228mm2. (Reprodu c ao[7]) A Figura 6 mostra um chip APU Llano, que e muito semelhante com a arquitetura Phenom II Quad-Core. Cada um dos 4 n ucleos tem sua pr opria cache L2. No entanto n ao h a cache L3, o que reduz o consumo de energia, sendo assim os caches L2 s ao maiores, 1 MB cada. Tem uma interface de conex ao para mem oria DDR3 e North Bridge e integrada. A unidade gr aca integrada compartilha barramento de mem oria com o processador o que parece ser um pouco desvantajoso em compara c ao ao Sandy Bridge da Intel onde a CPU e a GPU integrada compartilha uma cache L3. A GPU tem prioridade sobre a CPU no acesso ` a mem oria[7].

4.4

Intel Sandy Bridge

A tecnologia Sandy Bridge e uma melhoria da arquitetura Nehalem. Uma caracter stica forte da arquitetura Nehalem e o controlador de mem oria integrado que e respons avel pelo principal aumento de desempenho, visto que antes o processador precisava comunicar um controlador externo. O controlador oferece tr es canais, o que signica que ele e capaz de acessar tr es m odulos de mem oria em paralelo. O processador tamb em disp oe de QuickPath Interconect (QPI), ou caminhos separados, um para transmiss ao e outro para recep c ao. O cache e compartilhado.

Figura 7: Processador Nehalem. (Reprodu c ao[8])

Figura 8: Compartilhamento de cache L3 A GPU do Sandy Bridge compartilha dos mesmos transistores de 32 nm do restante do processador e tem igual acesso ao cache L3 compartilhado. Ela possui seu pr oprio sistema de gerenciamento de energia e opera a um clock independente do restante do processador, variando a frequ encia de opera c ao dinamicamente de acordo com o uso. O acesso ao cache L3 foi uma forma de amenizar o problema cr onico dos chipsets de v deo integrado, que e o acesso compartilhado ` a mem oria RAM. Embora a baixa lat encia do cache n ao fa ca tanta diferen ca para o chipset de v deo quanto faz para o processador (a GPU trabalha tipicamente com um volume muito grande de dados), os 6 MB das vers oes iniciais do Sandy Bridge s ao sucientes para reduzir consideravelmente o n umero de requisi c oes ` a mem oria RAM, amenizando o problema. Por padr ao, o chipset de v deo tem acesso irrestrito ao cache L3 e tende a ocupar a maior parte do cache em jogos e aplicativos 3D (que acabam sendo limitados pela GPU bem antes de pelo processador). Entretanto, e poss vel limitar o volume de cache usado pela GPU nas congura c oes do driver[9]. A GPU do Sandy Bridge possui 12 unidades de processamento, sendo que todas as 12 permanecem ativas nos processadores da s erie K e nos processadores m oveis, e 6 delas s ao desativadas nos demais modelos de processadores desktop (do i3 2100 ao i7 2600), sacricando parte do desempenho. A vers ao completa, 8

com 12 EUs (Execution Units) e chamada pela Intel de HD 3000, enquanto a vers ao castrada, com 6 EUs de HD 2000.[9]

Figura 9: Processador com tecnologia Sandy Bridge. (Reprodu c ao[10]) No Sandy Bridge todas as etapas de decodica c ao de v deo passaram a ser feitas via hardware, resultando em uma redu c ao consider avel no consumo de recursos. A Media Engine pode ser acessada tamb em por aplicativos de convers ao de v deo, oferecendo uma grande redu c ao no tempo de convers ao para aplicativos otimizados. Dependendo do clock do processador, e poss vel atingir uma taxa de 400 FPS ao converter um v deo 1080p para uma resolu c ao mais baixa, gerando um v deo para ser assistido em um smartphone, por exemplo[9].

Conclus ao

As APUS s ao, sem d uvidas, uma boa alternativa para quem procura por desempenho e eci encia. Desempenho de por causa de sua GPU integrada, o que aumenta consideravelmente o poder de processamento paralelo, e eci encia porque os recursos de hardware s ao utilizados de melhor maneira, sem contar a redu c ao no consumo devido a elimina c ao do barramento para transfer encia de dados entre a CPU e a GPU. Existem tamb em a disponibilidade de hardware program avel, o que estimula muito a cria c ao de novas aplica c oes. As APUs dividir ao eras.

Refer encias
[1] Man-Leung Wong and Tien-Tsin Wong. Parallel hybrid genetic algorithms on consumer-level graphics hardware. In Evolutionary Computation, 2006. CEC 2006. IEEE Congress on, pages 2973 2980, 0-0 2006. [2] NVIDIA Corporation. Nvidias next generation cuda compute architecture: Fermi. http://www.nvidia.com/content/PDF/fermi_white_ papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf, 2009.

[3] Gang Chen, Guobo Li, Songwen Pei, and Baifeng Wu. High performance computing via a gpu. In Information Science and Engineering (ICISE), 2009 1st International Conference on, pages 238 241, dec. 2009. [4] Tao Tang, Xinhai Xu, and Yisong Lin. A data communication scheduler for stream programs on cpu-gpu platform. In Computer and Information Technology (CIT), 2010 IEEE 10th International Conference on, pages 139 146, 29 2010-july 1 2010. [5] Michael J. Flynn. Some computer organizations and their eectiveness. Computers, IEEE Transactions on, C-21(9):948 960, sept. 1972. [6] Nathan Brookwood. Amd white paper: Amd fusiontm family of apus. http://sites.amd.com/us/Documents/48423B_fusion_ whitepaper_WEB.pdf, 2010. [7] Compare Processors. Amd llano architecture the fusion apu. http:// compare-processors.com/amd-llano-architecture-the-fusion-apu/ 2947/, 2012. [8] Carlos E. Morimoto. Entendendo o intel nehalem. http://www.hardware. com.br/artigos/intel-nehalem/, 2011. [9] Carlos E. Morimoto. Entendendo o sandy bridge. http://www.hardware. com.br/tutoriais/sandy-bridge/gpu-integrada.html, 2011. [10] Scott Wasson. Intels sandy bridge core processors. http://techreport. com/articles.x/20188, 2011.

10

Vous aimerez peut-être aussi