You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:32:12