任何GPU的并行计算用法

4
我最近写了一些软件,用于进行大量计算。这些计算是分层进行的,每个层次内部的计算是独立的。也就是说,从逻辑上讲,我可以并行运行它们,因为它们之间没有相互依赖关系。
我的问题是:是否有一个通用的 C 库可以在 GPU 上执行并行数学(矩阵)操作,并且可以在所有平台(Windows/Unix/等等)上工作?
当我说“通用”时,我指的是某个库,它可以与任何现代 GPU 兼容。

2
我认为CUDA可能是你的目标。 - LPs
3
@LP: 关于ATI?OpenCL是标准。(是的,Nvidia不支持标准)。 - too honest for this site
4
您可以使用OpenCL,它可以编程CPU、GPU、DSP和其他各种设备。请查看此处https://www.khronos.org/opencl/。 - cruxion effux
1
@BoykoPerfanov:我并不是想暗示“CL”代表“C语言”。实际上,“CL”是指“计算机语言”。但如果我没记错的话,它在语法和一些语义方面与C类似。但这也适用于C++,而且这确实是一种不同的语言。 - too honest for this site
1
@BoykoPerfanov:可能有一些常见问题的包装库,但如果你想利用全部的功能集,你必须使用本地代码。 - too honest for this site
显示剩余4条评论
2个回答

1

C语言是单线程语言,如果你想将计算分配到GPU并行运行,例如比特币挖掘,你应该考虑在C++中使用AMP库。我不太确定整个编译运行在GPU核心上的事情,但我知道这肯定会以并行方式执行你的计算。


我需要一个跨平台的东西。我了解到AMP只适用于Windows。 - SomethingSomething

0

...卸载比特币矿工?;)

& 好吧,如果您可以直接在主机上编译源代码,那么您可以指定给编译器,

# IF (some operating system) THEN

&那就解决了。回到你的并行计算问题,CUDA.h函数将在GPU上计算你的这个和那个,但如果你说你已经编写了项目的计算部分,那很可能需要一些严格的调整。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接