PyTorch:使用 TBB 从源构建失败

问题描述

我正在尝试使用 TBB 而不是 OpenMP 从源代码构建 PyTorch,但我每次都收到以下错误

    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `omp_get_max_threads'
    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `omp_get_num_threads'
    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `GOMP_barrier'
    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `GOMP_parallel'
    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `omp_in_parallel'
    /usr/bin/ld: <PATH>/pytorch/build/lib/libtorch_cpu.so: undefined reference to `omp_get_thread_num'
    collect2: error: ld returned 1 exit status
    make[2]: *** [caffe2/CMakeFiles/kernel_function_legacy_test.dir/build.make:109: bin/kernel_function_legacy_test] Error 1

您可以找到完整的日志文件 HERE

复制

重现行为的步骤:

  1. git clone https://github.com/pytorch/pytorch
  2. cd pytorch
  3. ATEN_THREADING=TBB BUILD_BINARY=1 USE_EIGEN_THREADPOOL=1 USE_CUDA=0 ParaLLEL_BACKEND=NATIVE_TBB USE_OPENMP=0 USE_TBB=1 MKL_THREADING=TBB BLAS=MKL USE_MKLDNN=1 MKLDNN_THREADING=TBB BUILD_BINARY=1 python setup.py build --cmake 2>&1 | tee ~/output.txt
  • PyTorch 版本(例如 1.0):1.10.0a0+git1798ff0
  • 操作系统(例如 Linux):manjaro
  • 您如何安装 PyTorch(condapip、源代码):pip
  • Python 版本:3.9.5
  • CUDA/cuDNN 版本:否
  • GPU 型号和配置:否

解决方法

Caffe2 CMake 文件似乎有问题。 您是否尝试将 CMake 更新到最新版本。

在github上可以找到类似的问题。通过升级 cmake 解决了问题。

https://github.com/pytorch/pytorch/issues/8370

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...