如何在GPU阵列上运行已编写的并发程序?

时间:2008-10-17 18:40:01

标签: concurrency erlang cuda parallel-processing gpu

我有一个用Erlang编写的神经网络,我刚买了一块带有240核GPU的GeForce GTX 260卡。使用CUDA作为粘合剂在显卡上运行它是否微不足道?

2 个答案:

答案 0 :(得分:16)

不,使用CUDA不是一件小事。

CUDA编程模型基本上使用C(有一些补充),但为了获得GPGPU的大部分功能,您必须确保您的算法遵循CUDA指南。 (见NVidia CUDA Programming Guide

例如,为了获得最佳内存性能(大约70Gbps),您需要以流式模式访问内存并进行合并,而且GPU上的分支也非常昂贵,因此您应尽可能避免条件。查看随SDK提供的指南和示例,它们将提供一个很好的起点

答案 1 :(得分:3)

我希望我能告诉你如何使用Erlang ... ;-),但至少,MS Research的Satnam Singh已经完成了一些非常有趣的工作,包括Haskell(Lava)和F#。也许这篇论文可以为你提供一些关于如何可以完成的直觉:

http://research.microsoft.com/en-us/people/satnams/