Я настраиваю TF 2.0.0 таким образом, чтобы создать этот файл .tf_configure.bazelr c:
build --action_env PYTHON_BIN_PATH="/N/slate/steige/dl_test/Python-3.7.6/bin/python"
build --action_env PYTHON_LIB_PATH="/N/soft/rhel7/deeplearning/Python-3.6.8/pytorch/build/lib.linux-x86_64-3.6/"
build --python_path="/N/slate/steige/dl_test/Python-3.7.6/bin/python"
build --action_env PYTHONPATH="/N/soft/rhel7/deeplearning/Python-3.6.8/lib/python3.6/site-packages:/N/soft/rhel7/deeplearning/Python-3.6.8/pytorch/build/lib.linux-x86_64-3.6/"
build:xla --define with_xla_support=true
build --config=xla
build --config=tensorrt
build --action_env TF_CUDA_VERSION="10"
build --action_env TF_CUDNN_VERSION="7"
build --action_env TF_TENSORRT_VERSION="5"
build --action_env TF_NCCL_VERSION=""
build --action_env TF_CUDA_PATHS="/N/slate/steige/dl_test/gcc-7.4.0/lib64,/N/soft/rhel7/cuda/10.0,/N/soft/rhel7/cuda/10.0/lib64,/N/soft/rhel7/cuda/10.0/include/,/N/soft/rhel7/cuda/10.
0/bin,/N/slate/steige/dl_test/TensorRT-5.1.5.0/include,/N/slate/steige/dl_test/TensorRT-5.1.5.0/lib,/N/slate/steige/dl_test/Python-3.7.6/cuda/include,/N/slate/steige/dl_test/Python-3.
7.6/cuda/lib64"
build --action_env CUDA_TOOLKIT_PATH="/N/soft/rhel7/cuda/10.0"
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="6.0,7.0"
build --action_env LD_LIBRARY_PATH="/N/slate/steige/dl_test/TensorRT-5.1.5.0/lib:/N/slate/steige/dl_test/gcc-7.4.0/lib:/N/slate/steige/dl_test/gcc-7.4.0/lib64:/N/slate/steige/dl_test/
Python-3.7.6/cuda/lib64:CUDA_CUDART_LIBRARY:/N/soft/rhel7/deeplearning/cuda/lib64:/N/soft/rhel7/deeplearning/Python-3.6.8/lib:/N/soft/rhel7/deeplearning/Python-3.6.8/pytorch/torch/lib
64:/N/soft/rhel7/deeplearning/Python-3.6.8/pytorch/torch/lib:/N/soft/rhel7/cuda/10.0/lib64:/N/soft/rhel7/perl/gnu/5.24.1/lib"
build --action_env GCC_HOST_COMPILER_PATH="/N/slate/steige/dl_test/gcc-7.4.0/bin/gcc"
build --config=cuda
build:opt --copt=-Wno-sign-compare
build:opt --copt=-fno-canonical-system-headers
build:opt --copt=-mavx
build:opt --copt=-mavx2
build:opt --copt=-mfma
build:opt --copt=-msse4.1
build:opt --copt=-msse4.2
build:opt --copt=-O3
build:opt --copt=-fopenmp
build:opt --copt=-lgomp
build:opt --host_copt=-march=native
build:opt --define with_default_optimizations=true
test --flaky_test_attempts=3
test --test_size_filters=small,medium
test --test_tag_filters=-benchmark-test,-no_oss,-oss_serial
test --build_tag_filters=-benchmark-test,-no_oss
test --test_tag_filters=-gpu
test --build_tag_filters=-gpu
build --action_env TF_CONFIGURE_IOS="0"
Затем я пытаюсь использовать его с помощью: import tenorflow as tf print ("ensorflow: ", tf. version )
Это дает мне следующее:
python ttt.py
Traceback (most recent call last):
File "/N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/site-packages/tensorflow_core/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/site-packages/tensorflow_core/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/site-packages/tensorflow_core/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: /N/slate/steige/dl_test/Python-3.7.6/lib/python3.7/site-packages/tensorflow_core/python/_pywrap_tensorflow_internal.so: undefined symbol: omp_get_max_threads
Я использовал предложенные флаги --copt для включения OpenMP. Я проверяю, что путь к отсутствующей библиотеке (libgomp.so) находится в LD_LIBRARY_PATH, LD_LIBRARY_PATH известен конфигурации и что libgomp.so фактически находится в /N/slate/steige/dl_test/gcc-7.4.0 /lib64.
Мой g cc не установлен в "стандартном" месте, но мне кажется, что нет никакого рабочего способа сообщить TF, где найти отсутствующие зависимости.
Перемещение g cc не вариант для меня, система должна поддерживать несколько одновременных версий g cc.
Я не знаю, как go исправить это, но это выглядит довольно Серьезная проблема. Я вижу подобное поведение в TF 2.1, где он ожидает libstdc ++. Поэтому он должен находиться в / lib64. Любая помощь или исправление будут очень благодарны.
С уважением, Скотт