more than one operator "==" matches these operands"

今天安装torch的时候遇到了同样的问题:
cuda 9.0 "error: more than one operator "==" matches these operands"

错误信息:

lib/THC/CMakeFiles/THC.dir/build.make:4243: recipe for target 'lib/THC/CMakeFiles/THC.dir/THC_generated_THCTensorMathPairwise.cu.o' failed
make[2]: *** [lib/THC/CMakeFiles/THC.dir/THC_generated_THCTensorMathPairwise.cu.o] Error 1
/pkgbuild/torch/torch/extra/cutorch/lib/THC/generic/THCTensorMath.cu(393): error: more than one operator "==" matches these operands:
            function "operator==(const __half &, const __half &)"
            function "operator==(half, half)"
            operand types are: half == half

/pkgbuild/torch/torch/extra/cutorch/lib/THC/generic/THCTensorMath.cu(414): error: more than one operator "==" matches these operands:
            function "operator==(const __half &, const __half &)"
            function "operator==(half, half)"
            operand types are: half == half

原因是cuda和torch的头文件都提供了相同的重载运算符,编译器不知道用哪一个。输入下面shell命令禁止使用cuda的头文件编译torch即可:
export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
重新运行./install.sh重新开始编译就OK了。

编译成功过后,输入命令source ~/.bashrc使torch生效。如果你使用的是zsh那么输入source ~/.zshrc。完了之后再输入命令th,出现如下的画面说明安装成功了:

安装成功输入命令th



作者:artprog
链接:https://www.jianshu.com/p/d3094152ea59
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/longma666666/article/details/81190065