Pergunta

Eu estou procurando alguns exemplos introdutórios para OpenCL que ilustram os tipos de aplicativos que podem experimentar aumentos grandes (por exemplo, 50x-1000x) na velocidade. Cuda tem muitos exemplos agradáveis, mas eu não encontrei a mesma coisa para OpenCL .

Um exemplo bom pode ser otimização global de funções complexas através de enxames de partículas, recozimento simulado, algoritmos evolutivos, otimização de colônia de formigas, etc.

Foi útil?

Solução

O são alguns bons exemplos no SDK da NVIDIA:

http://developer.nvidia.com/object/get-opencl.html

Outras dicas

Os algoritmos que você está descrevendo não são nem simples nem introdutório do ponto de vista da programação GPU. A razão CUDA tem exemplos nestas áreas é que ele tem sido em torno de tempo suficiente para que as pessoas têm desenvolvido estes exemplos. Não há atualmente nenhuma versão acessível ao público de OpenCL que roda em GPUs. ATI e NVIDIA estão oferecendo versões beta de seus drivers OpenCL, mas computação suportes única CPU da ATI e NVIDIA da exige a assinatura de um NDA para obter. Simplificando, OpenCL não foi tempo suficiente para exemplos abrangentes como estes ter sido desenvolvido e demonstrado.

Dito isto, ter acesso aos motoristas OpenCL da NVIDIA não é difícil. Você pode descobrir como fazê-lo em seus fóruns aqui . Presumo que a distribuição OpenCL contém alguns programas de exemplo para ajudá-lo a começar.

Isto também significa que é uma excelente oportunidade para você desenvolver alguns desses benchmarks e postar seus resultados. Então as pessoas vão se referir a seu trabalho, em vez de se referindo ao seu trabalho. Eu não esperaria muitas surpresas embora. desempenho OpenCL deve ser mais ou menos a par com o desempenho CUDA, uma vez que se torna amplamente disponível e apoiada.

A nossa equipa tem vindo a trabalhar em algoritmos OpenCL e aceleração e gostaríamos de sugerir o artigo

http: //www.cmsoft.com.br/index.php?view=article&catid=1:latest-news&id=247:opencl-simulated-annealing

como um exemplo de implementação do algoritmo Simulated Annealing para minimização.

Você poderia tentar os dois livros seguintes:

Programação processadores massivamente paralelo ... um hands-on Approach (NVIDIA) (capítulo 1 e 2)

O OpenCL livro Programming ... Programação Paralela para MultiCore CPU e GPU (componentes História

Tanto entrar em detalhes quanto a explicar por que o desenvolvimento foi feito e onde os verdadeiros bonificações pode ser encontrado.

Não tenho certeza de benchmarking, porém, não tiveram qualquer sorte lá me quer.

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