diff options
Diffstat (limited to 'sci-libs/caffe2/files')
5 files changed, 410 insertions, 0 deletions
diff --git a/sci-libs/caffe2/files/caffe2-2.4.0-exclude-aotriton.patch b/sci-libs/caffe2/files/caffe2-2.4.0-exclude-aotriton.patch new file mode 100644 index 000000000000..72ab792b2278 --- /dev/null +++ b/sci-libs/caffe2/files/caffe2-2.4.0-exclude-aotriton.patch @@ -0,0 +1,65 @@ +Disables aotriton download when both USE_FLASH_ATTENTION and USE_MEM_EFF_ATTENTION cmake flags are OFF +Backports upstream PR to 2.3.0: https://github.com/pytorch/pytorch/pull/130197 +--- a/aten/src/ATen/native/transformers/cuda/sdp_utils.cpp ++++ b/aten/src/ATen/native/transformers/cuda/sdp_utils.cpp +@@ -24,7 +24,7 @@ + #include <c10/core/SymInt.h> + #include <c10/util/string_view.h> + +-#if USE_ROCM ++#if defined(USE_ROCM) && (defined(USE_MEM_EFF_ATTENTION) || defined(USE_FLASH_ATTENTION)) + #include <aotriton/flash.h> + #endif + +@@ -207,7 +207,7 @@ bool check_flash_attention_hardware_support(sdp_params const& params, bool debug + // Check that the gpu is capable of running flash attention + using sm80 = SMVersion<8, 0>; + using sm90 = SMVersion<9, 0>; +-#if USE_ROCM ++#if defined(USE_ROCM) && defined(USE_FLASH_ATTENTION) + auto stream = at::cuda::getCurrentCUDAStream().stream(); + if (hipSuccess != aotriton::v2::flash::check_gpu(stream)) { + auto dprops = at::cuda::getCurrentDeviceProperties(); +@@ -238,7 +238,7 @@ bool check_mem_efficient_hardware_support(sdp_params const& params, bool debug) + // Mem Efficient attention supports hardware in the range [sm_50, sm_90] + using sm50 = SMVersion<5, 0>; + using sm90 = SMVersion<9, 0>; +-#if USE_ROCM ++#if defined(USE_ROCM) && defined(USE_MEM_EFF_ATTENTION) + auto stream = at::cuda::getCurrentCUDAStream().stream(); + if (hipSuccess != aotriton::v2::flash::check_gpu(stream)) { + auto dprops = at::cuda::getCurrentDeviceProperties(); +@@ -623,7 +623,7 @@ bool can_use_mem_efficient_attention(sdp_params const& params, bool debug) { + array_of<at::ScalarType>(at::kHalf, at::kFloat, at::kBFloat16); + constexpr auto less_than_sm80_mem_efficient_dtypes = + array_of<at::ScalarType>(at::kHalf, at::kFloat); +-#ifdef USE_ROCM ++#if defined(USE_ROCM) && defined(USE_MEM_EFF_ATTENTION) + constexpr auto aotriton_mem_efficient_dtypes = + array_of<at::ScalarType>(at::kHalf, at::kFloat, at::kBFloat16); + #endif +@@ -668,7 +668,7 @@ bool can_use_mem_efficient_attention(sdp_params const& params, bool debug) { + } + } + +-#ifdef USE_ROCM ++#if defined(USE_ROCM) && defined(USE_MEM_EFF_ATTENTION) + return check_tensor_dtype(params, aotriton_mem_efficient_dtypes, debug); + #else + auto dprop = at::cuda::getCurrentDeviceProperties(); +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -1095,10 +1095,12 @@ if(USE_ROCM) + message(STATUS "Disabling Kernel Assert for ROCm") + endif() + +- include(${CMAKE_CURRENT_LIST_DIR}/External/aotriton.cmake) + if(USE_CUDA) + caffe2_update_option(USE_MEM_EFF_ATTENTION OFF) + endif() ++ if(USE_FLASH_ATTENTION OR USE_MEM_EFF_ATTENTION) ++ include(${CMAKE_CURRENT_LIST_DIR}/External/aotriton.cmake) ++ endif() + else() + caffe2_update_option(USE_ROCM OFF) + endif() diff --git a/sci-libs/caffe2/files/caffe2-2.4.0-fix-openmp-link.patch b/sci-libs/caffe2/files/caffe2-2.4.0-fix-openmp-link.patch new file mode 100644 index 000000000000..9b0fe0b97c0f --- /dev/null +++ b/sci-libs/caffe2/files/caffe2-2.4.0-fix-openmp-link.patch @@ -0,0 +1,14 @@ +Fix "undefined symbol: omp_get_max_active_levels" in mkl + <nothing else> builds +https://github.com/pytorch/pytorch/issues/116576 +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -1643,6 +1643,9 @@ if(BUILD_SHARED_LIBS) + if(CAFFE2_USE_MKL) + target_link_libraries(torch_global_deps caffe2::mkl) + endif() ++ if(USE_OPENMP) ++ target_link_libraries(torch_global_deps OpenMP::OpenMP_CXX) ++ endif() + # The CUDA libraries are linked here for a different reason: in some + # cases we load these libraries with ctypes, and if they weren't opened + # with RTLD_GLOBAL, we'll do the "normal" search process again (and diff --git a/sci-libs/caffe2/files/caffe2-2.4.0-gentoo.patch b/sci-libs/caffe2/files/caffe2-2.4.0-gentoo.patch new file mode 100644 index 000000000000..d592a346386b --- /dev/null +++ b/sci-libs/caffe2/files/caffe2-2.4.0-gentoo.patch @@ -0,0 +1,211 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -966,12 +966,11 @@ endif() + # third_party/FBGEMM + include(cmake/public/utils.cmake) + if(NOT MSVC) +- string(APPEND CMAKE_CXX_FLAGS " -O2 -fPIC") ++ string(APPEND CMAKE_CXX_FLAGS " -O2") + # Eigen fails to build with some versions, so convert this to a warning + # Details at http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1459 + string(APPEND CMAKE_CXX_FLAGS " -Wall") + string(APPEND CMAKE_CXX_FLAGS " -Wextra") +- append_cxx_flag_if_supported("-Werror=return-type" CMAKE_CXX_FLAGS) + append_cxx_flag_if_supported("-Werror=non-virtual-dtor" CMAKE_CXX_FLAGS) + append_cxx_flag_if_supported("-Werror=braced-scalar-init" CMAKE_CXX_FLAGS) + append_cxx_flag_if_supported("-Werror=range-loop-construct" CMAKE_CXX_FLAGS) +@@ -1074,7 +1073,6 @@ if(NOT MSVC) + string(APPEND CMAKE_LINKER_FLAGS_DEBUG " -fno-omit-frame-pointer -O0") + append_cxx_flag_if_supported("-fno-math-errno" CMAKE_CXX_FLAGS) + append_cxx_flag_if_supported("-fno-trapping-math" CMAKE_CXX_FLAGS) +- append_cxx_flag_if_supported("-Werror=format" CMAKE_CXX_FLAGS) + else() + # skip unwanted includes from windows.h + add_compile_definitions(WIN32_LEAN_AND_MEAN) +--- a/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt ++++ b/aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt +@@ -324,16 +324,8 @@ set_target_properties(pytorch_qnnpack PROPERTIES PUBLIC_HEADER include/pytorch_q + set_target_properties(pytorch_qnnpack PROPERTIES PUBLIC_HEADER include/qnnpack_func.h) + + # ---[ Configure clog +-if(NOT TARGET clog) +- set(CLOG_BUILD_TESTS OFF CACHE BOOL "") +- set(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "") +- add_subdirectory( +- "${CLOG_SOURCE_DIR}" +- "${CONFU_DEPENDENCIES_BINARY_DIR}/clog") +- # We build static version of clog but a dynamic library may indirectly depend on it +- set_property(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON) +-endif() +-target_link_libraries(pytorch_qnnpack PUBLIC clog) ++find_library(CLOG_LIBRARY NAMES clog REQUIRED) ++target_link_libraries(pytorch_qnnpack PUBLIC ${CLOG_LIBRARY}) + + # ---[ Configure cpuinfo + if(NOT TARGET cpuinfo AND USE_SYSTEM_CPUINFO) +--- a/c10/CMakeLists.txt ++++ b/c10/CMakeLists.txt +@@ -94,7 +94,7 @@ if(NOT BUILD_LIBTORCHLESS) + if(C10_USE_GLOG) + target_link_libraries(c10 PUBLIC glog::glog) + endif() +- target_link_libraries(c10 PRIVATE fmt::fmt-header-only) ++ target_link_libraries(c10 PRIVATE fmt) + + if(C10_USE_NUMA) + message(STATUS "NUMA paths:") +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -87,7 +87,7 @@ endif() + # Note: the folders that are being commented out have not been properly + # addressed yet. + +-if(NOT MSVC AND USE_XNNPACK) ++if(FALSE) + if(NOT TARGET fxdiv) + set(FXDIV_BUILD_TESTS OFF CACHE BOOL "") + set(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") +@@ -1075,7 +1075,6 @@ if(USE_XPU) + endif() + + if(NOT MSVC AND USE_XNNPACK) +- TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv) + endif() + + # ========================================================== +@@ -1178,8 +1177,7 @@ target_include_directories(torch_cpu PRIVATE + target_include_directories(torch_cpu PRIVATE + ${TORCH_ROOT}/third_party/miniz-2.1.0) + +-target_include_directories(torch_cpu PRIVATE +- ${TORCH_ROOT}/third_party/kineto/libkineto/include) ++target_include_directories(torch_cpu PRIVATE /usr/include/kineto) + + if(USE_KINETO) + target_include_directories(torch_cpu PRIVATE +--- a/cmake/Codegen.cmake ++++ b/cmake/Codegen.cmake +@@ -57,7 +57,7 @@ if(INTERN_BUILD_ATEN_OPS) + if(MSVC) + set(OPT_FLAG "/fp:strict ") + else(MSVC) +- set(OPT_FLAG "-O3 ") ++ set(OPT_FLAG " ") + if("${CMAKE_BUILD_TYPE}" MATCHES "Debug") + set(OPT_FLAG " ") + endif() +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -466,7 +466,9 @@ if(USE_PYTORCH_QNNPACK) + set_property(TARGET pytorch_qnnpack PROPERTY POSITION_INDEPENDENT_CODE ON) + set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON) + # QNNPACK depends on gemmlowp headers +- target_include_directories(pytorch_qnnpack PRIVATE "${CAFFE2_THIRD_PARTY_ROOT}/gemmlowp") ++ find_package(gemmlowp REQUIRED) ++ get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp::gemmlowp INTERFACE_INCLUDE_DIRECTORIES) ++ target_include_directories(pytorch_qnnpack PRIVATE ${GEMMLOWP_INCLUDE_DIRS}) + + if(PYTORCH_QNNPACK_CUSTOM_THREADPOOL) + target_compile_definitions( +@@ -705,7 +707,7 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST) + endif() + + # ---[ FBGEMM +-if(USE_FBGEMM) ++if(FALSE) + set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party") + if(NOT DEFINED FBGEMM_SOURCE_DIR) + set(FBGEMM_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/fbgemm" CACHE STRING "FBGEMM source directory") +@@ -753,6 +755,7 @@ if(USE_FBGEMM) + endif() + + if(USE_FBGEMM) ++ list(APPEND Caffe2_DEPENDENCY_LIBS fbgemm) + caffe2_update_option(USE_FBGEMM ON) + else() + caffe2_update_option(USE_FBGEMM OFF) +@@ -1288,7 +1291,6 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX) + set_target_properties(onnx_proto PROPERTIES CXX_STANDARD 17) + endif() + endif() +- add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/foxi EXCLUDE_FROM_ALL) + + add_definitions(-DONNX_NAMESPACE=${ONNX_NAMESPACE}) + if(NOT USE_SYSTEM_ONNX) +@@ -1530,7 +1532,6 @@ endif() + # + set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) + set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE) +-add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt) + + # Disable compiler feature checks for `fmt`. + # +@@ -1539,9 +1540,7 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt) + # CMAKE_CXX_FLAGS in ways that break feature checks. Since we already know + # `fmt` is compatible with a superset of the compilers that PyTorch is, it + # shouldn't be too bad to just disable the checks. +-set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "") + +-list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only) + set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE) + + # ---[ Kineto +--- a/cmake/External/nnpack.cmake ++++ b/cmake/External/nnpack.cmake +@@ -56,7 +56,7 @@ if(ANDROID OR IOS OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAM + set(PTHREADPOOL_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/pthreadpool" CACHE STRING "pthreadpool source directory") + set(GOOGLETEST_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/googletest" CACHE STRING "Google Test source directory") + +- if(NOT TARGET nnpack) ++ if(FALSE) + if(NOT USE_SYSTEM_PTHREADPOOL AND USE_INTERNAL_PTHREADPOOL_IMPL) + set(NNPACK_CUSTOM_THREADPOOL ON CACHE BOOL "") + endif() +--- a/cmake/public/utils.cmake ++++ b/cmake/public/utils.cmake +@@ -483,8 +483,6 @@ function(torch_compile_options libname) + endif() + + # Use -O2 for release builds (-O3 doesn't improve perf, and -Os results in perf regression) +- target_compile_options(${libname} PRIVATE +- $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>>>:-O2>) + + endfunction() + +--- a/functorch/CMakeLists.txt ++++ b/functorch/CMakeLists.txt +@@ -42,4 +42,4 @@ endif() + if(NOT ${TORCH_PYTHON_LINK_FLAGS} STREQUAL "") + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS ${TORCH_PYTHON_LINK_FLAGS}) + endif() +-install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}") ++install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}") +--- a/torch/CMakeLists.txt ++++ b/torch/CMakeLists.txt +@@ -59,16 +59,8 @@ set(TORCH_PYTHON_INCLUDE_DIRECTORIES + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/aten/src + ${CMAKE_BINARY_DIR}/caffe2/aten/src +- ${CMAKE_BINARY_DIR}/third_party +- ${CMAKE_BINARY_DIR}/third_party/onnx +- +- ${TORCH_ROOT}/third_party/valgrind-headers +- +- ${TORCH_ROOT}/third_party/gloo +- ${TORCH_ROOT}/third_party/onnx +- ${TORCH_ROOT}/third_party/flatbuffers/include +- ${TORCH_ROOT}/third_party/kineto/libkineto/include +- ${TORCH_ROOT}/third_party/cpp-httplib ++ ++ /usr/include/kineto + + ${TORCH_SRC_DIR}/csrc + ${TORCH_SRC_DIR}/csrc/api/include +@@ -83,7 +75,6 @@ set(TORCH_PYTHON_LINK_LIBRARIES + opentelemetry::api + httplib + shm +- fmt::fmt-header-only + ATEN_CPU_FILES_GEN_LIB) + + if(USE_ASAN AND TARGET Sanitizer::address) diff --git a/sci-libs/caffe2/files/caffe2-2.4.0-install-dirs.patch b/sci-libs/caffe2/files/caffe2-2.4.0-install-dirs.patch new file mode 100644 index 000000000000..ee6e8fb91562 --- /dev/null +++ b/sci-libs/caffe2/files/caffe2-2.4.0-install-dirs.patch @@ -0,0 +1,70 @@ +--- a/c10/CMakeLists.txt ++++ b/c10/CMakeLists.txt +@@ -157,7 +157,7 @@ if(NOT BUILD_LIBTORCHLESS) + # Note: for now, we will put all export path into one single Caffe2Targets group + # to deal with the cmake deployment need. Inside the Caffe2Targets set, the + # individual libraries like libc10.so and libcaffe2.so are still self-contained. +- install(TARGETS c10 EXPORT Caffe2Targets DESTINATION lib) ++ install(TARGETS c10 EXPORT Caffe2Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +--- a/c10/cuda/CMakeLists.txt ++++ b/c10/cuda/CMakeLists.txt +@@ -82,7 +82,7 @@ if(NOT BUILD_LIBTORCHLESS) + # Note: for now, we will put all export path into one single Caffe2Targets group + # to deal with the cmake deployment need. Inside the Caffe2Targets set, the + # individual libraries like libc10.so and libcaffe2.so are still self-contained. +-install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION lib) ++install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + endif() + +--- a/c10/hip/CMakeLists.txt ++++ b/c10/hip/CMakeLists.txt +@@ -57,7 +57,7 @@ if(NOT BUILD_LIBTORCHLESS) + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..> + $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> + $<INSTALL_INTERFACE:include>) +- install(TARGETS c10_hip EXPORT Caffe2Targets DESTINATION lib) ++ install(TARGETS c10_hip EXPORT Caffe2Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) + set(C10_HIP_LIB c10_hip) + endif() + +--- a/c10/xpu/CMakeLists.txt ++++ b/c10/xpu/CMakeLists.txt +@@ -45,7 +45,7 @@ target_include_directories( + $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> + $<INSTALL_INTERFACE:include> + ) +- install(TARGETS c10_xpu EXPORT Caffe2Targets DESTINATION lib) ++ install(TARGETS c10_xpu EXPORT Caffe2Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) + set(C10_XPU_LIB c10_xpu) + add_subdirectory(test) + endif() +--- a/test/cpp/c10d/CMakeLists.txt ++++ b/test/cpp/c10d/CMakeLists.txt +@@ -64,7 +64,7 @@ if(USE_CUDA) + torch_cpu c10d_cuda_test gtest_main __caffe2_ucc) + if(INSTALL_TEST) + install(TARGETS ProcessGroupUCCTest DESTINATION bin) +- install(TARGETS c10d_cuda_test DESTINATION lib) ++ install(TARGETS c10d_cuda_test DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif() + else() +--- a/test/cpp/jit/CMakeLists.txt ++++ b/test/cpp/jit/CMakeLists.txt +@@ -32,9 +32,9 @@ endif() + target_link_libraries(backend_with_compiler torch) + + if(INSTALL_TEST) +- install(TARGETS torchbind_test DESTINATION lib) +- install(TARGETS jitbackend_test DESTINATION lib) +- install(TARGETS backend_with_compiler DESTINATION lib) ++ install(TARGETS torchbind_test DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ install(TARGETS jitbackend_test DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ install(TARGETS backend_with_compiler DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + # Build the cpp gtest binary containing the cpp-only tests. diff --git a/sci-libs/caffe2/files/caffe2-2.4.0-rocm-fix-std-cpp17.patch b/sci-libs/caffe2/files/caffe2-2.4.0-rocm-fix-std-cpp17.patch new file mode 100644 index 000000000000..3612c3db1a0b --- /dev/null +++ b/sci-libs/caffe2/files/caffe2-2.4.0-rocm-fix-std-cpp17.patch @@ -0,0 +1,50 @@ +Fix for error: invalid argument '-std=c++17' not allowed with 'C' +https://github.com/pytorch/pytorch/issues/103222 +--- a/c10/hip/CMakeLists.txt ++++ b/c10/hip/CMakeLists.txt +@@ -36,6 +36,7 @@ if(NOT BUILD_LIBTORCHLESS) + + # Propagate HIP_CXX_FLAGS that were set from Dependencies.cmake + target_compile_options(c10_hip PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(c10_hip PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + + # caffe2_hip adds a bunch of dependencies like rocsparse, but c10/hip is supposed to be + # minimal. I'm not sure if we need hip_hcc or not; for now leave it out +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -1670,6 +1670,7 @@ if(USE_ROCM) + + # Since PyTorch files contain HIP headers, these flags are required for the necessary definitions to be added. + target_compile_options(torch_hip PUBLIC ${HIP_CXX_FLAGS}) # experiment ++ set_target_properties(torch_hip PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + + target_link_libraries(torch_hip PUBLIC c10_hip) + +@@ -1867,6 +1868,7 @@ if(BUILD_TEST) + target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>) + target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE}) + target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>) + if(INSTALL_TEST) + install(TARGETS ${test_name} DESTINATION test) +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -1050,7 +1050,6 @@ if(USE_ROCM) + list(APPEND HIP_CXX_FLAGS -Wno-duplicate-decl-specifier) + 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++17) + list(APPEND HIP_CXX_FLAGS -DHIPBLAS_V2) + if(HIP_NEW_TYPE_ENUMS) + list(APPEND HIP_CXX_FLAGS -DHIP_NEW_TYPE_ENUMS) +--- a/cmake/public/utils.cmake ++++ b/cmake/public/utils.cmake +@@ -332,6 +332,7 @@ function(caffe2_hip_binary_target target_name_or_src) + caffe2_binary_target(${target_name_or_src}) + + target_compile_options(${__target} PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(${__target} PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + target_include_directories(${__target} PRIVATE ${Caffe2_HIP_INCLUDE}) + endfunction() + |