我现在正在学习cuda,我想知道是否可以使用不同库中的函数以及类似于cuda设备代码中的api的boost。 注:我试过使用std :: cout,并没有工作我改变代码生成compute_20,sm_20后得到了printf工作。我正在使用Visual Studio 2010. Cuda 5.0。 GPU Nvidia GTX 570. NSIght已安装。在cuda设备代码中使用类似boost的库
2
A
回答
1
Here's答案。这里是关于语言支持的CUDA documentation。 Boost不会确定。
由于使用CUDA的目的是加快代码中的内核速度,因此通常会限制使用的语言复杂性,因为会增加开销。这意味着你通常会保持非常接近普通C的状态,如果这真的很方便,只需要少量的C++。
例如,Boost中的构造会导致大量的汇编代码(一般情况下C++被批评为此并且是在实时软件中不使用某些构造的原因)。对于大多数应用程序来说,这一切都很好,但对于要在GPU上运行的每个指令都很重要的内核来说,这并非如此。
对于CUDA(或OpenCL),人们通常编写强大的算法来处理数组中的数据。例如特殊的图像处理。您只能使用这些技术来完成应用程序的计算密集型任务。然后你有一个“常规”程序,与创建这些CUDA任务的用户/网络/数据库进行交互(即选择数据和参数)并启动它们。 Here are CUDA samples.
1
Boost
使用表达式模板技术不会在放宽性能的同时启用更简单的语法。
BlueBird和Newton是使用元编程的库,类似于Boost
,启用CUDA
计算。
ArrayFire是使用Just in Time编译和利用下面的CUDA语言的另一个库。
最后,如Njuffa所建议的,Thrust是一个模板库,支持CUDA计算(但不使用元编程,请参阅Evaluating expressions consisting of elementwise matrix operations in Thrust)。
相关问题
- 1. 在CUDA设备代码中使用std :: vector
- 2. 从CUDA开始,关于设备代码
- 3. 在设备代码中使用指向设备内存的主机类成员
- 4. 代码块的Boost库设置
- 5. Cuda C++在设备代码中没有元组吗?
- 6. 按需使用jquery和代码注入的类似移动设备的键盘
- 7. 使用boost asio stream_handle和类似的基于文件的设备顺序
- 8. 在cuda主机代码中使用openMP?
- 9. CUDA和C++用于主机和设备代码
- 10. cuda程序内核代码在设备内存空间
- 11. CUDA:为什么compute_20代码在compute_35设备上失败?
- 12. CUDA-GDB:没有CUDA设备
- 13. 使用Java的cuda设备内核?
- 14. 用于CUDA代码的C++设计
- 15. 如何比较类似的代码库?
- 16. 我如何使这个代码cuda(cpu代码到cuda代码)
- 17. 在cuda/c + +代码中使用模板类
- 18. 如何编写CUDA代码来打印出支持CUDA的设备?
- 19. CUDA - 无效的设备函数,如何知道[架构,代码]?
- 20. CUDA 5是否支持设备代码内的STL或THRUST?
- 21. CUDA,试图在设备
- 22. 在cuda代码中循环
- 23. 如何使用extern cuda设备变量
- 24. 在设备中使用阵列的CUDA并行压缩
- 25. 可以使用Cuda设备指针代替cl :: Buffer吗?
- 26. 如何用boost库建立C++代码
- 27. CUDA设备到设备转移昂贵
- 28. 支持CUDA的设备
- 29. 设备与CUDA的分裂
- 30. Javascript代码来检测设备类别
如果这个问题听起来新手原谅我,我的编程经验很小。如果你不能在Cuda中使用其他库,那么你为什么要使用它。如果你可以请给一个真实世界的例子或应用程序。 – user1721803
@ user1721803请参阅我答案的扩展名。 –
如果您更喜欢在CUDA中使用模板库,则可能需要查看Thrust:http://docs.nvidia.com/cuda/thrust/。要了解人们使用CUDA实现什么样的项目和产品,请查看CUDA展示:http://www.nvidia.com/object/cuda-apps-flash-new.html# – njuffa