Pergunta

Estou C ++ programador que se desenvolvem de imagem e vídeo algoritmos, que eu deveria aprender Nvidia CUDA? ou é uma dessas tecnologias que irão desaparecer?

Foi útil?

Solução

CUDA é atualmente uma única tecnologia fornecedor da NVIDIA e, portanto, não tem a suporte multi-fornecedor que OpenCL faz.

No entanto, é mais maduro do que OpenCL , tem grande documentação e as habilidades aprendidas de usá-lo vai ser facilmente transferidos para outros dados parrallel kit de ferramentas de processamento.

Como um exemplo disso, leia a Parallel Data Algoritmos por Steele e Hillis e depois olhar para o Nvidia tutoriais - Há uma clara ligação entre os dois ainda o papel Steele / Hillis foi escrito durante 20 anos antes CUDA foi introduzido.

Finalmente, o Projetos FCUDA está trabalhando para permitir que projetos CUDA para alvo não hardware NVIDIA (FPGAs).

Outras dicas

CUDA deve ficar por aqui por um tempo, mas se você está apenas começando, eu recomendo olhando para OpenCL ou DirectCompute . Ambos corrida na ATI, bem como hardware NVidia, além de também trabalhar nas unidades de vetor (SSE) de CPUs.

Eu acho que você deveria ficar com OpenCL , que é um padrão aberto e apoiado por ATI, nVidia e muito mais. CUDA pode não desaparecer nos próximos anos, mas mesmo assim não é compatível com não-nVidia GPUs.

OpenCL pode levar algum tempo para se tornar onipresente, mas eu achei aprender CUDA muito informativo e eu não acho que CUDA vai ficar fora do momento holofotes em breve. Além disso, CUDA é fácil o suficiente para que o tempo que leva para aprender é muito mais curto do que a vida de prateleira de CUDA.

Esta é a era da computação de alto desempenho, computação paralela. CUDA e OpenCL são as tecnologias emergentes da GPU Computing que é realmente uma computação de alto desempenho! Se você é um programador apaixonado e disposto a conseguir referência em algoritmos paralelos, você deve realmente ir para essas tecnologias. Dados parte paralela do seu programa vai ser executado dentro de fração de segundo na GPU arquitetura múltiplos núcleos que normalmente leva muito mais tempo em seu CPU ..

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