组合CUDA和Boost特殊函数时发生编译错误

组合CUDA和Boost特殊函数时发生编译错误,boost,cuda,Boost,Cuda,这似乎是一个反复出现的问题 我使用CUDA和Boost库的组合。例如,对于一些Boost库,这些函数工作得很好。如果我试图包括boost/math/special_functions.hpp,我会得到如下错误: 类型为“\u v1di”的参数与类型为的参数不兼容 “_属性((向量_大小(8))长” 任何建议都会很有帮助这不是解决这个具体问题的直接答案,而是更一般的答案。我在这里假设您使用NVCC来编译包含Boost头的代码。通过NVCC传递大量模板化的代码有时会导致问题。确保您使用的是最新版本的

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

我使用CUDA和Boost库的组合。例如,对于一些Boost库,这些函数工作得很好。如果我试图包括
boost/math/special_functions.hpp
,我会得到如下错误:

类型为“\u v1di”的参数与类型为的参数不兼容 “_属性((向量_大小(8))长”


任何建议都会很有帮助

这不是解决这个具体问题的直接答案,而是更一般的答案。我在这里假设您使用NVCC来编译包含Boost头的代码。通过NVCC传递大量模板化的代码有时会导致问题。确保您使用的是最新版本的NVCC。模板支持不断改进,您可能会幸运地得到更新


否则,您可能需要设计一种方法,使用Boost将代码拆分为一部分,而不需要经过NVCC和CUDA特定的代码,而事实上,它们确实需要

boost中的NVCC支持仍然不稳定。大多数基于TMP的重代码都容易失败。作为boost中NVCC支持的维护者,我敦促您向boost SVN Trac报告错误,以便我们能够处理它

+1我不知道boost方面有任何努力。有趣。