编译错误,结合CUDA和Boost特殊功能

时间:2011-11-25 11:37:15

标签: boost cuda

这似乎是一个反复出现的问题。

我使用CUDA和Boost库的组合。工作正常,例如对于一些Boost库。如果我尝试加入boost/math/special_functions.hpp,我会收到如下错误:

  

类型“_ v1di”的参数与类型参数不兼容   “ _attribute((vector_size(8)))long”

任何建议都会有所帮助

2 个答案:

答案 0 :(得分:4)

NVCC对提升的支持仍然不稳定。大多数基于TMP的重型代码容易出现故障。作为NVCC对boost的支持的维护者,我建议你向Boost SVN Trac报告错误,以便我们处理它

答案 1 :(得分:2)

这不是解决这个具体问题的直接答案,而是更普遍的问题。我假设您使用NVCC来编译包含Boost标头的代码。通过NVCC传递严重模板化的代码有时会导致问题。确保您使用的是最新版本的NVCC。模板支持不断改进,您可能会因为更新而感到幸运。

否则,您可能想要设法使用Boost将代码拆分为一个部分,而不需要通过NVCC和CUDA特定的代码。