2013-07-13 38 views
2

我现在正在学习cuda,我想知道是否可以使用不同库中的函数以及类似于cuda设备代码中的api的boost。 注:我试过使用std :: cout,并没有工作我改变代码生成compute_20,sm_20后得到了printf工作。我正在使用Visual Studio 2010. Cuda 5.0。 GPU Nvidia GTX 570. NSIght已安装。在cuda设备代码中使用类似boost的库

回答

1

Here's答案。这里是关于语言支持的CUDA documentation。 Boost不会确定。

由于使用CUDA的目的是加快代码中的内核速度,因此通常会限制使用的语言复杂性,因为会增加开销。这意味着你通常会保持非常接近普通C的状态,如果这真的很方便,只需要少量的C++。

例如,Boost中的构造会导致大量的汇编代码(一般情况下C++被批评为此并且是在实时软件中不使用某些构造的原因)。对于大多数应用程序来说,这一切都很好,但对于要在GPU上运行的每个指令都很重要的内核来说,这并非如此。

对于CUDA(或OpenCL),人们通常编写强大的算法来处理数组中的数据。例如特殊的图像处理。您只能使用这些技术来完成应用程序的计算密集型任务。然后你有一个“常规”程序,与创建这些CUDA任务的用户/网络/数据库进行交互(即选择数据和参数)并启动它们。 Here are CUDA samples.

+0

如果这个问题听起来新手原谅我,我的编程经验很小。如果你不能在Cuda中使用其他库,那么你为什么要使用它。如果你可以请给一个真实世界的例子或应用程序。 – user1721803

+1

@ user1721803请参阅我答案的扩展名。 –

+1

如果您更喜欢在CUDA中使用模板库,则可能需要查看Thrust:http://docs.nvidia.com/cuda/thrust/。要了解人们使用CUDA实现什么样的项目和产品,请查看CUDA展示:http://www.nvidia.com/object/cuda-apps-flash-new.html# – njuffa