2

I tried to run the Nvidia TensoRT's python samples, but got an error importing pycuda:

ImportError: .../pycuda-2020.1-py3.6-linux-x86_64.egg/pycuda/_driver.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5boost6detail12set_tss_dataEPKvPFvPFvPvES3_ES5_S3_b

My environment:

  • Nvidia Driver Version: 460.73.01
  • CUDA Version: 10.0
  • CUDNN Version: 7.6.4
  • Operating System + Version: Ubuntu 16.04
  • Python Version: 3.6.13

How I installed pycuda:

  • pip install numpy==1.16
  • sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y
  • install boost:
    ./bootstrap.sh --with-libraries=python
    ./b2 --with-python include=".../include/python3.6m/"
    sudo ./b2 install
    
  • install pycuda: I first run ./configure.py --cuda-root=/usr/local/cuda-10.0, then I changed the settings in siteconf.py: USE_SHIPPED_BOOST --> False; BOOST_PYTHON_LIBNAME --> ['boost_python36']. Then
    make
    sudo make install
    

After installing PyCuda, I installed TensorFlow 1.15 and TensorRT 7. The error happened on the line from pycuda._driver import * # noqa.

Please teach me how to address this problem. Thanks

Alex Fu
  • 113
  • 1
  • 8

1 Answers1

1

I solved this problem by downloading the files in this repo, placing them into the pycuda folder. Then I set USE_SHIPPED_BOOST = True and wrapped it up.

Alex Fu
  • 113
  • 1
  • 8