Nas duas semanas após o GPU Conference em San Jose, CA, estudei vários aspectos da programação em GPU pelo lado prático da coisa. Resolvi pesquisar mais a fundo porque não tenho dúvidas que a programação paralela proporcionada pelas GPUs é o grande agente de transformação no setor de informática desde a invenção do processador X86 […]
Nas duas semanas após o GPU Conference em San Jose, CA, estudei vários aspectos da programação em GPU pelo lado prático da coisa. Resolvi pesquisar mais a fundo porque não tenho dúvidas que a programação paralela proporcionada pelas GPUs é o grande agente de transformação no setor de informática desde a invenção do processador X86 e Windows 95, marcos históricos da computação moderna. Porém entre a teoria e a prática há um longo caminho, e era isso que estava me intrigando. Antes, vamos falar da NVIDIA e da entrevista que tive com Jen-Hsun Huang, CEO da NVIDIA na suíte presidencial do Hotel Fairmont, em San Jose.
[singlepic id=6800 w=320 h=240 float=]
Jen-Hsun Huang é um sujeito muito interessante, sem dúvida um visionário e sempre com respostas prontas e simpáticas para qualquer questionamento que seja feito. Entre os melhores anos da NVIDIA (os anos fiscais de 2006 a 2008) e o pior (2008 a 2009) há uma grave crise econômica mundial e uma mudança de postura entre seus principais parceiros que afetarou seriamente a realidade de negócios da empresa. Antes, a NVIDIA produzia com sucesso chipsets de vídeo (as famosas Geforce) e os chipsets para placas mãe Intel e AMD, capazes de oferecersoluções gráficas “onboard” de ótima qualidade a custos competitivos além de recursos exclusivos como o SLI, só existentes até então nas placas com chipsets NVIDIA. Tudo ia bem, e a NVIDIA conseguia assim ocupar uma parcela do mercado de PCs fornecendo soluções para ambas as empresas.
[singlepic id=6803 w=320 h=240 float=]
Porém a AMD comprou a ATI e fechou o cerco da NVIDIA para os seus processadores. Hoje qualquer um que compre um processador AMD acaba optando por uma placa mãe também com chipset AMD e se adotar as placas de vídeo RADEON (da AMD) pode usufruir de algumas vantagens implementadas via software, como falarei mais adiante. No lado da Intel a coisa é ainda pior, as novas plataformas Core i3, i5 e i7 usam um novo padrão de comunicação que não está licenciado para a NVIDIA, portanto restritos aos chipsets Intel. A ATI licenciou o Crossfire logo no início e hoje quase qualquer placa com dois PCI Express 16X suporta o Crossfire, mesmo da Intel. Já a NVIDIA demorou a reconhecer a sua derrota e só agora licenciou o SLI para a Intel para algumas soluções muito especificas. Não esperem ver suporte ao SLI nas placas da AMD e não sei se vocês notaram, mas são raríssimas as placas com suporte SLI disponíveis nos últimos 16 meses, conseqüentemente não dá pra usar SLI por falta de placa mãe. Se por um lado a AMD/ATI oferece uma competição “saudável” baseada em produtos competitivos e inteligentes, a Intel e NVIDIA andam as turras nos tribunais, com agressões de ambas as partes e declarações hostis.
[singlepic id=6799 w=320 h=240 float=]
Porém, Jen-Hsun Huang não é bobo e tem uma empresa bilionária para tocar. Decidiu investir em dois segmentos onde os dois grandes mal atuam e que despontam como as grandes promessas no mundo moderno da informática. Abraçou a plataforma de celulares com o Tegra, um produto sem dúvida sensacional embora esteja presente apenas no novo Zune, o MP3 Player da Microsoft, e desenvolveu o fantástico Tesla, uma plataforma de processamento paralelo de alta performance baseada em GPU, utilizando racks e gabinetes adequados para servidores e Workstations. Na área de software lançou o CUDA (plataforma ou API de processamento paralelo para seus chips) e o PhysX, sua engine de cálculos físicos adotada por vários profissionais em seus produtos gráficos, especialmente jogos.
Na entrevista, Jen-Hsun Huang declarou mais de uma vez sua insatisfação com a Intel devido à questão dos licenciamentos das novas plataformas e os problemas comerciais com o Atom (que a NVIDIA utiliza na sua plataforma ION para netbooks, mas é obrigada a comprar o kit incluindo o chipset intel) que praticamente tirou a NVIDIA do mercado de chipsets e netbooks, mas por outro lado se mostrou extremamente confiante na sua estratégia para o segmento de portáteis (Tegra) e servidores HPC (Tesla), chegando a afirmar que no curto prazo 40% do negócio da NVIDIA virá desses dois segmentos. É com esse foco que a NVIDIA está trabalhando, investindo e desenvolvendo ferramentas e serviços adequados para atuar nesses segmentos. E o GPU Conference foi uma ótima oportunidade de ver o que de fato está acontecendo no mercado, afinal tanto o Tegra quanto o Tesla já estão anunciados a quase 2 anos (se não mais), e o CUDA / PhysX já são uma realidade nas maquinas de boa parte dos consumidores de seus produtos.
[singlepic id=6801 w=320 h=240 float=]
Durante o evento relatei alguns anúncios importantes e os dois lados da programação em GPU, o positivo com o texto GPU movida a Diesel onde comento sobre seu uso nos radiotelescópios de baixo custo, e no texto The Dark Side of GPU Programming onde comento sobre a baixa adoção do CUDA e das GPUs na indústria de cinema. Pra quem não leu, vale a leitura, pra quem leu, vamos continuar mais um pouco…
Enfim, existem vários ramos e várias empresas que estão adotando processamento em GPU de forma bastante agressiva, viabilizando coisas que não existiam antes ou não eram economicamente viáveis. Notei com bastante clareza que quanto mais inovador é o projeto, mais se justifica o uso de GPUs. Por outro lado, quando há uma tecnologia similar (mesmo que de baixa performance) existente, há uma tremenda inércia dos desenvolvedores a aplicar os conceitos da programação em GPU. Mas e para nós, consumidores? O que mudou? Recentemente um analista disse em tom de ironia no seu videocast que “o CUDA já tem pelo menos uma dúzia de aplicativos”, e de fato, onde estão esses aplicativos? O que eles oferecem e quanto custam?
[singlepic id=6802 w=320 h=240 float=]
Não pense você que usufruir da sua GPU (que você já pagou quando comprou sua placa de vídeo) será de graça. Não será, embora existam exceções, e dependendo do caso custará muito caro. No lado “CUDA da coisa” posso citar dois aplicativos muito interessantes, o Badaboom e o vReveal (esse segundo falarei em outro artigo, em breve, porque vale a pena) que tratam da conversão de vídeo para múltiplos formatos e no tratamento desse vídeo (no caso do vReveal) aplicando filtros em real time como o incrível estabilizador de imagem. Ambos são pagos ($29 e $49 dólares respectivamente) e só funcionam sob CUDA. Se você é um profissional de vídeo e usa o Premiere (vendido avulso por $799 dólares) para se beneficiar do CUDA terá que comprar uma placa QUADRO (versão profissional da Geforce) que custa em média 4 vezes mais do que uma Geforce equivalente , como é o caso da GTX 260 e a Quadro FX3800 (em média $900 dolares contra $200 da Geforce) por que as funções otimizadas só estão disponíveis nos drivers dos modelos Quadro. Mas não é só isso, você precisa de plugins pra coisa toda funcionar e o mais popular é o Elemental Accelerator Plugin (da Elemental, mesma empresa que fabrica o Badaboom) que custa a bagatela de $499 dólares (há um desconto para os proprietários de placas Quadro qualificáveis, mas não consegui obter o valor a tempo para essa matéria, aparentemente o preço final oscila entre $50 a $250 dependendo do bundle com a Quadro).
Ou seja, opara os profissionais liberais ou free lancers de pequeno porte, embora seja perfeitamente aceitável para as grandes agencias e estúdios frente ao ganho de performance em escala que proporciona. E quanto a AMD/ATI ? Quais são os benefícios para os usuários das GPU Radeon?
[singlepic id=6805 w=320 h=240 float=]
Infelizmente poucos, ou quase nenhum. A maioria dos aplicativos que disponibiliza alguma aceleração gráfica o faz sob OpenGL, que é bem suportado pela maioria das placas, nada muito exclusivo da Radeon. Porém a AMD lançou ,e para concluir a decepção, não roda no Windows 7. Insisti e montei uma configuração na bancada usando um Phenon II e uma placa ATI com Windows XP, instalei o plugin e funcionou, embora não tenha me impressionado nem pela velocidade nem pela qualidade final. Removi a Radeon e instalei uma 8800GT da NVIDIA e ganhei de presente uma bela tela azul ao abrir o Premiere. Foi preciso desinstalar o plugin…
As referencias que eu encontrei de outros usuários sobre o plugin da AMD não são boas. Há problemas de qualidade no áudio e vídeo renderizado pelo plugin, além da performance não impressionar a maioria dos usuários. Em produção a maioria opta por não usar, algo natural visto que se trata de um BETA eterno sem previsão de se tornar final.
[singlepic id=6804 w=320 h=240 float=]
Nos resta torcer. Programação em GPU é algo fantástico, um grande transformador na indústria mas não creio que mudará muito as coisas que já fazemos no PC. Veremos sim inúmeras coisas novas, dispositivos baseados em processador ARM combinados com GPUs realizando coisas incríveis, sistemas de grande porte como o Tesla de poucos milhares de dólares substituindo com vantagens instalações que chegam a milhões de dólares. Mas para nós, consumidores, tudo indica que continuaremos fazendo as coisas no PC do mesmo jeito que antes, é uma inovação que virá lentamente no desktop, talvez mais lenta do que a adoção dos sistemas operacionais em 64bits (já tem mais de 5 anos que os processadores existem…). Como disse, nos resta torcer….