Back out "Revert D17908478: Switch PyTorch/Caffe2 to C++14"

Summary: Original commit changeset: 775d2e29be0b

Test Plan: CI

Reviewed By: mruberry

Differential Revision: D18775520

fbshipit-source-id: a350b3f86b66d97241f208786ee67e9a51172eac
This commit is contained in:
Sebastian Messmer 2019-12-03 14:29:00 -08:00 committed by Facebook Github Bot
parent aff693ab1c
commit bc2e6d10fa
24 changed files with 92 additions and 86 deletions

View File

@ -30,7 +30,7 @@ endif()
set(CMAKE_INSTALL_MESSAGE NEVER)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
if (NOT MSVC)
set(CMAKE_C_STANDARD 11)
endif()
@ -417,8 +417,8 @@ if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.0
endif()
# ---[ Build flags
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
if(NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")

View File

@ -650,7 +650,7 @@ two dynamic libraries, one linking with the other:
```CMake
project(myproject CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
add_library(foo SHARED foo.cpp)
add_library(bar SHARED bar.cpp)
# NB: don't forget to __declspec(dllexport) at least one symbol from foo,

View File

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.4.1)
project(pytorch_jni CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(TRACE_ENABLED OFF)

View File

@ -121,9 +121,9 @@ endif()
if (UNIX)
add_definitions (-DUSE_PTHREAD)
check_cxx_compiler_flag ("-std=c++11" SUPPORTS_STDCXX11)
if (SUPPORTS_STDCXX11)
set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
check_cxx_compiler_flag ("-std=c++14" SUPPORTS_STDCXX14)
if (SUPPORTS_STDCXX14)
set (CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS}")
endif ()
check_cxx_compiler_flag ("-mrtm -Werror" SUPPORTS_MRTM)

View File

@ -246,8 +246,8 @@ ELSE()
MESSAGE(FATAL_ERROR "Unsupported QNNPACK library type \"${PYTORCH_QNNPACK_LIBRARY_TYPE}\". Must be \"static\", \"shared\", or \"default\"")
ENDIF()
SET_TARGET_PROPERTIES(pytorch_qnnpack PROPERTIES
CXX_STANDARD 11
C_STANDARD 99
CXX_STANDARD 14
C_STANDARD 11
C_EXTENSIONS YES)
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7")
SET_PROPERTY(SOURCE ${PYTORCH_QNNPACK_ARM_NEON_UKERNELS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O2 -marm -mfpu=neon ")
@ -367,7 +367,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
# ---[ Build unit tests for high-level functionality
ADD_EXECUTABLE(convolution-test test/convolution.cc)
SET_TARGET_PROPERTIES(convolution-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(convolution-test PRIVATE src test)
@ -376,7 +376,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(deconvolution-test test/deconvolution.cc)
SET_TARGET_PROPERTIES(deconvolution-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(deconvolution-test PRIVATE src test)
@ -385,7 +385,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(fully-connected-test test/fully-connected.cc)
SET_TARGET_PROPERTIES(fully-connected-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(fully-connected-test PRIVATE src test)
@ -394,7 +394,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(channel-shuffle-test test/channel-shuffle.cc)
SET_TARGET_PROPERTIES(channel-shuffle-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(channel-shuffle-test PRIVATE src test)
@ -403,7 +403,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(add-test test/add.cc)
SET_TARGET_PROPERTIES(add-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(add-test PRIVATE src test)
@ -412,7 +412,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(leaky-relu-test test/leaky-relu.cc)
SET_TARGET_PROPERTIES(leaky-relu-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(leaky-relu-test PRIVATE src test)
@ -421,7 +421,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(sigmoid-test test/sigmoid.cc)
SET_TARGET_PROPERTIES(sigmoid-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(sigmoid-test PRIVATE src test)
@ -430,7 +430,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(clamp-test test/clamp.cc)
SET_TARGET_PROPERTIES(clamp-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(clamp-test PRIVATE src test)
@ -439,7 +439,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(softargmax-test test/softargmax.cc)
SET_TARGET_PROPERTIES(softargmax-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(softargmax-test PRIVATE src test)
@ -448,7 +448,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(max-pooling-test test/max-pooling.cc)
SET_TARGET_PROPERTIES(max-pooling-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(max-pooling-test PRIVATE src test)
@ -457,7 +457,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(average-pooling-test test/average-pooling.cc)
SET_TARGET_PROPERTIES(average-pooling-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(average-pooling-test PRIVATE src test)
@ -466,7 +466,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(global-average-pooling-test test/global-average-pooling.cc)
SET_TARGET_PROPERTIES(global-average-pooling-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(global-average-pooling-test PRIVATE src test)
@ -476,7 +476,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
# ---[ Build unit tests for micro-kernels
ADD_EXECUTABLE(q8gemm-test test/q8gemm.cc)
SET_TARGET_PROPERTIES(q8gemm-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8gemm-test PRIVATE src test)
@ -485,7 +485,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(q8conv-test test/q8conv.cc)
SET_TARGET_PROPERTIES(q8conv-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8conv-test PRIVATE src test)
@ -494,7 +494,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(q8dwconv-test test/q8dwconv.cc)
SET_TARGET_PROPERTIES(q8dwconv-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8dwconv-test PRIVATE src test)
@ -503,7 +503,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(q8vadd-test test/q8vadd.cc)
SET_TARGET_PROPERTIES(q8vadd-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8vadd-test PRIVATE src test)
@ -512,7 +512,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(q8avgpool-test test/q8avgpool.cc)
SET_TARGET_PROPERTIES(q8avgpool-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8avgpool-test PRIVATE src test)
@ -521,7 +521,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(q8gavgpool-test test/q8gavgpool.cc)
SET_TARGET_PROPERTIES(q8gavgpool-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8gavgpool-test PRIVATE src test)
@ -530,7 +530,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(u8maxpool-test test/u8maxpool.cc)
SET_TARGET_PROPERTIES(u8maxpool-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(u8maxpool-test PRIVATE src test)
@ -539,7 +539,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(u8clamp-test test/u8clamp.cc)
SET_TARGET_PROPERTIES(u8clamp-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(u8clamp-test PRIVATE src test)
@ -548,7 +548,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(u8rmax-test test/u8rmax.cc)
SET_TARGET_PROPERTIES(u8rmax-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(u8rmax-test PRIVATE src test)
@ -557,7 +557,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(u8lut32norm-test test/u8lut32norm.cc)
SET_TARGET_PROPERTIES(u8lut32norm-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(u8lut32norm-test PRIVATE src test)
@ -566,7 +566,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(x8lut-test test/x8lut.cc)
SET_TARGET_PROPERTIES(x8lut-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(x8lut-test PRIVATE src test)
@ -575,7 +575,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(x8zip-test test/x8zip.cc)
SET_TARGET_PROPERTIES(x8zip-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(x8zip-test PRIVATE src test)
@ -584,7 +584,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(hgemm-test test/hgemm.cc)
SET_TARGET_PROPERTIES(hgemm-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(hgemm-test PRIVATE src test)
@ -593,7 +593,7 @@ IF(PYTORCH_QNNPACK_BUILD_TESTS)
ADD_EXECUTABLE(sgemm-test test/sgemm.cc)
SET_TARGET_PROPERTIES(sgemm-test PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(sgemm-test PRIVATE src test)
@ -613,63 +613,63 @@ IF(PYTORCH_QNNPACK_BUILD_BENCHMARKS)
ADD_EXECUTABLE(add-bench bench/add.cc)
SET_TARGET_PROPERTIES(add-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(add-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(average-pooling-bench bench/average-pooling.cc)
SET_TARGET_PROPERTIES(average-pooling-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(average-pooling-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(channel-shuffle-bench bench/channel-shuffle.cc)
SET_TARGET_PROPERTIES(channel-shuffle-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(channel-shuffle-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(convolution-bench bench/convolution.cc)
SET_TARGET_PROPERTIES(convolution-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(convolution-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(global-average-pooling-bench bench/global-average-pooling.cc)
SET_TARGET_PROPERTIES(global-average-pooling-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(max-pooling-bench bench/max-pooling.cc)
SET_TARGET_PROPERTIES(max-pooling-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(max-pooling-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(sigmoid-bench bench/sigmoid.cc)
SET_TARGET_PROPERTIES(sigmoid-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(softargmax-bench bench/softargmax.cc)
SET_TARGET_PROPERTIES(softargmax-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_LINK_LIBRARIES(softargmax-bench PRIVATE pytorch_qnnpack benchmark)
ADD_EXECUTABLE(q8gemm-bench bench/q8gemm.cc)
SET_TARGET_PROPERTIES(q8gemm-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(q8gemm-bench PRIVATE src)
@ -678,7 +678,7 @@ IF(PYTORCH_QNNPACK_BUILD_BENCHMARKS)
ADD_EXECUTABLE(hgemm-bench bench/hgemm.cc)
SET_TARGET_PROPERTIES(hgemm-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(hgemm-bench PRIVATE src)
@ -686,7 +686,7 @@ IF(PYTORCH_QNNPACK_BUILD_BENCHMARKS)
ADD_EXECUTABLE(sgemm-bench bench/sgemm.cc)
SET_TARGET_PROPERTIES(sgemm-bench PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
TARGET_INCLUDE_DIRECTORIES(sgemm-bench PRIVATE src)

View File

@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 3.0)
find_package(ATen REQUIRED)
include_directories(${ATEN_INCLUDE_DIR})
# C++11
if (not MSVC)
set(CMAKE_CXX_FLAGS "--std=c++11 ${CMAKE_CXX_FLAGS}")
# C++14
if (not MSVC)
set(CMAKE_CXX_FLAGS "--std=c++14 ${CMAKE_CXX_FLAGS}")
endif()
add_executable(main main.cpp)
target_link_libraries(main ${ATEN_LIBRARIES})

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(c10 CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Main build file for the C10 library.

View File

@ -11,12 +11,15 @@
#include <functional>
#include <c10/macros/Macros.h>
#if !defined(__clang__) && !defined(_MSC_VER) && defined(__GNUC__) && \
__GNUC__ < 5
#error "You're trying to build PyTorch with a too old version of GCC. We need GCC 5 or later."
#endif
#if (defined(_MSC_VER) && (!defined(_MSVC_LANG) || _MSVC_LANG < 201402L)) || (!defined(_MSC_VER) && __cplusplus < 201402L)
#error You need C++14 to compile PyTorch
#endif
/*
* This header adds some polyfills with C++14 and C++17 functionality
*/

View File

@ -136,7 +136,7 @@ bool DeformConvOp<T, Context>::RunOnDeviceWithOrderNCHW() {
bias_data = Input(BIAS).template data<T>();
}
auto f = [&](Tensor* col_buffer) {
auto f = [this, &filter_offset, &bias_data, &X, &buffer_shape, &N, &Xdata, &offset_data, &M, &filter, &output_image_size, &kernel_dim, &Ydata, &input_offset, &offset_offset, &output_offset] (Tensor* col_buffer) {
col_buffer->Resize(buffer_shape);
T* col_buffer_data = col_buffer->template mutable_data<T>();
// Im2col, followed by gemm.

View File

@ -965,6 +965,7 @@ if(USE_ROCM)
list(APPEND HIP_CXX_FLAGS -Wno-implicit-int-float-conversion)
list(APPEND HIP_CXX_FLAGS -DCAFFE2_USE_MIOPEN)
list(APPEND HIP_CXX_FLAGS -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_HIP)
list(APPEND HIP_CXX_FLAGS -std=c++14)
if(CMAKE_BUILD_TYPE MATCHES Debug)
list(APPEND HIP_CXX_FLAGS -g)
@ -1237,7 +1238,7 @@ if (NOT INTERN_BUILD_MOBILE)
LIST(APPEND CUDA_NVCC_FLAGS --expt-extended-lambda)
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD 14)
endif()
LIST(APPEND CUDA_NVCC_FLAGS ${TORCH_NVCC_FLAGS})

View File

@ -63,7 +63,7 @@ if (NOT INTERN_BUILD_MOBILE)
# ---[ Check if certain std functions are supported. Sometimes
# _GLIBCXX_USE_C99 macro is not defined and some functions are missing.
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
set(CMAKE_REQUIRED_FLAGS "-std=c++14")
CHECK_CXX_SOURCE_COMPILES("
#include <cmath>
#include <string>
@ -90,7 +90,7 @@ endif()
# ---[ Check if std::exception_ptr is supported.
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
set(CMAKE_REQUIRED_FLAGS "-std=c++14")
CHECK_CXX_SOURCE_COMPILES(
"#include <string>
#include <exception>
@ -114,7 +114,7 @@ cmake_pop_check_state()
# ---[ Check for NUMA support
if (USE_NUMA)
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
set(CMAKE_REQUIRED_FLAGS "-std=c++14")
CHECK_CXX_SOURCE_COMPILES(
"#include <numa.h>
#include <numaif.h>
@ -139,7 +139,7 @@ endif()
# are building under. If yes, we will turn off deprecation warning for a
# cleaner build output.
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
set(CMAKE_REQUIRED_FLAGS "-std=c++14")
CHECK_CXX_SOURCE_COMPILES(
"#include <glog/stl_logging.h>
int main(int argc, char** argv) {

View File

@ -1419,7 +1419,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
else()
set(CUDA_HOST_SHARED_FLAGS)
endif()
macro(_filter_blacklisted_host_flags CUDA_FLAGS)
string(REGEX REPLACE "[ \t]+" ";" ${CUDA_FLAGS} "${${CUDA_FLAGS}}")
foreach(_blacklisted ${CUDA_PROPAGATE_HOST_FLAGS_BLACKLIST})
@ -1475,14 +1475,14 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
# Process the C++11 flag. If the host sets the flag, we need to add it to nvcc and
# remove it from the host. This is because -Xcompile -std=c++ will choke nvcc (it uses
# the C preprocessor). In order to get this to work correctly, we need to use nvcc's
# specific c++11 flag.
# specific c++14 flag.
if( "${_cuda_host_flags}" MATCHES "-std=c\\+\\+11")
# Add the c++11 flag to nvcc if it isn't already present. Note that we only look at
# Add the c++14 flag to nvcc if it isn't already present. Note that we only look at
# the main flag instead of the configuration specific flags.
if( NOT "${CUDA_NVCC_FLAGS}" MATCHES "-std=c\\+\\+11" )
list(APPEND nvcc_flags --std c++11)
if( NOT "${CUDA_NVCC_FLAGS}" MATCHES "-std=c\\+\\+14" )
list(APPEND nvcc_flags --std c++14)
endif()
string(REGEX REPLACE "[-]+std=c\\+\\+11" "" _cuda_host_flags "${_cuda_host_flags}")
string(REGEX REPLACE "[-]+std=c\\+\\+14" "" _cuda_host_flags "${_cuda_host_flags}")
endif()
if(_cuda_build_shared_libs)

View File

@ -113,7 +113,7 @@ find_library(TORCH_LIBRARY torch PATHS "${TORCH_INSTALL_PREFIX}/lib")
set_target_properties(torch PROPERTIES
IMPORTED_LOCATION "${TORCH_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${TORCH_INCLUDE_DIRS}"
CXX_STANDARD 11
CXX_STANDARD 14
)
if (TORCH_CXX_FLAGS)
set_property(TARGET torch PROPERTY INTERFACE_COMPILE_OPTIONS "${TORCH_CXX_FLAGS}")

View File

@ -401,12 +401,12 @@ foreach(diag cc_clobber_ignored integer_sign_change useless_using_declaration se
list(APPEND CUDA_NVCC_FLAGS -Xcudafe --diag_suppress=${diag})
endforeach()
# Set C++11 support
# Set C++14 support
set(CUDA_PROPAGATE_HOST_FLAGS_BLACKLIST "-Werror")
if (MSVC)
list(APPEND CUDA_PROPAGATE_HOST_FLAGS_BLACKLIST "/EHa")
else()
list(APPEND CUDA_NVCC_FLAGS "-std=c++11")
list(APPEND CUDA_NVCC_FLAGS "-std=c++14")
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler" "-fPIC")
endif()

View File

@ -218,7 +218,7 @@ endmacro()
# Usage:
# torch_compile_options(lib_name)
function(torch_compile_options libname)
set_property(TARGET ${libname} PROPERTY CXX_STANDARD 11)
set_property(TARGET ${libname} PROPERTY CXX_STANDARD 14)
if (NOT INTERN_BUILD_MOBILE OR NOT BUILD_CAFFE2_MOBILE)
# until they can be unified, keep these lists synced with setup.py
@ -250,7 +250,7 @@ function(torch_compile_options libname)
)
else()
target_compile_options(${libname} PUBLIC
# -std=c++11
# -std=c++14
-Wall
-Wextra
-Wno-unused-parameter

View File

@ -38,7 +38,7 @@ this:
add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 11)
set_property(TARGET example-app PROPERTY CXX_STANDARD 14)
# The following code block is suggested to be used on Windows.
# According to https://github.com/pytorch/pytorch/issues/25457,

View File

@ -18,19 +18,19 @@ Pod::Spec.new do |s|
end
s.subspec 'Torch' do |ss|
ss.header_mappings_dir = 'install/include/'
ss.preserve_paths = 'install/include/**/*.{h,cpp,cc,c}'
ss.preserve_paths = 'install/include/**/*.{h,cpp,cc,c}'
ss.vendored_libraries = 'install/lib/*.a'
ss.libraries = ['c++', 'stdc++']
end
s.user_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch/install/include/"',
'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch/install/include/"',
'OTHER_LDFLAGS' => '-force_load "$(PODS_ROOT)/LibTorch/install/lib/libtorch.a"',
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11',
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14',
'CLANG_CXX_LIBRARY' => 'libc++'
}
s.pod_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch/install/include/"',
'VALID_ARCHS' => 'x86_64 arm64'
s.pod_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch/install/include/"',
'VALID_ARCHS' => 'x86_64 arm64'
}
s.library = ['c++', 'stdc++']
end

View File

@ -586,7 +586,7 @@ def configure_extension_build():
else:
extra_link_args = []
extra_compile_args = [
'-std=c++11',
'-std=c++14',
'-Wall',
'-Wextra',
'-Wno-strict-overflow',

View File

@ -5,6 +5,7 @@ project(custom_ops)
find_package(Torch REQUIRED)
add_library(custom_ops SHARED op.cpp)
set_property(TARGET custom_ops PROPERTY CXX_STANDARD 14)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/pybind11/ ./pybind11)
pybind11_add_module(custom_class SHARED classes.cpp)
@ -15,4 +16,5 @@ target_link_libraries(custom_ops "${TORCH_LIBRARIES}")
target_compile_definitions(custom_ops PRIVATE custom_ops_EXPORTS)
add_executable(test_custom_ops test_custom_ops.cpp)
set_property(TARGET test_custom_ops PROPERTY CXX_STANDARD 14)
target_link_libraries(test_custom_ops custom_ops)

View File

@ -235,7 +235,7 @@ static const std::string compile_string =
#ifndef __PPC64__
// "-march=native "
#endif
"-std=c++11 -fPIC ${fopenmp} -shared \"${cpp_file}\" -o \"${so_file}\" -lm";
"-std=c++14 -fPIC ${fopenmp} -shared \"${cpp_file}\" -o \"${so_file}\" -lm";
#endif
static void runCompiler(
const std::string& cpp_file,

View File

@ -114,7 +114,7 @@ FusedKernelCUDA::FusedKernelCUDA(
const std::string compute = "--gpu-architecture=compute_" +
std::to_string(major) + std::to_string(minor);
const std::vector<const char*> args = {
"--std=c++11", compute.c_str(), "-default-device"};
"--std=c++14", compute.c_str(), "-default-device"};
#endif
const auto result =
nvrtc().nvrtcCompileProgram(program, args.size(), args.data());

View File

@ -77,7 +77,7 @@ endif()
add_library(c10d STATIC ${C10D_SRCS})
set_property(TARGET c10d PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET c10d PROPERTY CXX_STANDARD 11)
set_property(TARGET c10d PROPERTY CXX_STANDARD 14)
target_compile_options(c10d PUBLIC
-Wall
-Wextra

View File

@ -17,9 +17,9 @@ IF(MSVC)
ENDIF(MSVC)
IF (CMAKE_VERSION VERSION_LESS "3.1")
SET(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS}")
ELSE ()
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD 14)
ENDIF ()
ADD_LIBRARY(shm SHARED core.cpp)

View File

@ -227,7 +227,7 @@ class BuildExtension(build_ext, object):
A custom :mod:`setuptools` build extension .
This :class:`setuptools.build_ext` subclass takes care of passing the
minimum required compiler flags (e.g. ``-std=c++11``) as well as mixed
minimum required compiler flags (e.g. ``-std=c++14``) as well as mixed
C++/CUDA compilation (and support for CUDA files in general).
When using :class:`BuildExtension`, it is allowed to supply a dictionary
@ -291,7 +291,7 @@ class BuildExtension(build_ext, object):
# NVCC does not allow multiple -std to be passed, so we avoid
# overriding the option if the user explicitly passed it.
if not any(flag.startswith('-std=') for flag in cflags):
cflags.append('-std=c++11')
cflags.append('-std=c++14')
original_compile(obj, src, ext, cc_args, cflags, pp_opts)
finally:
@ -1143,7 +1143,7 @@ def _write_ninja_file(path,
from distutils.spawn import _nt_quote_args
cflags = _nt_quote_args(cflags)
else:
cflags = common_cflags + ['-fPIC', '-std=c++11'] + extra_cflags
cflags = common_cflags + ['-fPIC', '-std=c++14'] + extra_cflags
flags = ['cflags = {}'.format(' '.join(cflags))]
if with_cuda:
@ -1157,7 +1157,7 @@ def _write_ninja_file(path,
cuda_flags += ['--compiler-options', "'-fPIC'"]
cuda_flags += extra_cuda_cflags
if not any(flag.startswith('-std=') for flag in cuda_flags):
cuda_flags.append('-std=c++11')
cuda_flags.append('-std=c++14')
flags.append('cuda_flags = {}'.format(' '.join(cuda_flags)))