如何在Matlab中使用GPU的共享内存?

时间:2012-04-14 01:35:05

标签: matlab parallel-processing gpu-programming

有人可以说一下,如何使用Matlab并行计算工具箱中使用的GPU共享内存。我可以明确地使用它来同步MP单位。

顺便说一句。我有一台GTX 580,它有1.5GB内存,每个MultiProcessor 32个内核(每个MP 16个内核)和64Kb共享(L1)内存。

由于

2 个答案:

答案 0 :(得分:1)

我不知道Matlab的答案,但如果你愿意使用Python,那么PyCUDA就是你的朋友。您可以直接在CUDA-C中开发内核代码,用Python中的长字符串编写。然后PyCUDA允许您编译这些变量,设置设备变量,向设备发送数据和从设备发送数据,然后使用启动配置执行内核以控制线程/块等。要利用共享成员,您只需使用{{声明变量1}} CUDA-C code-as-Python-string中的关键字。

我为is linked here编写了一些图像处理代码。您可以解压缩它并查看我将CUDA-C源模块编写为Python字符串的方式。使用NumPy和SciPy,Python中的其他用户体验与Matlab非常相似 - 只是更好。如果您没有在Matlab中完成此项目,请考虑将其切换到PyCUDA。

答案 1 :(得分:1)

Maiss,

我想谈谈GPU的M代码 - 我发现Jacket是访问GPU的有用替代品。 Jacket默认使用共享内存来完成任务,如果你想自己控制它,它有一个SDK。

GTX 580是一款出色的显卡,但如果你有现金,我个人会推荐一些特斯拉GPU长期可靠(特别是长期运行的科学应用)。