Windows11 WSL(Ubuntu22.04)编译PyTorch/XLA源码遇问题求助
在WSL Ubuntu 22.04编译PyTorch/XLA的错误排查记录
环境信息
- Windows11 + 联想AMD锐龙Ideapad 5 Pro(16英寸)
- WSL2 Ubuntu 22.04
- 编译目标:PyTorch/XLA(遵循官方源码编译步骤)
场景1:默认GCC编译时的未初始化变量错误
按照官方步骤执行:
cmake install cmake ninja pip install -r requirements.txt conda install mkl mkl-include git clone --recursive https://github.com/pytorch/pytorch cd pytorch export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} python setup.py develop
出现编译错误(警告被升级为错误):
In function ‘__m512i _mm512_slli_epi32(__m512i, unsigned int)’, inlined from ‘void fbgemm::{anonymous}::Bfloat16ToFloatKernelAvx512(const fbgemm::bfloat16*, float*)’ at /home/pytorch/third_party/fbgemm/src/FbgemmBfloat16ConvertAvx512.cc:37:38, inlined from ‘void fbgemm::Bfloat16ToFloat_avx512(const bfloat16*, float*, size_t)’ at /home/pytorch/third_party/fbgemm/src/FbgemmBfloat16ConvertAvx512.cc:54:32: /usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:1242:50: error: ‘__Y’ may be used uninitialized [-Werror=maybe-uninitialized] 1242 | return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ 1243 | (__v16si) | ~~~~~~~~~ 1244 | _mm512_undefined_epi32 (), | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1245 | (__mmask16) -1); | ~~~~~~~~~~~~~~~ /usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h: In function ‘void fbgemm::Bfloat16ToFloat_avx512(const bfloat16*, float*, size_t)’: /usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:206:11: note: ‘__Y’ was declared here 206 | __m512i __Y = __Y; | ^~~ cc1plus: all warnings being treated as errors
已知__Y = __Y是GCC中用于抑制警告的自初始化写法,但此处反而触发错误。尝试过多种不修改源码的方式关闭该警告,均无效。
场景2:切换到Clang编译器时的链接错误
尝试通过环境变量切换到Clang(该编译器可正常编译LLVM和MLIR):
export CC=clang export CXX=clang++
但CMake配置阶段就失败,错误信息:
Change Dir: /home/pytorch/build/CMakeFiles/CMakeTmp Run Build Command(s):/home/cfclark/anaconda3/bin/ninja cmTC_6fa39 && [1/2] Building CXX object CMakeFiles/cmTC_6fa39.dir/testCXXCompiler.cxx.o [2/2] Linking CXX executable cmTC_6fa39 FAILED: cmTC_6fa39 : && /usr/bin/clang++ CMakeFiles/cmTC_6fa39.dir/testCXXCompiler.cxx.o -o cmTC_6fa39 && : /usr/bin/ld: cannot find -lstdc++: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed.
内容的提问来源于stack exchange,提问作者intel_chris
相关产品推荐
相关产品推荐

