[빌드] TensorFlow C++ 라이브러리를 빌드하는 과정에서 마주한 에러들
TensorFlow 라이브러리를 수정하며 놀아보기 위해서 Source 코드에서 C++라이브러리르 빌드하려고 합니다.
제 빌드 환경은 아래와 같습니다.
OS: Windows (WSL - Ubuntu 22.04.1 LTS)
Bazel: 5.0.0
TensorFlow: v2.9.3 (a5ed5f39b67)
위와 같은 환경에서 TensorFlow git을 clone한 후 ./configure을 수행하니 아래와 같은 문구가 계속 노출되었습니다.
확인해 보니 각 TensorFlow 릴리즈 버전은 각 버전별 맞는 CUDA/cuDNN 버전이 존재한다고 합니다.
따라서 이 링크에서 확인해 보니 현재 내 소스에 맞는 CUDA SDK버전은 11.2와 cuDNN은 8.1로 확인할 수 있었습니다.
(Linux에 CUDA 설치는 이 링크를 통해서 참고했습니다.)
버전에 맞게 CUDA를 재설치하니 ./configure를 마무리 할 수 있었습니다.
참고로 제 configure 설정은 아래와 같습니다.
- ROCm: N
- CUDA: y
- TensorRT: N
- use clang as CUDA compiler: N
- Android builds: N
이후에는 레파지토리의 root에서 아래의 명령어로 빌드를 실행합니다.
bazel build --config=opt --config=monolithic --config=cuda tensorflow:libtensorflow_cc.so tensorflow:install_headers
그런데 제 경우에 아래와 같은 에러가 발생했는데
Compiling tensorflow/compiler/mlir/xla/transforms/legalize_tf.cc failed: (Exit 1): crosstool_wrapper_driver_is_not_gcc failed
찾아 보니 GCC 버전이 맞지 않아서 발생한 이슈라고 Github이슈에 글이 올란온것을 확인할 수 있었습니다.
하지만 GCC버전을 수정해도 같은 이유로 빌드를 실패해서 고민하던 와중에 GitHub에 CMake만 사용하여 빌드할 수 있게 해주는 스크립트 레파지토리를 발견하여 빌드할 수 있었습니다.
(docker container도 제공해줘서 정말 쉽게 빌드할 수 있었습니다.)
FloopCZ/tensorflow_cc: Build and install TensorFlow C++ API library. (github.com)
GitHub - FloopCZ/tensorflow_cc: Build and install TensorFlow C++ API library.
Build and install TensorFlow C++ API library. Contribute to FloopCZ/tensorflow_cc development by creating an account on GitHub.
github.com
추후에 bazel버전을 전부 올린 후 TensorFlow 최신 버전으로 빌드에 재도전 해보려고 합니다.
참고
https://www.tensorflow.org/install/source?hl=ko
소스에서 빌드 | TensorFlow
이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 소스에서 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 소스에서 TensorFlow pip 패키
www.tensorflow.org
https://iq.opengenus.org/build-tensorflow-cpp-library/
Build TensorFlow C++ Library from source
In this guide, we will demonstrate how to build TensorFlow C++ library from source so that you can use TensorFlow C++ API. This is needed as TensorFlow has no documentation on how to build C++ Library from source and provided no pre-build C++ library.
iq.opengenus.org