安装torch的时候遇到了一个问题:
"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
,出现如下的画面说明安装成功了: