我正在尝试从BVLC(https://github.com/BVLC/caffe)编译caffee
,但我遇到了一个特殊的错误:
NVCC src/caffe/util/math_functions.cu
/usr/local/boost/config/suffix.hpp(510): error: identifier "__float128" is undefined
似乎是在boost
上运行nvcc时,它抱怨__float128
类型。
我用Google搜索并发现devtalk.nvidia forum post,但我真的不明白如何解决这个问题。
我甚至开了a github issue但尚未得到答复。
我在Debian 8上使用nvcc-6.5 boost 1.60和gcc-4.8.4(我手动安装了boost),违规行似乎在第510行:
506 // same again for __float128:
507 #if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
508 namespace boost {
509 # ifdef __GNUC__
510 __extension__ typedef __float128 float128_type;
511 # else
512 typedef __float128 float128_type;
513 # endif
514 }
515 #endif
similar issue in fftw3似乎暗示nvcc
自我标识为__GNUC__
从而造成他的问题?
是否有一些解决方法?
答案 0 :(得分:10)
根据bug report for boost,这实际上是一个提升1.60的问题。
您有几种选择:
nvcc
(来自CUDA 7.5)如果您使用__float128
,则可以处理-std=c++11
。您需要检查这是caffee
的选项。答案 1 :(得分:1)
我有同样的问题。构建和安装boost 1.61解决了这个问题。