Como posso fazer um programa run concorrente já está escrito em uma matriz GPU?
-
03-07-2019 - |
Pergunta
Eu tenho uma rede neural escrito em Erlang, e eu só comprei um 260 placa GeForce GTX com uma GPU 240 núcleo nele. É trivial de usar CUDA como cola para executar este na placa de vídeo?
Solução
Não, utilizando CUDA não é uma questão trivial.
O modelo de programação CUDA utiliza basicamente C (com algumas adições), mas, a fim de obter o máximo das capacidades do GPGPU você teria que garantir que seus algoritmos seguir as orientações CUDA. (Veja NVidia CUDA Guia de Programação )
Por exemplo, a fim de obter o melhor desempenho da memória (algo em torno de 70Gbps), você precisa de memória de acesso no modo streaming com coalescentes, também galhos são muito caros nas GPUs para que você deve evitar condicionais, tanto quanto possível. Confira o guia e amostras fornecidos com o SDK, eles vão fornecer um excelente ponto de partida
Outras dicas
Eu gostaria de poder dizer-lhe como fazer isso com Erlang ... ;-), mas, pelo menos, Satnam Singh em MS investigação tem feito um trabalho muito interessante com Haskell (Lava) e F #. Talvez este papel pode dar-lhe alguma intuição de como ele pode ser feito: