老版pytorch配新版编译器会出现一些奇怪的问题,在这里记录一下。

  1. Could not find libuv_tmp_LIBRARY using the following names: uv, libuv

libuv是做分布式异步io用的,咱们Windows单机用不到这个,通过设置环境变量USE_DISTRIBUTED=0跳过这一问题。

  1. algorithm(7417): error C2678: binary '*': no operator found which takes a left-hand operand of type 'const _BidIt' (or there is no acceptable conversion) [pytorch\build\caffe2\torch_cpu.vcxproj]

这个是mkl-dnn的问题,参考这个issue

解决方法:升级mkl-dnn到1.7版本,或在aten/src/ATen/native/CompositeRandomAccessorCommon.h文件的第132行,在

reference operator*() {

处添加const关键字,修改为

reference operator*() const {

再重新执行编译指令即可。

  1. pytorch\caffe2\utils\math_gpu.cu(898): error : namespace "thrust" has no member "host_vector" [pytorch\build\caffe2\torch_cuda.vcxproj]

这个是CUDA的问题,恰好是11.4版本引入的,参考这个issue

解决方法:在caffe2/utils/math_gpu.cu文件头部添加头文件引用:

#include <thrust/host_vector.h>

然后重新编译即可。

标签: none

添加新评论