1: error: #error ( "You found a build system error: __AVX2__ is defined (via e.g. -mavx2) " "but CAFFE2_PERF_WITH_AVX2 is not defined.");

这个错误事由于ninja引起的,尝试使用编译:

USE_MKLDNN=0 USE_DISTRIBUTED=0 USE_NINJA=OFF  sudo -E  python3 setup.py install --cmake

参考thread: https://github.com/pytorch/pytorch/issues/13061

2: fatal error: fbgemm/FbgemmConvert.h: No such file or directory #include "fbgemm/FbgemmConvert.h"

这个错误说实话有点神奇。你fbgemm不是作为thirdparty而存在的吗?怎么现在又找不到了?
解决方法也很简单,不知道为何,在 third_party 下面确实没有发现这个文件,那么就进入到fbgemm里面pull一下最新的代码:

cd third_party/fbgemm
git pull origin master

再查看一下是不是有了那个文件。

3: pytorch/caffe2/opt/onnxifi_op.h:259:37: error: invalid conversion from ‘uint32_t {aka unsigned int}’ to ‘void*’ [-fpermissive]
这个错误真tm日了狗了。master branch代码是不是都有bug????
这个错误可能来自于g++的版本不对,尝试使用g++6来进行编译。并且千万别用更高的版本,不然的话容易出错。
最后我重新clone了一个新鲜的pytorch源码,似乎没有了这个问题。不过新的问题又来了。

4: /usr/bin/x86_64-linux-gnu-ld: warning: libcusparse.so.10.0, needed by /pytorch_master/build/lib/libtorch_cuda.so, not found (try using -rpath or -rpath-link)

它提示我找不到CUDA这个库。这就奇怪了。明明我的cuda已经添加到了环境变量里面了啊。
这个问题浪费我不少时间,显示重新clone了一个pytorch源码,然后也尝试了用ninja编译,但是用ninja肯定事不行的,得用cmake。但是cmake就是报这个错误。最后实在不行了直接把cuda下面的库拷贝到了 build/lib下面。最后通过了编译。

总的来说就是这么一句话很重要:

假如你有了conda,那么直接按照github的步骤来,假如没有conda,那么这条命令救命:USE_MKLDNN=0 USE_DISTRIBUTED=0 USE_NINJA=OFF sudo -E python3 setup.py install --cmake

最后我解决了所有bug BY。。。。。 换了一台安装了cuda10.1的机器。。
我现在正在更新cuda10.2.。。

感觉事cuda版本的问题