美文网首页
cuda9.x编译torch7遇到的问题

cuda9.x编译torch7遇到的问题

作者: cheerss | 来源:发表于2017-12-14 10:02 被阅读0次

解决方案可见:https://github.com/torch/cutorch/issues/797
按照torch官方的只是执行./install.sh遇到以下错误

error: more than one operator "==" matches these operands:
            function "operator==(const __half &, const __half &)"
            function "operator==(half, half)"
            operand types are: half == half

可以看出是运算符重载出现了问题,实际上是由于cuda9.0对__half这一数据类型进行了“==”号的运算符重载,而torch的代码中也对__half重载了相同的运算符,因此在编译cutorch时两者发生了冲突。half实际是cuda中定义的16bit的浮点数,由于cuda原生支持FP16的运算,因此half的运算速度常常比32bit的float要更快。

解决办法就是在安装torch前额外执行一条指令,意思就是禁用掉编译torch时nvcc中对于half运算符的重载,然后安装就没有问题了。

export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
./install.sh

相关文章

网友评论

      本文标题:cuda9.x编译torch7遇到的问题

      本文链接:https://www.haomeiwen.com/subject/onphwxtx.html