From 4c82ac72df8f3dc667bbe5d4f724a6fa9bc24c6c Mon Sep 17 00:00:00 2001 From: Philipp Moritz Date: Wed, 18 Jul 2018 12:33:02 -0700 Subject: [PATCH] Upgrade arrow to include the plasma TensorFlow op (#2412) --- CMakeLists.txt | 3 +++ cmake/Modules/ThirdpartyToolchain.cmake | 4 ++++ src/ray/CMakeLists.txt | 2 +- thirdparty/scripts/build_arrow.sh | 8 +++++--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc25da38d..c3c4de0c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,9 @@ find_package(Plasma) # This ensures that things like gnu++11 get passed correctly set(CMAKE_CXX_STANDARD 11) +# Use old C++ ABI to be compatible with TensorFlow +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + # We require a C++11 compliant compiler set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/cmake/Modules/ThirdpartyToolchain.cmake b/cmake/Modules/ThirdpartyToolchain.cmake index 00e044d6a..054727988 100644 --- a/cmake/Modules/ThirdpartyToolchain.cmake +++ b/cmake/Modules/ThirdpartyToolchain.cmake @@ -2,6 +2,10 @@ set(GFLAGS_VERSION "2.2.0") set(GTEST_VERSION "1.8.0") set(GBENCHMARK_VERSION "1.1.0") +# Because we use the old C++ ABI to be compatible with TensorFlow, +# we have to turn it on for dependencies too +set(EP_CXX_FLAGS "${EP_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + if(RAY_BUILD_TESTS OR RAY_BUILD_BENCHMARKS) add_custom_target(unittest ctest -L unittest) diff --git a/src/ray/CMakeLists.txt b/src/ray/CMakeLists.txt index 045497ca0..7147c51b2 100644 --- a/src/ray/CMakeLists.txt +++ b/src/ray/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.2) -set(CMAKE_CXX_FLAGS "-g -Wall -Werror -std=c++11") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Werror -std=c++11") include_directories(${CMAKE_CURRENT_LIST_DIR}/../common/thirdparty/ae) diff --git a/thirdparty/scripts/build_arrow.sh b/thirdparty/scripts/build_arrow.sh index a905483ac..b70e08028 100755 --- a/thirdparty/scripts/build_arrow.sh +++ b/thirdparty/scripts/build_arrow.sh @@ -40,10 +40,10 @@ else exit 1 fi -# The PR for this commit is https://github.com/apache/arrow/pull/2235. We +# The PR for this commit is https://github.com/apache/arrow/pull/2104. We # include the link here to make it easier to find the right commit because # Arrow often rewrites git history and invalidates certain commits. -TARGET_COMMIT_ID=fa08ddfbe8ada173b2c621172e176f159ce3b728 +TARGET_COMMIT_ID=cecbcf7de00d2bf255bdba97cee1d37130e5bb79 build_arrow() { echo "building arrow" @@ -98,7 +98,7 @@ build_arrow() { -DPYTHON_EXECUTABLE:FILEPATH=$PYTHON_EXECUTABLE \ -DARROW_PYTHON=on \ -DARROW_PLASMA=on \ - -DPLASMA_PYTHON=on \ + -DARROW_TENSORFLOW=on \ -DARROW_JEMALLOC=off \ -DARROW_WITH_BROTLI=off \ -DARROW_WITH_LZ4=off \ @@ -124,11 +124,13 @@ build_arrow() { # find plasma. PKG_CONFIG_PATH=$ARROW_HOME/lib/pkgconfig \ PYARROW_WITH_PLASMA=1 \ + PYARROW_WITH_TENSORFLOW=1 \ PYARROW_BUNDLE_ARROW_CPP=1 \ $PYTHON_EXECUTABLE setup.py build PKG_CONFIG_PATH=$ARROW_HOME/lib/pkgconfig \ PYARROW_WITH_PLASMA=1 \ + PYARROW_WITH_TENSORFLOW=1 \ PYARROW_BUNDLE_ARROW_CPP=1 \ PARQUET_HOME=$TP_DIR/pkg/arrow/cpp/build/cpp-install \ PYARROW_WITH_PARQUET=1 \