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

qquod 发布于 2018-05-15 concurrency 最后更新 2018-05-15 23:28 271 浏览

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

已邀请:

riure

赞同来自:

不,使用CUDA不是一件小事。 CUDA编程模型基本上使用C(有一些增加),但为了充分利用GPGPU的功能,您必须确保您的算法遵循CUDA指南。 (请参阅NVidia CUDA Programming Guide) 例如,为了获得最佳内存性能(大约70Gbps),您需要以流模式访问内存并合并,而且GPU上的分支也非常昂贵,因此您应该尽可能避免使用条件。查看SDK提供的指南和示例,它们将提供一个很好的起点

gquia

赞同来自:

我希望我能告诉你如何用Erlang来做到这一点...... ;-)但至少,MS Research的Satnam Singh已经与Haskell(Lava)和F#做了一些非常有趣的工作。也许这篇论文可以给你一些关于如何完成的直觉: http://research.microsoft.com/en-us/people/satnams/