我想在CUDA中使用存在函数,但它包含许多类和其他函数。 在每个函数变得微不足道之前添加__host__ __device__
。那么,有没有一种自动方法可以做到这一点?或者如何让nvcc编译所有函数为__device__ __host__
?将所有CUDA函数更改为__host__ __device__
0
A
回答
1
基本上,GPU编程都是关于大规模并行性。这是一个完全不同于普通单线程编程的范例。 除非您只是想将这些函数同时应用于大型数组的各个元素,否则将其编码到GPU中没有任何好处。实际上,GPU核心时钟比你的处理器慢得多。 如果您将编译的功能主要针对单线程风格的CPU写入GPU,您将获得潜在的性能损失。 您需要将您的问题重新考虑到GPU范例中。
+0
你可能会正确的。但实际上它关于机器学习,我使用min-max-modular来并行化数据,所以它可以在不改变algorthim的情况下并行训练,并且我有一种方法来整合结果。它应该在multiCPU而不是GPU中运行。但由于某种原因,我别无选择。 – GuoHaotian 2013-04-24 05:27:32
相关问题
- 1. CUDA __host__ __device__变量
- 2. CUDA中有__host__和__device__的缩写吗?
- 3. 模板__host__ __device__调用主机定义的函数
- 4. CUDA:从内核调用__device__函数
- 5. 我可以从CUDA内核函数调用__device__函数吗?
- 6. cuda - nvcc如何编译__host__代码?
- 7. 如何在线程数较少的CUDA中调用__device__函数
- 8. 在PyCUDA中调用__host__函数
- 9. __CUDA_ARCH__和内核调用在__host__ __device__功能
- 10. 访问CUDA库函数内的__device__函数模板专门实例
- 11. 将函数更改为dependencyproperty
- 12. CUDA:Nsight VS2010 profile __device__函数
- 13. 源文件上的CUDA - __device__方法
- 14. 如何释放__device__内存在CUDA
- 15. 调用__device__函数是否会影响CUDA中使用的寄存器数量?
- 16. 将所有xml实体更改为html
- 17. 将主机内存复制到cuda __device__变量
- 18. 将迭代函数更改为迭代
- 19. 将javascript函数更改为jquery
- 20. 如何将其更改为函数?
- 21. 将JS函数更改为jQuery
- 22. MySQL PHP更改表,将所有MEDIUMINT更改为INT
- 23. cudaMemcpyFromSymbol在__device__变量
- 24. Cuda/Thrust:remove_if不会更改device_vector.size()?
- 25. 更改所有者为ReentrantLock
- 26. 函数成员作为CUDA内核的参数
- 27. 将所有函数转换为类
- 28. 错误:不允许从__global__函数调用__host__函数
- 29. CUDA:__device__和__global__错误:预期的构造函数,析构函数或在“unsigned”/“void”之前的类型转换“
- 30. 将阵列中的所有正数值更改为1(Python)
总之,没有没有一种自动的方式来做到这一点。但正如你自己指出的那样,用\ _ \ _ device \ _ \ _来装饰你需要的功能是微不足道的,那么问题是什么? – talonmies 2013-04-23 06:07:36
好吧......我想我可能会写一个这样做...... – GuoHaotian 2013-04-23 06:10:51
如果有很多现有的类和函数,最好修改它们并创建一个GPU特定的解决方案,而不是将所有内容都设置为__device__。 – hthms 2013-04-23 07:49:24