aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-03-20 11:21:40 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-03-20 11:24:28 -0700
commitbeaf17d4b2b2e79e97b08b0382b302771ae6081e (patch)
treeb42d410b69baff22290ebc54de613d2999a87559
parent1c4e42b39fd9ae2da14d7eb323bedc144a6e659b (diff)
Update version of nsync used by TensorFlow.
The primary change is that on Linux, the C++11 build of nsync will now use underlying system primitives to implement a semaphore instead of the C++11 primitives, which are currently surprisingly slow on Linux. PiperOrigin-RevId: 189775201
-rw-r--r--tensorflow/contrib/cmake/external/nsync.cmake2
-rw-r--r--tensorflow/contrib/cmake/patches/nsync/CMakeLists.txt8
-rwxr-xr-xtensorflow/contrib/makefile/compile_nsync.sh5
-rw-r--r--tensorflow/workspace.bzl8
4 files changed, 15 insertions, 8 deletions
diff --git a/tensorflow/contrib/cmake/external/nsync.cmake b/tensorflow/contrib/cmake/external/nsync.cmake
index f3a37ff508..b9d1dd88d4 100644
--- a/tensorflow/contrib/cmake/external/nsync.cmake
+++ b/tensorflow/contrib/cmake/external/nsync.cmake
@@ -16,7 +16,7 @@ include (ExternalProject)
set(nsync_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/nsync/public)
set(nsync_URL https://github.com/google/nsync)
-set(nsync_TAG 8502189abfa44c249c01c2cad64e6ed660a9a668)
+set(nsync_TAG 0559ce013feac8db639ee1bf776aca0325d28777)
set(nsync_BUILD ${CMAKE_CURRENT_BINARY_DIR}/nsync/src/nsync)
set(nsync_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/nsync/install)
diff --git a/tensorflow/contrib/cmake/patches/nsync/CMakeLists.txt b/tensorflow/contrib/cmake/patches/nsync/CMakeLists.txt
index aaae18a313..6f059c7225 100644
--- a/tensorflow/contrib/cmake/patches/nsync/CMakeLists.txt
+++ b/tensorflow/contrib/cmake/patches/nsync/CMakeLists.txt
@@ -42,7 +42,6 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
include_directories ("${PROJECT_SOURCE_DIR}/platform/c++11")
add_definitions ("-DNSYNC_USE_CPP11_TIMEPOINT -DNSYNC_ATOMIC_CPP11")
set (NSYNC_OS_CPP_SRC
- "platform/c++11/src/nsync_semaphore_mutex.cc"
"platform/c++11/src/per_thread_waiter.cc"
"platform/c++11/src/yield.cc"
"platform/c++11/src/time_rep_timespec.cc"
@@ -52,6 +51,7 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
include_directories ("${PROJECT_SOURCE_DIR}/platform/win32")
add_compile_options ("/TP")
set (NSYNC_OS_SRC
+ "platform/c++11/src/nsync_semaphore_mutex.cc"
"platform/win32/src/clock_gettime.c"
"platform/win32/src/pthread_key_win32.cc"
${NSYNC_OS_CPP_SRC}
@@ -68,6 +68,7 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
add_compile_options ("-std=c++11")
set (NSYNC_OS_SRC
${NSYNC_OS_CPP_SRC}
+ "platform/c++11/src/nsync_semaphore_mutex.cc"
"platform/posix/src/clock_gettime.c"
"platform/posix/src/nsync_semaphore_mutex.c"
)
@@ -75,9 +76,11 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
"platform/posix/src/start_thread.c"
)
elseif ("${CMAKE_SYSTEM_NAME}X" STREQUAL "LinuxX")
+ include_directories (BEFORE "${PROJECT_SOURCE_DIR}/platform/c++11.futex")
include_directories ("${PROJECT_SOURCE_DIR}/platform/posix")
add_compile_options ("-std=c++11")
set (NSYNC_OS_SRC
+ "platform/linux/src/nsync_semaphore_futex.c"
${NSYNC_OS_CPP_SRC}
)
set (NSYNC_TEST_OS_SRC
@@ -87,6 +90,7 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
include_directories ("${PROJECT_SOURCE_DIR}/platform/posix")
add_compile_options ("-std=c++11")
set (NSYNC_OS_SRC
+ "platform/c++11/src/nsync_semaphore_mutex.cc"
${NSYNC_OS_CPP_SRC}
)
set (NSYNC_TEST_OS_SRC
@@ -96,6 +100,7 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
include_directories ("${PROJECT_SOURCE_DIR}/platform/posix")
add_compile_options ("-std=c++11")
set (NSYNC_OS_SRC
+ "platform/c++11/src/nsync_semaphore_mutex.cc"
${NSYNC_OS_CPP_SRC}
)
set (NSYNC_TEST_OS_SRC
@@ -105,6 +110,7 @@ if ("${NSYNC_LANGUAGE}X" STREQUAL "c++11X")
include_directories ("${PROJECT_SOURCE_DIR}/platform/posix")
add_compile_options ("-std=c++11")
set (NSYNC_OS_SRC
+ "platform/c++11/src/nsync_semaphore_mutex.cc"
${NSYNC_OS_CPP_SRC}
)
set (NSYNC_TEST_OS_SRC
diff --git a/tensorflow/contrib/makefile/compile_nsync.sh b/tensorflow/contrib/makefile/compile_nsync.sh
index 7927997678..e8c6edd7ba 100755
--- a/tensorflow/contrib/makefile/compile_nsync.sh
+++ b/tensorflow/contrib/makefile/compile_nsync.sh
@@ -109,17 +109,18 @@ for arch in $archs; do
linux) makefile='
CC=${CC_PREFIX} g++
PLATFORM_CPPFLAGS=-DNSYNC_USE_CPP11_TIMEPOINT -DNSYNC_ATOMIC_CPP11 \
+ -I../../platform/c++11.futex \
-I../../platform/c++11 -I../../platform/gcc \
-I../../platform/posix -pthread
PLATFORM_CFLAGS=-std=c++11 -Werror -Wall -Wextra -pedantic
PLATFORM_LDFLAGS=-pthread
MKDEP=${CC} -M -std=c++11
- PLATFORM_C=../../platform/c++11/src/nsync_semaphore_mutex.cc \
+ PLATFORM_C=../../platform/linux/src/nsync_semaphore_futex.c \
../../platform/c++11/src/per_thread_waiter.cc \
../../platform/c++11/src/yield.cc \
../../platform/c++11/src/time_rep_timespec.cc \
../../platform/c++11/src/nsync_panic.cc
- PLATFORM_OBJS=nsync_semaphore_mutex.o per_thread_waiter.o yield.o \
+ PLATFORM_OBJS=nsync_semaphore_futex.o per_thread_waiter.o yield.o \
time_rep_timespec.o nsync_panic.o
TEST_PLATFORM_C=../../platform/c++11/src/start_thread.cc
TEST_PLATFORM_OBJS=start_thread.o
diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index db70e4515b..cf1611a883 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -388,11 +388,11 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
tf_http_archive(
name = "nsync",
urls = [
- "https://mirror.bazel.build/github.com/google/nsync/archive/8502189abfa44c249c01c2cad64e6ed660a9a668.tar.gz",
- "https://github.com/google/nsync/archive/8502189abfa44c249c01c2cad64e6ed660a9a668.tar.gz",
+ "https://mirror.bazel.build/github.com/google/nsync/archive/0559ce013feac8db639ee1bf776aca0325d28777.tar.gz",
+ "https://github.com/google/nsync/archive/0559ce013feac8db639ee1bf776aca0325d28777.tar.gz",
],
- sha256 = "51f81ff4202bbb820cdbedc061bd2eb6765f2b5c06489e7a8694bedac329e8f8",
- strip_prefix = "nsync-8502189abfa44c249c01c2cad64e6ed660a9a668",
+ sha256 = "6284454c5cd8b1dae2eeb8cf5eb63004de930b5427ed5f6b1aa793513df6b361",
+ strip_prefix = "nsync-0559ce013feac8db639ee1bf776aca0325d28777",
)
tf_http_archive(