Pergunta

Qual você acha que será o futuro da GPU como iniciativas de CPU como CUDA?Você acha que eles se tornarão populares e serão a próxima moda adotada na indústria?A Apple está construindo uma nova estrutura para usar a GPU para realizar tarefas de CPU e tem havido muito sucesso no projeto CUDA da Nvidia nas ciências.Você sugeriria que um aluno dedicasse tempo a essa área?

Foi útil?

Solução

Primeiro de tudo, não acho que essa questão realmente pertença ao SO.

Na minha opinião a GPU é uma alternativa muito interessante sempre que você faz matemática de flutuação baseada em vetores.No entanto, isso se traduz em:Não se tornará mainstream.A maioria dos aplicativos convencionais (desktop) faz poucos cálculos de ponto flutuante.

Já ganhou força em jogos (motores físicos) e em cálculos científicos.Se você considerar qualquer um desses dois como "mainstream", então sim, a GPU se tornará mainstream.

Eu não consideraria esses dois como mainstream e, portanto, acho que a GPU se tornará a próxima moda adotada na indústria mainstream.

Se você, como estudante, tem algum interesse em cálculos científicos fortemente baseados em física, você deve absolutamente dedicar algum tempo a isso (de qualquer maneira, as GPUs são peças de hardware muito interessantes).

Outras dicas

Dedique tempo se estiver interessado em computação científica e paralela.Não pense em CUDA e em fazer uma GPU parecer uma CPU.Ele permite apenas um método mais direto de programação de GPUs do que as técnicas de programação GPGPU mais antigas.

CPUs de uso geral obtêm sua capacidade de funcionar bem em uma ampla variedade de tarefas de todo o trabalho realizado em previsão de ramificação, pipeline, superscaler, etc.Isso possibilita que eles obtenham um bom desempenho em uma ampla variedade de cargas de trabalho, ao mesmo tempo que os torna ruins em operações de ponto flutuante com uso intensivo de memória de alto rendimento.

As GPUs foram originalmente projetadas para fazer uma coisa, e fazem isso muito, muito bem.As operações gráficas são inerentemente paralelas.Você pode calcular a cor de todos os pixels da tela ao mesmo tempo, pois não há dependências de dados entre os resultados.Além disso, os algoritmos necessários não precisavam lidar com ramificações, uma vez que praticamente qualquer ramificação necessária poderia ser alcançada definindo-se um coeficiente como zero ou um.O hardware poderia, portanto, ser muito simples.Não é necessário se preocupar com a previsão de ramificação e, em vez de criar um superescalador de processador, você pode simplesmente adicionar quantas ALUs puder colocar no chip.

Com texturas programáveis ​​e shaders de vértices, as GPUs ganharam um caminho para a programabilidade geral, mas ainda são limitadas pelo hardware, que ainda é projetado para operações de ponto flutuante de alto rendimento.Alguns circuitos adicionais provavelmente serão adicionados para permitir cálculos de uso mais geral, mas apenas até certo ponto.Qualquer coisa que comprometa a capacidade de uma GPU de gerar gráficos não será incluída.Afinal, as empresas de GPU ainda estão no ramo gráfico e o mercado-alvo ainda são os jogadores e pessoas que precisam de visualização de ponta.

O mercado de GPGPU ainda é uma gota no oceano e, até certo ponto, continuará assim.Afinal, “parece bonito” é um padrão muito mais baixo do que “resultados 100% garantidos e reproduzíveis, sempre”.

Resumindo, as GPUs nunca serão viáveis ​​como CPUs.Eles são projetados simplesmente para diferentes tipos de cargas de trabalho.Espero que as GPUs ganhem recursos que as tornem úteis para resolver rapidamente uma ampla variedade de problemas, mas sempre serão gráficos unidades de processamento em primeiro lugar.

Será sempre importante combinar o problema que você tem com a ferramenta mais adequada para resolvê-lo.

No longo prazo, acho que a GPU deixará de existir, à medida que os processadores de uso geral evoluem para assumir essas funções. Larrabee da Intel é o primeiro passo.A história mostra que apostar contra o x86 é uma má ideia.

O estudo de arquiteturas massivamente paralelas e processamento vetorial ainda será útil.

As GPUs nunca substituirão as CPUs.Uma CPU executa um conjunto de instruções sequenciais e uma GPU faz um tipo muito específico de cálculo em paralelo.Essas GPUs têm grande utilidade em computação numérica e gráfica;entretanto, a maioria dos programas não pode de forma alguma utilizar esse tipo de computação.

Em breve você começará a ver novos processadores da Intel e AMD que incluem cálculos de vetor de ponto flutuante no estilo GPU, bem como cálculos de CPU padrão.

Acho que é o caminho certo a seguir.

Considerando que GPUs foram utilizadas para criar supercomputadores baratos, parece ser a evolução natural das coisas.Com tanto poder computacional e P&D já feitos para você, por que não explorar a tecnologia disponível?

Então vá em frente e faça isso.Será uma pesquisa interessante, bem como um motivo legítimo para comprar aquela placa gráfica de última geração para que você possa jogar Crysis e Assassin's Creed com todos os detalhes gráficos;)

É uma daquelas coisas para as quais você vê 1 ou 2 aplicativos, mas logo alguém surgirá com um 'aplicativo matador' que descobre como fazer algo mais útil com ele, em velocidades super rápidas.

Pixel shaders para aplicar rotinas a grandes matrizes de valores flutuantes, talvez veremos alguns aplicativos de cobertura GIS ou bem, não sei.Se você não dedicar mais tempo a isso do que eu, você terá o mesmo nível de percepção que eu - ou seja, pouco!

Tenho a sensação de que pode ser algo realmente grande, assim como a Intel e o S3, talvez só precise de um pequeno ajuste no hardware ou de alguém com uma lâmpada acima da cabeça.

Com tanto poder inexplorado, não consigo imaginar como ele ficaria sem uso por muito tempo.A questão, porém, é como a GPU será usada para isso.CUDA parece ser um bom palpite por enquanto, mas outras tecnologias estão surgindo no horizonte, o que pode torná-lo mais acessível ao desenvolvedor médio.

A Apple anunciou recentemente o OpenCL, que afirma ser muito mais que CUDA, mas bastante simples.Não tenho certeza do que fazer com isso, mas o grupo khronos (os caras que trabalham no padrão OpenGL) está trabalhando no padrão OpenCL e está tentando torná-lo altamente interoperável com o OpenGL.Isso pode levar a uma tecnologia mais adequada para o desenvolvimento normal de software.

É um assunto interessante e, aliás, estou prestes a iniciar minha tese de mestrado sobre a melhor forma de disponibilizar o poder da GPU para os desenvolvedores médios (se possível) tendo CUDA como foco principal.

Há muito tempo atrás, era realmente difícil fazer cálculos de ponto flutuante (milhares/milhões de ciclos de emulação por instrução em CPUs com desempenho terrível (para os padrões atuais) como o 80386).Pessoas que precisassem de desempenho de ponto flutuante poderiam obter uma FPU (por exemplo, a 80387.As antigas FPUs estavam fortemente integradas à operação da CPU, mas eram externas.Posteriormente foram integrados, sendo que o 80486 possui uma FPU integrada.

O antigo FPU é análogo à computação da GPU.Já podemos conseguir isso com as APUs da AMD.Uma APU é uma CPU com uma GPU integrada.

Então, acho que a resposta real à sua pergunta é: as GPUs não se tornarão CPUs; em vez disso, as CPUs terão uma GPU integrada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top