mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
CMake script cleanup - mixed case for function names (#35589)
Summary:
Running the following code.
```bash
cmake --help-command-list |
grep -v "cmake version" |
while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(cmake/Modules/|cmake/Modules_CUDA_fix/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
```
cmake-lint is too sensitive about mixed case so I didn't switch the check on.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/35589
Differential Revision: D20735648
Pulled By: ezyang
fbshipit-source-id: a09a60a7ce921bb198575a35335faa299bd10b66
This commit is contained in:
parent
bf2b411730
commit
3bdc4a37ed
|
|
@ -72,9 +72,9 @@ if(APPLE)
|
|||
set(CMAKE_FIND_APPBUNDLE LAST)
|
||||
|
||||
# Get clang version on macOS
|
||||
EXECUTE_PROCESS( COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE clang_full_version_string )
|
||||
execute_process( COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE clang_full_version_string )
|
||||
string(REGEX REPLACE "Apple LLVM version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_VERSION_STRING ${clang_full_version_string})
|
||||
MESSAGE( STATUS "CLANG_VERSION_STRING: " ${CLANG_VERSION_STRING} )
|
||||
message( STATUS "CLANG_VERSION_STRING: " ${CLANG_VERSION_STRING} )
|
||||
|
||||
|
||||
# RPATH stuff
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ set(ATen_CUDA_DEPENDENCY_LIBS)
|
|||
set(ATen_HIP_DEPENDENCY_LIBS)
|
||||
set(ATen_PUBLIC_CUDA_DEPENDENCY_LIBS)
|
||||
set(ATen_PUBLIC_HIP_DEPENDENCY_LIBS)
|
||||
SET(ATEN_INSTALL_BIN_SUBDIR "bin" CACHE PATH "ATen install binary subdirectory")
|
||||
SET(ATEN_INSTALL_LIB_SUBDIR "lib" CACHE PATH "ATen install library subdirectory")
|
||||
SET(ATEN_INSTALL_INCLUDE_SUBDIR "include" CACHE PATH "ATen install include subdirectory")
|
||||
set(ATEN_INSTALL_BIN_SUBDIR "bin" CACHE PATH "ATen install binary subdirectory")
|
||||
set(ATEN_INSTALL_LIB_SUBDIR "lib" CACHE PATH "ATen install library subdirectory")
|
||||
set(ATEN_INSTALL_INCLUDE_SUBDIR "include" CACHE PATH "ATen install include subdirectory")
|
||||
|
||||
if(USE_CUDA)
|
||||
list(APPEND ATen_CUDA_INCLUDE ${CUDA_INCLUDE_DIRS})
|
||||
|
|
@ -51,43 +51,43 @@ list(APPEND ATen_CPU_INCLUDE ${TH_CPU_INCLUDE})
|
|||
|
||||
|
||||
# Find the HIP package, set the HIP paths, load the HIP CMake.
|
||||
IF(USE_ROCM)
|
||||
if(USE_ROCM)
|
||||
include(LoadHIP)
|
||||
if(NOT PYTORCH_FOUND_HIP)
|
||||
set(USE_ROCM OFF)
|
||||
endif()
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
# Both CUDA and ROCM are enabled and found. Report an error.
|
||||
if(USE_CUDA AND USE_ROCM)
|
||||
message(FATAL_ERROR "Both CUDA and ROCm are enabled and found. PyTorch can only be built with either of them. Please turn one off by using either USE_CUDA=OFF or USE_ROCM=OFF.")
|
||||
endif()
|
||||
|
||||
IF(MSVC)
|
||||
if(MSVC)
|
||||
# we want to respect the standard, and we are bored of those **** .
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
LIST(APPEND CUDA_NVCC_FLAGS "-Xcompiler /wd4819 -Xcompiler /wd4503 -Xcompiler /wd4190 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4275 -Xcompiler /wd4522")
|
||||
ENDIF(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler /wd4819 -Xcompiler /wd4503 -Xcompiler /wd4190 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4275 -Xcompiler /wd4522")
|
||||
endif(MSVC)
|
||||
|
||||
if(USE_ROCM)
|
||||
# TODO: AT_HIP_ENABLED (change this once we represent HIP as HIP in
|
||||
# ATen proper)
|
||||
SET(AT_CUDA_ENABLED 1)
|
||||
set(AT_CUDA_ENABLED 1)
|
||||
add_subdirectory(src/THH)
|
||||
add_subdirectory(src/THHUNN)
|
||||
message("ROCm is enabled.")
|
||||
elseif(USE_CUDA)
|
||||
SET(AT_CUDA_ENABLED 1)
|
||||
set(AT_CUDA_ENABLED 1)
|
||||
add_subdirectory(src/THC)
|
||||
add_subdirectory(src/THCUNN)
|
||||
else()
|
||||
message("disabling CUDA because USE_CUDA is set false")
|
||||
SET(AT_CUDA_ENABLED 0)
|
||||
set(AT_CUDA_ENABLED 0)
|
||||
endif()
|
||||
if(NOT USE_CUDA)
|
||||
# we still parse THCUNN even if cuda is disabled to make sure to
|
||||
# install it
|
||||
INSTALL(FILES src/THCUNN/generic/THCUNN.h DESTINATION "${ATEN_INSTALL_INCLUDE_SUBDIR}/THCUNN/generic")
|
||||
install(FILES src/THCUNN/generic/THCUNN.h DESTINATION "${ATEN_INSTALL_INCLUDE_SUBDIR}/THCUNN/generic")
|
||||
endif()
|
||||
|
||||
if(NOT USE_NNPACK)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@
|
|||
# ATEN_LIBRARIES -- list of libraries to link against
|
||||
# ATEN_FOUND -- set to 1 if found
|
||||
|
||||
SET(ATEN_FOUND 1)
|
||||
SET(ATEN_INCLUDE_DIR "@ATEN_INCLUDE_DIR@")
|
||||
SET(ATEN_LIBRARIES "@ATEN_LIBRARIES@")
|
||||
set(ATEN_FOUND 1)
|
||||
set(ATEN_INCLUDE_DIR "@ATEN_INCLUDE_DIR@")
|
||||
set(ATEN_LIBRARIES "@ATEN_LIBRARIES@")
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
||||
|
||||
IF(NOT MSVC)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-qualifiers")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-ignored-qualifiers")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-absolute-value")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-absolute-value")
|
||||
ENDIF(NOT MSVC)
|
||||
if(NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-qualifiers")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-ignored-qualifiers")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-absolute-value")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-absolute-value")
|
||||
endif(NOT MSVC)
|
||||
|
||||
# Can be compiled standalone
|
||||
IF(NOT AT_INSTALL_BIN_DIR OR NOT AT_INSTALL_LIB_DIR OR NOT AT_INSTALL_INCLUDE_DIR OR NOT AT_INSTALL_SHARE_DIR)
|
||||
SET(AT_INSTALL_BIN_DIR "bin" CACHE PATH "AT install binary subdirectory")
|
||||
SET(AT_INSTALL_LIB_DIR "lib" CACHE PATH "AT install library subdirectory")
|
||||
SET(AT_INSTALL_INCLUDE_DIR "include" CACHE PATH "AT install include subdirectory")
|
||||
SET(AT_INSTALL_SHARE_DIR "share" CACHE PATH "AT install include subdirectory")
|
||||
ENDIF()
|
||||
if(NOT AT_INSTALL_BIN_DIR OR NOT AT_INSTALL_LIB_DIR OR NOT AT_INSTALL_INCLUDE_DIR OR NOT AT_INSTALL_SHARE_DIR)
|
||||
set(AT_INSTALL_BIN_DIR "bin" CACHE PATH "AT install binary subdirectory")
|
||||
set(AT_INSTALL_LIB_DIR "lib" CACHE PATH "AT install library subdirectory")
|
||||
set(AT_INSTALL_INCLUDE_DIR "include" CACHE PATH "AT install include subdirectory")
|
||||
set(AT_INSTALL_SHARE_DIR "share" CACHE PATH "AT install include subdirectory")
|
||||
endif()
|
||||
|
||||
# this flag is used in Config but set externally, we must normalize it
|
||||
# to 0/1 otherwise `#if ON` will be evaluated to false.
|
||||
|
|
@ -23,7 +23,7 @@ if(CAFFE2_STATIC_LINK_CUDA)
|
|||
else()
|
||||
set(CAFFE2_STATIC_LINK_CUDA_INT 0)
|
||||
endif()
|
||||
CONFIGURE_FILE(Config.h.in "${CMAKE_CURRENT_SOURCE_DIR}/Config.h")
|
||||
configure_file(Config.h.in "${CMAKE_CURRENT_SOURCE_DIR}/Config.h")
|
||||
# TODO: Don't unconditionally generate CUDAConfig.h.in. Unfortunately,
|
||||
# this file generates AT_ROCM_ENABLED() which is required by the miopen
|
||||
# files, which are compiled even if we are doing a vanilla CUDA build.
|
||||
|
|
@ -34,58 +34,58 @@ if(USE_ROCM)
|
|||
endif()
|
||||
|
||||
# NB: If you edit these globs, you'll have to update setup.py package_data as well
|
||||
FILE(GLOB base_h "*.h" "detail/*.h" "cpu/*.h" "cpu/vec256/*.h" "quantized/*.h")
|
||||
FILE(GLOB base_cpp "*.cpp" "detail/*.cpp" "cpu/*.cpp")
|
||||
file(GLOB base_h "*.h" "detail/*.h" "cpu/*.h" "cpu/vec256/*.h" "quantized/*.h")
|
||||
file(GLOB base_cpp "*.cpp" "detail/*.cpp" "cpu/*.cpp")
|
||||
add_subdirectory(core)
|
||||
FILE(GLOB cuda_h "cuda/*.h" "cuda/detail/*.h" "cuda/*.cuh" "cuda/detail/*.cuh")
|
||||
FILE(GLOB cuda_cpp "cuda/*.cpp" "cuda/detail/*.cpp")
|
||||
FILE(GLOB cuda_nvrtc_stub_h "cuda/nvrtc_stub/*.h")
|
||||
FILE(GLOB cuda_nvrtc_stub_cpp "cuda/nvrtc_stub/*.cpp")
|
||||
FILE(GLOB cuda_cu "cuda/*.cu" "cuda/detail/*.cu")
|
||||
FILE(GLOB cudnn_h "cudnn/*.h" "cudnn/*.cuh")
|
||||
FILE(GLOB cudnn_cpp "cudnn/*.cpp")
|
||||
file(GLOB cuda_h "cuda/*.h" "cuda/detail/*.h" "cuda/*.cuh" "cuda/detail/*.cuh")
|
||||
file(GLOB cuda_cpp "cuda/*.cpp" "cuda/detail/*.cpp")
|
||||
file(GLOB cuda_nvrtc_stub_h "cuda/nvrtc_stub/*.h")
|
||||
file(GLOB cuda_nvrtc_stub_cpp "cuda/nvrtc_stub/*.cpp")
|
||||
file(GLOB cuda_cu "cuda/*.cu" "cuda/detail/*.cu")
|
||||
file(GLOB cudnn_h "cudnn/*.h" "cudnn/*.cuh")
|
||||
file(GLOB cudnn_cpp "cudnn/*.cpp")
|
||||
|
||||
FILE(GLOB hip_h "hip/*.h" "hip/detail/*.h" "hip/*.cuh" "hip/detail/*.cuh" "hip/impl/*.h")
|
||||
FILE(GLOB hip_cpp "hip/*.cpp" "hip/detail/*.cpp" "hip/impl/*.cpp")
|
||||
FILE(GLOB hip_hip "hip/*.hip" "hip/detail/*.hip" "hip/impl/*.hip")
|
||||
FILE(GLOB hip_nvrtc_stub_h "hip/nvrtc_stub/*.h")
|
||||
FILE(GLOB hip_nvrtc_stub_cpp "hip/nvrtc_stub/*.cpp")
|
||||
FILE(GLOB miopen_h "miopen/*.h")
|
||||
FILE(GLOB miopen_cpp "miopen/*.cpp")
|
||||
file(GLOB hip_h "hip/*.h" "hip/detail/*.h" "hip/*.cuh" "hip/detail/*.cuh" "hip/impl/*.h")
|
||||
file(GLOB hip_cpp "hip/*.cpp" "hip/detail/*.cpp" "hip/impl/*.cpp")
|
||||
file(GLOB hip_hip "hip/*.hip" "hip/detail/*.hip" "hip/impl/*.hip")
|
||||
file(GLOB hip_nvrtc_stub_h "hip/nvrtc_stub/*.h")
|
||||
file(GLOB hip_nvrtc_stub_cpp "hip/nvrtc_stub/*.cpp")
|
||||
file(GLOB miopen_h "miopen/*.h")
|
||||
file(GLOB miopen_cpp "miopen/*.cpp")
|
||||
|
||||
FILE(GLOB mkl_cpp "mkl/*.cpp")
|
||||
FILE(GLOB mkldnn_cpp "mkldnn/*.cpp")
|
||||
file(GLOB mkl_cpp "mkl/*.cpp")
|
||||
file(GLOB mkldnn_cpp "mkldnn/*.cpp")
|
||||
|
||||
FILE(GLOB native_cpp "native/*.cpp")
|
||||
FILE(GLOB native_mkl_cpp "native/mkl/*.cpp")
|
||||
FILE(GLOB native_mkldnn_cpp "native/mkldnn/*.cpp")
|
||||
FILE(GLOB native_sparse_cpp "native/sparse/*.cpp")
|
||||
FILE(GLOB native_quantized_cpp
|
||||
file(GLOB native_cpp "native/*.cpp")
|
||||
file(GLOB native_mkl_cpp "native/mkl/*.cpp")
|
||||
file(GLOB native_mkldnn_cpp "native/mkldnn/*.cpp")
|
||||
file(GLOB native_sparse_cpp "native/sparse/*.cpp")
|
||||
file(GLOB native_quantized_cpp
|
||||
"native/quantized/*.cpp"
|
||||
"native/quantized/cpu/*.cpp")
|
||||
FILE(GLOB native_h "native/*.h")
|
||||
FILE(GLOB native_quantized_h "native/quantized/*.h" "native/quantized/cpu/*.h")
|
||||
FILE(GLOB native_cpu_h "native/cpu/*.h")
|
||||
file(GLOB native_h "native/*.h")
|
||||
file(GLOB native_quantized_h "native/quantized/*.h" "native/quantized/cpu/*.h")
|
||||
file(GLOB native_cpu_h "native/cpu/*.h")
|
||||
|
||||
FILE(GLOB native_cuda_cu "native/cuda/*.cu")
|
||||
FILE(GLOB native_cuda_cpp "native/cuda/*.cpp")
|
||||
FILE(GLOB native_cudnn_cpp "native/cudnn/*.cpp")
|
||||
FILE(GLOB native_sparse_cuda_cu "native/sparse/cuda/*.cu")
|
||||
FILE(GLOB native_sparse_cuda_cpp "native/sparse/cuda/*.cpp")
|
||||
FILE(GLOB native_quantized_cuda_cu "native/quantized/cuda/*.cu")
|
||||
FILE(GLOB native_quantized_cuda_cpp "native/quantized/cuda/*.cpp")
|
||||
file(GLOB native_cuda_cu "native/cuda/*.cu")
|
||||
file(GLOB native_cuda_cpp "native/cuda/*.cpp")
|
||||
file(GLOB native_cudnn_cpp "native/cudnn/*.cpp")
|
||||
file(GLOB native_sparse_cuda_cu "native/sparse/cuda/*.cu")
|
||||
file(GLOB native_sparse_cuda_cpp "native/sparse/cuda/*.cpp")
|
||||
file(GLOB native_quantized_cuda_cu "native/quantized/cuda/*.cu")
|
||||
file(GLOB native_quantized_cuda_cpp "native/quantized/cuda/*.cpp")
|
||||
|
||||
FILE(GLOB native_hip_hip "native/hip/*.hip")
|
||||
FILE(GLOB native_hip_cpp "native/hip/*.cpp")
|
||||
FILE(GLOB native_miopen_cpp "native/miopen/*.cpp")
|
||||
FILE(GLOB native_cudnn_hip_cpp "native/cudnn/hip/*.cpp")
|
||||
FILE(GLOB native_sparse_hip_hip "native/sparse/hip/*.hip")
|
||||
FILE(GLOB native_sparse_hip_cpp "native/sparse/hip/*.cpp")
|
||||
FILE(GLOB native_quantized_hip_hip "native/quantized/hip/*.hip")
|
||||
FILE(GLOB native_quantized_hip_cpp "native/quantized/hip/*.cpp")
|
||||
file(GLOB native_hip_hip "native/hip/*.hip")
|
||||
file(GLOB native_hip_cpp "native/hip/*.cpp")
|
||||
file(GLOB native_miopen_cpp "native/miopen/*.cpp")
|
||||
file(GLOB native_cudnn_hip_cpp "native/cudnn/hip/*.cpp")
|
||||
file(GLOB native_sparse_hip_hip "native/sparse/hip/*.hip")
|
||||
file(GLOB native_sparse_hip_cpp "native/sparse/hip/*.cpp")
|
||||
file(GLOB native_quantized_hip_hip "native/quantized/hip/*.hip")
|
||||
file(GLOB native_quantized_hip_cpp "native/quantized/hip/*.cpp")
|
||||
|
||||
# XNNPACK
|
||||
FILE(GLOB native_xnnpack "native/xnnpack/*.cpp")
|
||||
file(GLOB native_xnnpack "native/xnnpack/*.cpp")
|
||||
|
||||
add_subdirectory(quantized)
|
||||
set(all_cpu_cpp ${base_cpp} ${ATen_CORE_SRCS} ${native_cpp} ${native_sparse_cpp} ${native_quantized_cpp} ${native_mkl_cpp} ${native_mkldnn_cpp} ${native_xnnpack} ${generated_cpp} ${core_generated_cpp} ${ATen_CPU_SRCS} ${ATen_QUANTIZED_SRCS} ${cpu_kernel_cpp})
|
||||
|
|
@ -100,17 +100,17 @@ if(USE_CUDA AND USE_ROCM)
|
|||
message(FATAL_ERROR "ATen doesn't not currently support simultaneously building with CUDA and ROCM")
|
||||
endif()
|
||||
|
||||
IF(USE_CUDA)
|
||||
if(USE_CUDA)
|
||||
list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/cuda)
|
||||
set(ATen_CUDA_SRCS ${ATen_CUDA_SRCS} ${cuda_cu} ${native_cuda_cu} ${native_sparse_cuda_cu} ${native_quantized_cuda_cu})
|
||||
set(all_cuda_cpp ${native_sparse_cuda_cpp} ${native_quantized_cuda_cpp} ${cuda_cpp} ${native_cuda_cpp} ${cuda_generated_cpp} ${ATen_CUDA_SRCS})
|
||||
SET(all_cuda_cpp ${native_cudnn_cpp} ${native_miopen_cpp} ${all_cuda_cpp})
|
||||
IF(CAFFE2_USE_CUDNN)
|
||||
SET(all_cuda_cpp ${all_cuda_cpp} ${cudnn_cpp})
|
||||
ENDIF()
|
||||
set(all_cuda_cpp ${native_cudnn_cpp} ${native_miopen_cpp} ${all_cuda_cpp})
|
||||
if(CAFFE2_USE_CUDNN)
|
||||
set(all_cuda_cpp ${all_cuda_cpp} ${cudnn_cpp})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
IF(USE_ROCM)
|
||||
if(USE_ROCM)
|
||||
list(APPEND ATen_HIP_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/hip)
|
||||
set(ATen_HIP_SRCS ${ATen_HIP_SRCS} ${hip_hip} ${native_hip_hip} ${native_sparse_hip_hip} ${native_quantized_hip_hip})
|
||||
# TODO: Codegen separate files for HIP and use those (s/cuda_generated_cpp/hip_generated_cpp)
|
||||
|
|
@ -128,15 +128,15 @@ list(APPEND ATen_CPU_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
|||
# so the build can find the generated header files
|
||||
list(APPEND ATen_CPU_INCLUDE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
IF(USE_TBB)
|
||||
if(USE_TBB)
|
||||
message("ATen is compiled with TBB (${TBB_ROOT_DIR})")
|
||||
list(APPEND ATen_CPU_INCLUDE ${TBB_ROOT_DIR}/include)
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS tbb)
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
IF(BLAS_FOUND)
|
||||
IF($ENV{TH_BINARY_BUILD})
|
||||
MESSAGE(STATUS "TH_BINARY_BUILD detected. Enabling special linkage.")
|
||||
if(BLAS_FOUND)
|
||||
if($ENV{TH_BINARY_BUILD})
|
||||
message(STATUS "TH_BINARY_BUILD detected. Enabling special linkage.")
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS
|
||||
"${BLAS_LIBRARIES};${BLAS_LIBRARIES};${BLAS_LIBRARIES}")
|
||||
if(USE_CUDA)
|
||||
|
|
@ -147,7 +147,7 @@ IF(BLAS_FOUND)
|
|||
list(APPEND ATen_HIP_DEPENDENCY_LIBS
|
||||
"${BLAS_LIBRARIES};${BLAS_LIBRARIES};${BLAS_LIBRARIES}")
|
||||
endif()
|
||||
ELSE($ENV{TH_BINARY_BUILD})
|
||||
else($ENV{TH_BINARY_BUILD})
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS ${BLAS_LIBRARIES})
|
||||
if(USE_CUDA)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS "${BLAS_LIBRARIES}")
|
||||
|
|
@ -155,10 +155,10 @@ IF(BLAS_FOUND)
|
|||
if(USE_ROCM)
|
||||
list(APPEND ATen_HIP_DEPENDENCY_LIBS "${BLAS_LIBRARIES}")
|
||||
endif()
|
||||
ENDIF($ENV{TH_BINARY_BUILD})
|
||||
ENDIF(BLAS_FOUND)
|
||||
endif($ENV{TH_BINARY_BUILD})
|
||||
endif(BLAS_FOUND)
|
||||
|
||||
IF(LAPACK_FOUND)
|
||||
if(LAPACK_FOUND)
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS ${LAPACK_LIBRARIES})
|
||||
if(USE_CUDA)
|
||||
# Although Lapack provides CPU (and thus, one might expect that ATen_cuda
|
||||
|
|
@ -174,39 +174,39 @@ IF(LAPACK_FOUND)
|
|||
# seems safer to assume that it needs it too
|
||||
list(APPEND ATen_HIP_DEPENDENCY_LIBS ${LAPACK_LIBRARIES})
|
||||
endif()
|
||||
ENDIF(LAPACK_FOUND)
|
||||
endif(LAPACK_FOUND)
|
||||
|
||||
IF(UNIX AND NOT APPLE)
|
||||
INCLUDE(CheckLibraryExists)
|
||||
if(UNIX AND NOT APPLE)
|
||||
include(CheckLibraryExists)
|
||||
# https://github.com/libgit2/libgit2/issues/2128#issuecomment-35649830
|
||||
CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" NEED_LIBRT)
|
||||
IF(NEED_LIBRT)
|
||||
if(NEED_LIBRT)
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS rt)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} rt)
|
||||
ENDIF(NEED_LIBRT)
|
||||
ENDIF(UNIX AND NOT APPLE)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} rt)
|
||||
endif(NEED_LIBRT)
|
||||
endif(UNIX AND NOT APPLE)
|
||||
|
||||
IF(UNIX)
|
||||
SET(CMAKE_EXTRA_INCLUDE_FILES "sys/mman.h")
|
||||
if(UNIX)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "sys/mman.h")
|
||||
CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
|
||||
IF(HAVE_MMAP)
|
||||
ADD_DEFINITIONS(-DHAVE_MMAP=1)
|
||||
ENDIF(HAVE_MMAP)
|
||||
if(HAVE_MMAP)
|
||||
add_definitions(-DHAVE_MMAP=1)
|
||||
endif(HAVE_MMAP)
|
||||
# done for lseek: https://www.gnu.org/software/libc/manual/html_node/File-Position-Primitive.html
|
||||
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
|
||||
add_definitions(-D_FILE_OFFSET_BITS=64)
|
||||
CHECK_FUNCTION_EXISTS(shm_open HAVE_SHM_OPEN)
|
||||
IF(HAVE_SHM_OPEN)
|
||||
ADD_DEFINITIONS(-DHAVE_SHM_OPEN=1)
|
||||
ENDIF(HAVE_SHM_OPEN)
|
||||
if(HAVE_SHM_OPEN)
|
||||
add_definitions(-DHAVE_SHM_OPEN=1)
|
||||
endif(HAVE_SHM_OPEN)
|
||||
CHECK_FUNCTION_EXISTS(shm_unlink HAVE_SHM_UNLINK)
|
||||
IF(HAVE_SHM_UNLINK)
|
||||
ADD_DEFINITIONS(-DHAVE_SHM_UNLINK=1)
|
||||
ENDIF(HAVE_SHM_UNLINK)
|
||||
if(HAVE_SHM_UNLINK)
|
||||
add_definitions(-DHAVE_SHM_UNLINK=1)
|
||||
endif(HAVE_SHM_UNLINK)
|
||||
CHECK_FUNCTION_EXISTS(malloc_usable_size HAVE_MALLOC_USABLE_SIZE)
|
||||
IF(HAVE_MALLOC_USABLE_SIZE)
|
||||
ADD_DEFINITIONS(-DHAVE_MALLOC_USABLE_SIZE=1)
|
||||
ENDIF(HAVE_MALLOC_USABLE_SIZE)
|
||||
ENDIF(UNIX)
|
||||
if(HAVE_MALLOC_USABLE_SIZE)
|
||||
add_definitions(-DHAVE_MALLOC_USABLE_SIZE=1)
|
||||
endif(HAVE_MALLOC_USABLE_SIZE)
|
||||
endif(UNIX)
|
||||
|
||||
if(NOT MSVC)
|
||||
list(APPEND ATen_CPU_DEPENDENCY_LIBS m)
|
||||
|
|
@ -237,11 +237,11 @@ if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
|
|||
# excessively spills intermediate vector registers to the stack
|
||||
# and makes things run impossibly slowly
|
||||
set(OLD_CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
IF(${CMAKE_C_FLAGS_DEBUG} MATCHES "-O0")
|
||||
if(${CMAKE_C_FLAGS_DEBUG} MATCHES "-O0")
|
||||
string(REGEX REPLACE "-O0" "-O1" CMAKE_C_FLAGS_DEBUG ${OLD_CMAKE_C_FLAGS_DEBUG})
|
||||
ELSE()
|
||||
else()
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1")
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build sleef static" FORCE)
|
||||
set(BUILD_DFT OFF CACHE BOOL "Don't build sleef DFT lib" FORCE)
|
||||
|
|
@ -274,37 +274,37 @@ if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
|
|||
set(BUILD_TESTS ${__aten_sleef_build_tests} CACHE BOOL "Build tests" FORCE)
|
||||
endif()
|
||||
|
||||
IF(USE_CUDA AND NOT USE_ROCM)
|
||||
IF($ENV{ATEN_STATIC_CUDA})
|
||||
if(USE_CUDA AND NOT USE_ROCM)
|
||||
if($ENV{ATEN_STATIC_CUDA})
|
||||
# CuFFT has a complicated static story (especially around CUDA < 9) because it has device callback support
|
||||
# we first have to build a fake lib that links with no device callbacks,
|
||||
# and then we link against this object file.
|
||||
# This was recommended by the CuFFT team at NVIDIA
|
||||
|
||||
# build fake CuFFT lib in build dir
|
||||
EXECUTE_PROCESS(COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/empty_file.cc)
|
||||
execute_process(COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/empty_file.cc)
|
||||
if(${CUDA_VERSION_MAJOR} EQUAL "9")
|
||||
SET(CUFFT_FAKELINK_OPTIONS
|
||||
set(CUFFT_FAKELINK_OPTIONS
|
||||
--generate-code arch=compute_35,code=sm_35
|
||||
--generate-code arch=compute_50,code=sm_50
|
||||
--generate-code arch=compute_60,code=sm_60
|
||||
--generate-code arch=compute_70,code=sm_70)
|
||||
elseif(${CUDA_VERSION_MAJOR} EQUAL "10")
|
||||
SET(CUFFT_FAKELINK_OPTIONS
|
||||
set(CUFFT_FAKELINK_OPTIONS
|
||||
--generate-code arch=compute_35,code=sm_35
|
||||
--generate-code arch=compute_50,code=sm_50
|
||||
--generate-code arch=compute_60,code=sm_60
|
||||
--generate-code arch=compute_70,code=sm_70)
|
||||
else()
|
||||
MESSAGE(FATAL_ERROR "Unhandled major cuda version ${CUDA_VERSION_MAJOR}")
|
||||
message(FATAL_ERROR "Unhandled major cuda version ${CUDA_VERSION_MAJOR}")
|
||||
endif()
|
||||
ADD_CUSTOM_COMMAND(
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cufft_static_library.a
|
||||
COMMAND "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc" -o ${CMAKE_CURRENT_BINARY_DIR}/cufft_static_library.a -Xcompiler -fPIC
|
||||
${CUFFT_FAKELINK_OPTIONS}
|
||||
--device-link ${CMAKE_CURRENT_BINARY_DIR}/empty_file.cc -lcufft_static -lculibos
|
||||
)
|
||||
ADD_CUSTOM_TARGET(FAKELINKED_CUFFT_TARGET DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/cufft_static_library.a)
|
||||
add_custom_target(FAKELINKED_CUFFT_TARGET DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/cufft_static_library.a)
|
||||
add_library(FAKELINKED_CUFFT STATIC IMPORTED GLOBAL)
|
||||
add_dependencies(FAKELINKED_CUFFT FAKELINKED_CUFFT_TARGET)
|
||||
set_target_properties(FAKELINKED_CUFFT PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/cufft_static_library.a)
|
||||
|
|
@ -317,29 +317,29 @@ IF(USE_CUDA AND NOT USE_ROCM)
|
|||
FAKELINKED_CUFFT
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcufft_static.a
|
||||
)
|
||||
ELSE()
|
||||
else()
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
${CUDA_LIBRARIES}
|
||||
${CUDA_cusparse_LIBRARY}
|
||||
${CUDA_curand_LIBRARY})
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
if(CAFFE2_USE_CUDNN)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS ${CUDNN_LIBRARIES})
|
||||
endif()
|
||||
|
||||
IF(USE_MAGMA)
|
||||
if(USE_MAGMA)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS ${MAGMA_LIBRARIES})
|
||||
IF($ENV{TH_BINARY_BUILD})
|
||||
if($ENV{TH_BINARY_BUILD})
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
"${BLAS_LIBRARIES};${BLAS_LIBRARIES};${BLAS_LIBRARIES}")
|
||||
ENDIF($ENV{TH_BINARY_BUILD})
|
||||
ENDIF(USE_MAGMA)
|
||||
IF($ENV{ATEN_STATIC_CUDA})
|
||||
endif($ENV{TH_BINARY_BUILD})
|
||||
endif(USE_MAGMA)
|
||||
if($ENV{ATEN_STATIC_CUDA})
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS "${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a")
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS "${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcudart_static.a")
|
||||
ENDIF($ENV{ATEN_STATIC_CUDA})
|
||||
ENDIF()
|
||||
endif($ENV{ATEN_STATIC_CUDA})
|
||||
endif()
|
||||
|
||||
# NB: We're relying on cmake/Dependencies.cmake to appropriately setup HIP dependencies.
|
||||
# In principle we could duplicate them, but handling the rocblas
|
||||
|
|
@ -375,9 +375,9 @@ if(USE_ROCM)
|
|||
# list(APPEND ATen_HIP_DEPENDENCY_LIBS ATEN_CUDA_FILES_GEN_LIB)
|
||||
endif()
|
||||
|
||||
SET(ATEN_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${AT_INSTALL_INCLUDE_DIR}")
|
||||
CONFIGURE_FILE(ATenConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/ATenConfig.cmake")
|
||||
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/ATenConfig.cmake"
|
||||
set(ATEN_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${AT_INSTALL_INCLUDE_DIR}")
|
||||
configure_file(ATenConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/ATenConfig.cmake")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/ATenConfig.cmake"
|
||||
DESTINATION "${AT_INSTALL_SHARE_DIR}/cmake/ATen")
|
||||
|
||||
if(INTERN_BUILD_MOBILE)
|
||||
|
|
@ -387,26 +387,26 @@ else()
|
|||
endif()
|
||||
|
||||
# https://stackoverflow.com/questions/11096471/how-can-i-install-a-hierarchy-of-files-using-cmake
|
||||
FOREACH(HEADER ${INSTALL_HEADERS})
|
||||
foreach(HEADER ${INSTALL_HEADERS})
|
||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "ATen/" HEADER_SUB ${HEADER})
|
||||
string(REPLACE "${Caffe2_SOURCE_DIR}/" "" HEADER_SUB ${HEADER_SUB})
|
||||
GET_FILENAME_COMPONENT(DIR ${HEADER_SUB} DIRECTORY)
|
||||
INSTALL(FILES ${HEADER} DESTINATION "${AT_INSTALL_INCLUDE_DIR}/${DIR}")
|
||||
ENDFOREACH()
|
||||
get_filename_component(DIR ${HEADER_SUB} DIRECTORY)
|
||||
install(FILES ${HEADER} DESTINATION "${AT_INSTALL_INCLUDE_DIR}/${DIR}")
|
||||
endforeach()
|
||||
|
||||
# TODO: Install hip_generated_h when we have it
|
||||
FOREACH(HEADER ${generated_h} ${cuda_generated_h})
|
||||
foreach(HEADER ${generated_h} ${cuda_generated_h})
|
||||
# NB: Assumed to be flat
|
||||
INSTALL(FILES ${HEADER} DESTINATION ${AT_INSTALL_INCLUDE_DIR}/ATen)
|
||||
ENDFOREACH()
|
||||
install(FILES ${HEADER} DESTINATION ${AT_INSTALL_INCLUDE_DIR}/ATen)
|
||||
endforeach()
|
||||
|
||||
message("AT_INSTALL_INCLUDE_DIR ${AT_INSTALL_INCLUDE_DIR}/ATen/core")
|
||||
FOREACH(HEADER ${core_generated_h})
|
||||
foreach(HEADER ${core_generated_h})
|
||||
message("core header install: ${HEADER}")
|
||||
INSTALL(FILES ${HEADER} DESTINATION ${AT_INSTALL_INCLUDE_DIR}/ATen/core)
|
||||
ENDFOREACH()
|
||||
install(FILES ${HEADER} DESTINATION ${AT_INSTALL_INCLUDE_DIR}/ATen/core)
|
||||
endforeach()
|
||||
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/aten/src/ATen/Declarations.yaml
|
||||
install(FILES ${CMAKE_BINARY_DIR}/aten/src/ATen/Declarations.yaml
|
||||
DESTINATION ${AT_INSTALL_SHARE_DIR}/ATen)
|
||||
|
||||
if(ATEN_NO_TEST)
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# This file solely exists to let Caffe2 Android build get at the list
|
||||
# of core files without having to trundle through all of ATen's CMakeLists.txt
|
||||
|
||||
FILE(GLOB_RECURSE ATen_CORE_HEADERS "*.h")
|
||||
FILE(GLOB_RECURSE ATen_CORE_SRCS "*.cpp")
|
||||
FILE(GLOB_RECURSE ATen_CORE_TEST_SRCS "*_test.cpp")
|
||||
file(GLOB_RECURSE ATen_CORE_HEADERS "*.h")
|
||||
file(GLOB_RECURSE ATen_CORE_SRCS "*.cpp")
|
||||
file(GLOB_RECURSE ATen_CORE_TEST_SRCS "*_test.cpp")
|
||||
EXCLUDE(ATen_CORE_SRCS "${ATen_CORE_SRCS}" ${ATen_CORE_TEST_SRCS})
|
||||
|
||||
# Add files needed from jit folders
|
||||
LIST(APPEND ATen_CORE_HEADERS
|
||||
list(APPEND ATen_CORE_HEADERS
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/source_range.h
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/function_schema_parser.h
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/lexer.h
|
||||
|
|
@ -17,7 +17,7 @@ LIST(APPEND ATen_CORE_HEADERS
|
|||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/error_report.h
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/tree.h
|
||||
)
|
||||
LIST(APPEND ATen_CORE_SRCS
|
||||
list(APPEND ATen_CORE_SRCS
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/error_report.cpp
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/function_schema_parser.cpp
|
||||
${Caffe2_SOURCE_DIR}/torch/csrc/jit/frontend/lexer.cpp
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(cpuinfo-download NONE)
|
||||
project(cpuinfo-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(cpuinfo
|
||||
GIT_REPOSITORY https://github.com/Maratyszcza/cpuinfo.git
|
||||
GIT_TAG master
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(fp16-download NONE)
|
||||
project(fp16-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(fp16
|
||||
GIT_REPOSITORY https://github.com/Maratyszcza/FP16.git
|
||||
GIT_TAG master
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(fxdiv-download NONE)
|
||||
project(fxdiv-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(fxdiv
|
||||
GIT_REPOSITORY https://github.com/Maratyszcza/FXdiv.git
|
||||
GIT_TAG master
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(googlebenchmark-download NONE)
|
||||
project(googlebenchmark-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googlebenchmark
|
||||
URL https://github.com/google/benchmark/archive/v1.4.1.zip
|
||||
URL_HASH SHA256=61ae07eb5d4a0b02753419eb17a82b7d322786bb36ab62bd3df331a4d47c00a7
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(googletest-download NONE)
|
||||
project(googletest-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
URL https://github.com/google/googletest/archive/release-1.8.0.zip
|
||||
URL_HASH SHA256=f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(psimd-download NONE)
|
||||
project(psimd-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(psimd
|
||||
GIT_REPOSITORY https://github.com/Maratyszcza/psimd.git
|
||||
GIT_TAG master
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(pthreadpool-download NONE)
|
||||
project(pthreadpool-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(pthreadpool
|
||||
GIT_REPOSITORY https://github.com/Maratyszcza/pthreadpool.git
|
||||
GIT_TAG master
|
||||
|
|
|
|||
|
|
@ -4,97 +4,97 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
|
||||
|
||||
INCLUDE(GNUInstallDirs)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# ---[ Project and semantic versioning.
|
||||
PROJECT(clog C CXX)
|
||||
project(clog C CXX)
|
||||
|
||||
# ---[ Options.
|
||||
SET(CLOG_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use")
|
||||
SET_PROPERTY(CACHE CLOG_RUNTIME_TYPE PROPERTY STRINGS default static shared)
|
||||
IF(ANDROID)
|
||||
OPTION(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" OFF)
|
||||
ELSE()
|
||||
OPTION(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" ON)
|
||||
ENDIF()
|
||||
OPTION(CLOG_BUILD_TESTS "Build clog tests" ON)
|
||||
set(CLOG_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use")
|
||||
set_property(CACHE CLOG_RUNTIME_TYPE PROPERTY STRINGS default static shared)
|
||||
if(ANDROID)
|
||||
option(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" OFF)
|
||||
else()
|
||||
option(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" ON)
|
||||
endif()
|
||||
option(CLOG_BUILD_TESTS "Build clog tests" ON)
|
||||
|
||||
# ---[ CMake options
|
||||
IF(CLOG_BUILD_TESTS)
|
||||
ENABLE_TESTING()
|
||||
ENDIF()
|
||||
if(CLOG_BUILD_TESTS)
|
||||
enable_testing()
|
||||
endif()
|
||||
|
||||
MACRO(CLOG_TARGET_RUNTIME_LIBRARY target)
|
||||
IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "default")
|
||||
IF(CLOG_RUNTIME_TYPE STREQUAL "shared")
|
||||
TARGET_COMPILE_OPTIONS(${target} PRIVATE
|
||||
macro(CLOG_TARGET_RUNTIME_LIBRARY target)
|
||||
if(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "default")
|
||||
if(CLOG_RUNTIME_TYPE STREQUAL "shared")
|
||||
target_compile_options(${target} PRIVATE
|
||||
"/MD$<$<CONFIG:Debug>:d>")
|
||||
ELSEIF(CLOG_RUNTIME_TYPE STREQUAL "static")
|
||||
TARGET_COMPILE_OPTIONS(${target} PRIVATE
|
||||
elseif(CLOG_RUNTIME_TYPE STREQUAL "static")
|
||||
target_compile_options(${target} PRIVATE
|
||||
"/MT$<$<CONFIG:Debug>:d>")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# ---[ Download deps
|
||||
SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
|
||||
set(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
|
||||
CACHE PATH "Confu-style dependencies source directory")
|
||||
SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
|
||||
set(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
|
||||
CACHE PATH "Confu-style dependencies binary directory")
|
||||
|
||||
IF(CLOG_BUILD_TESTS)
|
||||
IF(NOT DEFINED GOOGLETEST_SOURCE_DIR)
|
||||
MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
|
||||
CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
|
||||
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||
if(CLOG_BUILD_TESTS)
|
||||
if(NOT DEFINED GOOGLETEST_SOURCE_DIR)
|
||||
message(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
|
||||
configure_file(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||
WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
|
||||
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||
WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
|
||||
SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
set(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ---[ clog library
|
||||
ADD_LIBRARY(clog STATIC src/clog.c)
|
||||
SET_TARGET_PROPERTIES(clog PROPERTIES
|
||||
add_library(clog STATIC src/clog.c)
|
||||
set_target_properties(clog PROPERTIES
|
||||
C_STANDARD 99
|
||||
C_EXTENSIONS NO)
|
||||
CLOG_TARGET_RUNTIME_LIBRARY(clog)
|
||||
SET_TARGET_PROPERTIES(clog PROPERTIES PUBLIC_HEADER include/clog.h)
|
||||
TARGET_INCLUDE_DIRECTORIES(clog BEFORE PUBLIC include)
|
||||
IF(CLOG_LOG_TO_STDIO)
|
||||
TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=1)
|
||||
ELSE()
|
||||
TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=0)
|
||||
ENDIF()
|
||||
IF(ANDROID AND NOT CLOG_LOG_TO_STDIO)
|
||||
TARGET_LINK_LIBRARIES(clog PRIVATE log)
|
||||
ENDIF()
|
||||
set_target_properties(clog PROPERTIES PUBLIC_HEADER include/clog.h)
|
||||
target_include_directories(clog BEFORE PUBLIC include)
|
||||
if(CLOG_LOG_TO_STDIO)
|
||||
target_compile_definitions(clog PRIVATE CLOG_LOG_TO_STDIO=1)
|
||||
else()
|
||||
target_compile_definitions(clog PRIVATE CLOG_LOG_TO_STDIO=0)
|
||||
endif()
|
||||
if(ANDROID AND NOT CLOG_LOG_TO_STDIO)
|
||||
target_link_libraries(clog PRIVATE log)
|
||||
endif()
|
||||
|
||||
INSTALL(TARGETS clog
|
||||
install(TARGETS clog
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
|
||||
# ---[ clog tests
|
||||
IF(CLOG_BUILD_TESTS)
|
||||
if(CLOG_BUILD_TESTS)
|
||||
# ---[ Build google test
|
||||
IF(NOT TARGET gtest)
|
||||
IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "static")
|
||||
SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(
|
||||
if(NOT TARGET gtest)
|
||||
if(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "static")
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
add_subdirectory(
|
||||
"${GOOGLETEST_SOURCE_DIR}"
|
||||
"${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
ADD_EXECUTABLE(clog-test test/clog.cc)
|
||||
SET_TARGET_PROPERTIES(clog-test PROPERTIES
|
||||
add_executable(clog-test test/clog.cc)
|
||||
set_target_properties(clog-test PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_EXTENSIONS NO)
|
||||
CLOG_TARGET_RUNTIME_LIBRARY(clog-test)
|
||||
TARGET_LINK_LIBRARIES(clog-test PRIVATE clog gtest gtest_main)
|
||||
ADD_TEST(clog-test clog-test)
|
||||
ENDIF()
|
||||
target_link_libraries(clog-test PRIVATE clog gtest gtest_main)
|
||||
add_test(clog-test clog-test)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
|
||||
PROJECT(googletest-download NONE)
|
||||
project(googletest-download NONE)
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
URL https://github.com/google/googletest/archive/release-1.8.0.zip
|
||||
URL_HASH SHA256=f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
FILE(GLOB_RECURSE ATen_QUANTIZED_HEADERS "*.h")
|
||||
FILE(GLOB_RECURSE ATen_QUANTIZED_SRCS "*.cpp")
|
||||
FILE(GLOB_RECURSE ATen_QUANTIZED_TEST_SRCS "*_test.cpp")
|
||||
file(GLOB_RECURSE ATen_QUANTIZED_HEADERS "*.h")
|
||||
file(GLOB_RECURSE ATen_QUANTIZED_SRCS "*.cpp")
|
||||
file(GLOB_RECURSE ATen_QUANTIZED_TEST_SRCS "*_test.cpp")
|
||||
EXCLUDE(ATen_QUANTIZED_SRCS "${ATen_QUANTIZED_SRCS}" ${ATen_QUANTIZED_TEST_SRCS})
|
||||
|
||||
# Pass to parent
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
IF(MSVC)
|
||||
IF(MSVC_VERSION LESS 1911)
|
||||
if(MSVC)
|
||||
if(MSVC_VERSION LESS 1911)
|
||||
return()
|
||||
ENDIF()
|
||||
ENDIF(MSVC)
|
||||
endif()
|
||||
endif(MSVC)
|
||||
|
||||
list(APPEND ATen_CPU_TEST_SRCS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scalar_test.cpp
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
set(extra_src)
|
||||
|
||||
# IF AVX FOUND
|
||||
IF(C_AVX_FOUND)
|
||||
LIST(APPEND extra_src ${CMAKE_CURRENT_SOURCE_DIR}/vector/AVX.cpp)
|
||||
ENDIF(C_AVX_FOUND)
|
||||
if(C_AVX_FOUND)
|
||||
list(APPEND extra_src ${CMAKE_CURRENT_SOURCE_DIR}/vector/AVX.cpp)
|
||||
endif(C_AVX_FOUND)
|
||||
|
||||
SET(hdr
|
||||
set(hdr
|
||||
THGeneral.h THHalf.h THAllocator.h THStorage.h THStorageFunctions.h THTensor.h THTensorApply.h THBlas.h
|
||||
THLapack.h THVector.h )
|
||||
|
||||
|
|
@ -44,10 +44,10 @@ set(ATen_CUDA_INCLUDE ${ATen_CUDA_INCLUDE}
|
|||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PARENT_SCOPE)
|
||||
|
||||
CONFIGURE_FILE(THGeneral.h.in "${CMAKE_CURRENT_BINARY_DIR}/THGeneral.h")
|
||||
configure_file(THGeneral.h.in "${CMAKE_CURRENT_BINARY_DIR}/THGeneral.h")
|
||||
|
||||
|
||||
INSTALL(FILES
|
||||
install(FILES
|
||||
TH.h
|
||||
THAllocator.h
|
||||
THBlas.h
|
||||
|
|
@ -86,12 +86,12 @@ INSTALL(FILES
|
|||
THGenerator.hpp
|
||||
DESTINATION "${ATEN_INSTALL_INCLUDE_SUBDIR}/TH")
|
||||
|
||||
INSTALL(FILES
|
||||
install(FILES
|
||||
vector/AVX.h
|
||||
../ATen/native/cpu/avx_mathfun.h
|
||||
DESTINATION "${ATEN_INSTALL_INCLUDE_SUBDIR}/TH/vector")
|
||||
|
||||
INSTALL(FILES
|
||||
install(FILES
|
||||
generic/THBlas.cpp
|
||||
generic/THBlas.h
|
||||
generic/THLapack.cpp
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ set(ATen_CUDA_INCLUDE ${ATen_CUDA_INCLUDE}
|
|||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
PARENT_SCOPE)
|
||||
|
||||
CONFIGURE_FILE(THCGeneral.h.in "${CMAKE_CURRENT_BINARY_DIR}/THCGeneral.h")
|
||||
configure_file(THCGeneral.h.in "${CMAKE_CURRENT_BINARY_DIR}/THCGeneral.h")
|
||||
|
||||
set(extra_src)
|
||||
# loop over all types
|
||||
|
|
@ -11,27 +11,27 @@ foreach(THC_TYPE Byte Char Short Int Long Half Float Double)
|
|||
# loop over files which need to be split between types (because of long compile times)
|
||||
foreach(THC_FILE TensorSort TensorMathPointwise TensorMathReduce TensorMasked)
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}${THC_TYPE}.cu")
|
||||
FILE(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}${THC_TYPE}.cu"
|
||||
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}${THC_TYPE}.cu"
|
||||
"#include <THC/THC${THC_FILE}.cuh>\n#include <THC/THCTensor.hpp>\n\n#include <THC/generic/THC${THC_FILE}.cu>\n#include <THC/THCGenerate${THC_TYPE}Type.h>\n")
|
||||
endif()
|
||||
LIST(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}${THC_TYPE}.cu")
|
||||
list(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}${THC_TYPE}.cu")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
foreach(THC_FILE TensorMathPointwise TensorMathReduce TensorMasked)
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}Bool.cu")
|
||||
FILE(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}Bool.cu"
|
||||
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}Bool.cu"
|
||||
"#include <THC/THC${THC_FILE}.cuh>\n#include <THC/THCTensor.hpp>\n\n#include <THC/generic/THC${THC_FILE}.cu>\n#include <THC/THCGenerateBoolType.h>\n")
|
||||
endif()
|
||||
LIST(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}Bool.cu")
|
||||
list(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}Bool.cu")
|
||||
endforeach()
|
||||
|
||||
foreach(THC_FILE TensorMathReduce TensorMasked TensorSort)
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}BFloat16.cu")
|
||||
FILE(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}BFloat16.cu"
|
||||
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}BFloat16.cu"
|
||||
"#include <THC/THC${THC_FILE}.cuh>\n#include <THC/THCTensor.hpp>\n\n#include <THC/generic/THC${THC_FILE}.cu>\n#include <THC/THCGenerateBFloat16Type.h>\n")
|
||||
endif()
|
||||
LIST(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}BFloat16.cu")
|
||||
list(APPEND extra_src "${CMAKE_CURRENT_SOURCE_DIR}/generated/THC${THC_FILE}BFloat16.cu")
|
||||
endforeach()
|
||||
|
||||
set(ATen_CUDA_SRCS ${ATen_CUDA_SRCS}
|
||||
|
|
@ -63,7 +63,7 @@ set(ATen_CUDA_SRCS ${ATen_CUDA_SRCS}
|
|||
${extra_src}
|
||||
PARENT_SCOPE)
|
||||
|
||||
INSTALL(FILES
|
||||
install(FILES
|
||||
THC.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/THCGeneral.h
|
||||
THCGeneral.hpp
|
||||
|
|
@ -120,7 +120,7 @@ INSTALL(FILES
|
|||
THCStorage.hpp
|
||||
DESTINATION "${ATEN_INSTALL_INCLUDE_SUBDIR}/THC")
|
||||
|
||||
INSTALL(FILES
|
||||
install(FILES
|
||||
generic/THCStorage.cpp
|
||||
generic/THCStorage.cu
|
||||
generic/THCStorage.h
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
SET(ATen_CUDA_SRCS ${ATen_CUDA_SRCS}
|
||||
set(ATen_CUDA_SRCS ${ATen_CUDA_SRCS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ClassNLLCriterion.cu
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GatedLinearUnit.cu
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/LogSigmoid.cu
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ endif()
|
|||
# For pthreadpool_new_if_impl. TODO: Remove when threadpools are unitied.
|
||||
if(NOT MSVC)
|
||||
if(NOT TARGET fxdiv)
|
||||
SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
|
||||
SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
ADD_SUBDIRECTORY(
|
||||
set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
|
||||
set(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
add_subdirectory(
|
||||
"${FXDIV_SOURCE_DIR}"
|
||||
"${CMAKE_BINARY_DIR}/FXdiv")
|
||||
endif()
|
||||
|
|
@ -211,7 +211,7 @@ if(NOT INTERN_BUILD_MOBILE OR BUILD_CAFFE2_MOBILE)
|
|||
# have the right protobuf version as well as linking to libprotobuf.a.
|
||||
target_link_libraries(caffe2_protos PUBLIC protobuf::libprotobuf)
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
INSTALL(TARGETS caffe2_protos ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(TARGETS caffe2_protos ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -715,7 +715,7 @@ endif()
|
|||
|
||||
|
||||
if(NOT MSVC)
|
||||
TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
|
||||
target_link_libraries(torch_cpu PRIVATE fxdiv)
|
||||
endif()
|
||||
|
||||
# ==========================================================
|
||||
|
|
@ -1178,7 +1178,7 @@ if(USE_ROCM)
|
|||
get_directory_property(MY_DEFINITIONS COMPILE_DEFINITIONS)
|
||||
if(MY_DEFINITIONS)
|
||||
foreach(_item ${MY_DEFINITIONS})
|
||||
LIST(APPEND HIP_HCC_FLAGS "-D${_item}")
|
||||
list(APPEND HIP_HCC_FLAGS "-D${_item}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
|
|
@ -1283,9 +1283,9 @@ if(BUILD_PYTHON)
|
|||
print(sysconfig.get_python_lib(prefix=''))
|
||||
")
|
||||
file(TO_CMAKE_PATH ${PYTHON_SITE_PACKAGES} PYTHON_SITE_PACKAGES)
|
||||
SET(PYTHON_SITE_PACKAGES ${PYTHON_SITE_PACKAGES} PARENT_SCOPE) # for Summary
|
||||
set(PYTHON_SITE_PACKAGES ${PYTHON_SITE_PACKAGES} PARENT_SCOPE) # for Summary
|
||||
# ---[ Options.
|
||||
SET(PYTHON_LIB_REL_PATH "${PYTHON_SITE_PACKAGES}" CACHE STRING "Python installation path (relative to CMake installation prefix)")
|
||||
set(PYTHON_LIB_REL_PATH "${PYTHON_SITE_PACKAGES}" CACHE STRING "Python installation path (relative to CMake installation prefix)")
|
||||
message(STATUS "Using ${PYTHON_LIB_REL_PATH} as python relative installation path")
|
||||
# Python extension suffix
|
||||
# Try to get from python through sysconfig.get_env_var('EXT_SUFFIX') first,
|
||||
|
|
|
|||
|
|
@ -54,43 +54,43 @@ install(FILES ${CMAKE_BINARY_DIR}/caffe2/core/macros.h
|
|||
# ---[ ATen specific
|
||||
if(INTERN_BUILD_ATEN_OPS)
|
||||
if(MSVC)
|
||||
SET(OPT_FLAG "/fp:strict ")
|
||||
set(OPT_FLAG "/fp:strict ")
|
||||
else(MSVC)
|
||||
SET(OPT_FLAG "-O3 ")
|
||||
set(OPT_FLAG "-O3 ")
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
|
||||
SET(OPT_FLAG " ")
|
||||
set(OPT_FLAG " ")
|
||||
endif()
|
||||
endif(MSVC)
|
||||
|
||||
if(C_AVX_FOUND)
|
||||
if(MSVC)
|
||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/vector/AVX.cpp PROPERTIES COMPILE_FLAGS "${OPT_FLAG}/arch:AVX ${CXX_AVX_FLAGS}")
|
||||
set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/vector/AVX.cpp PROPERTIES COMPILE_FLAGS "${OPT_FLAG}/arch:AVX ${CXX_AVX_FLAGS}")
|
||||
else(MSVC)
|
||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/vector/AVX.cpp PROPERTIES COMPILE_FLAGS "${OPT_FLAG} ${CXX_AVX_FLAGS}")
|
||||
set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/vector/AVX.cpp PROPERTIES COMPILE_FLAGS "${OPT_FLAG} ${CXX_AVX_FLAGS}")
|
||||
endif(MSVC)
|
||||
endif(C_AVX_FOUND)
|
||||
|
||||
if(NOT MSVC AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/THAllocator.cpp PROPERTIES COMPILE_FLAGS "-fno-openmp")
|
||||
set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/../aten/src/TH/THAllocator.cpp PROPERTIES COMPILE_FLAGS "-fno-openmp")
|
||||
endif()
|
||||
|
||||
FILE(GLOB cpu_kernel_cpp_in "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/native/cpu/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/native/quantized/cpu/kernels/*.cpp")
|
||||
file(GLOB cpu_kernel_cpp_in "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/native/cpu/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/native/quantized/cpu/kernels/*.cpp")
|
||||
|
||||
LIST(APPEND CPU_CAPABILITY_NAMES "DEFAULT")
|
||||
LIST(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}")
|
||||
list(APPEND CPU_CAPABILITY_NAMES "DEFAULT")
|
||||
list(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}")
|
||||
|
||||
if(CXX_AVX_FOUND)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_AVX_CPU_DEFINITION")
|
||||
LIST(APPEND CPU_CAPABILITY_NAMES "AVX")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_AVX_CPU_DEFINITION")
|
||||
list(APPEND CPU_CAPABILITY_NAMES "AVX")
|
||||
if(MSVC)
|
||||
LIST(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}/arch:AVX")
|
||||
list(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}/arch:AVX")
|
||||
else(MSVC)
|
||||
LIST(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG} -mavx")
|
||||
list(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG} -mavx")
|
||||
endif(MSVC)
|
||||
endif(CXX_AVX_FOUND)
|
||||
|
||||
if(CXX_AVX2_FOUND)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_AVX2_CPU_DEFINITION")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_AVX2_CPU_DEFINITION")
|
||||
|
||||
# Some versions of GCC pessimistically split unaligned load and store
|
||||
# instructions when using the default tuning. This is a bad choice on
|
||||
|
|
@ -98,36 +98,36 @@ if(INTERN_BUILD_ATEN_OPS)
|
|||
# See https://stackoverflow.com/questions/52626726/why-doesnt-gcc-resolve-mm256-loadu-pd-as-single-vmovupd#tab-top
|
||||
check_cxx_compiler_flag("-mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store" COMPILER_SUPPORTS_NO_AVX256_SPLIT)
|
||||
if(COMPILER_SUPPORTS_NO_AVX256_SPLIT)
|
||||
SET(CPU_NO_AVX256_SPLIT_FLAGS "-mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store")
|
||||
set(CPU_NO_AVX256_SPLIT_FLAGS "-mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store")
|
||||
endif(COMPILER_SUPPORTS_NO_AVX256_SPLIT)
|
||||
|
||||
LIST(APPEND CPU_CAPABILITY_NAMES "AVX2")
|
||||
list(APPEND CPU_CAPABILITY_NAMES "AVX2")
|
||||
if(MSVC)
|
||||
LIST(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}/arch:AVX2")
|
||||
list(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG}/arch:AVX2")
|
||||
else(MSVC)
|
||||
LIST(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG} -mavx2 -mfma ${CPU_NO_AVX256_SPLIT_FLAGS}")
|
||||
list(APPEND CPU_CAPABILITY_FLAGS "${OPT_FLAG} -mavx2 -mfma ${CPU_NO_AVX256_SPLIT_FLAGS}")
|
||||
endif(MSVC)
|
||||
endif(CXX_AVX2_FOUND)
|
||||
|
||||
list(LENGTH CPU_CAPABILITY_NAMES NUM_CPU_CAPABILITY_NAMES)
|
||||
math(EXPR NUM_CPU_CAPABILITY_NAMES "${NUM_CPU_CAPABILITY_NAMES}-1")
|
||||
|
||||
FOREACH(i RANGE ${NUM_CPU_CAPABILITY_NAMES})
|
||||
FOREACH(IMPL ${cpu_kernel_cpp_in})
|
||||
foreach(i RANGE ${NUM_CPU_CAPABILITY_NAMES})
|
||||
foreach(IMPL ${cpu_kernel_cpp_in})
|
||||
string(REPLACE "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/" "" NAME ${IMPL})
|
||||
LIST(GET CPU_CAPABILITY_NAMES ${i} CPU_CAPABILITY)
|
||||
SET(NEW_IMPL ${CMAKE_BINARY_DIR}/aten/src/ATen/${NAME}.${CPU_CAPABILITY}.cpp)
|
||||
CONFIGURE_FILE(${IMPL} ${NEW_IMPL} COPYONLY)
|
||||
SET(cpu_kernel_cpp ${NEW_IMPL} ${cpu_kernel_cpp}) # Create list of copies
|
||||
LIST(GET CPU_CAPABILITY_FLAGS ${i} FLAGS)
|
||||
list(GET CPU_CAPABILITY_NAMES ${i} CPU_CAPABILITY)
|
||||
set(NEW_IMPL ${CMAKE_BINARY_DIR}/aten/src/ATen/${NAME}.${CPU_CAPABILITY}.cpp)
|
||||
configure_file(${IMPL} ${NEW_IMPL} COPYONLY)
|
||||
set(cpu_kernel_cpp ${NEW_IMPL} ${cpu_kernel_cpp}) # Create list of copies
|
||||
list(GET CPU_CAPABILITY_FLAGS ${i} FLAGS)
|
||||
if(MSVC)
|
||||
SET(MACRO_FLAG "/DCPU_CAPABILITY=${CPU_CAPABILITY} /DCPU_CAPABILITY_${CPU_CAPABILITY}")
|
||||
set(MACRO_FLAG "/DCPU_CAPABILITY=${CPU_CAPABILITY} /DCPU_CAPABILITY_${CPU_CAPABILITY}")
|
||||
else(MSVC)
|
||||
SET(MACRO_FLAG "-DCPU_CAPABILITY=${CPU_CAPABILITY} -DCPU_CAPABILITY_${CPU_CAPABILITY}")
|
||||
set(MACRO_FLAG "-DCPU_CAPABILITY=${CPU_CAPABILITY} -DCPU_CAPABILITY_${CPU_CAPABILITY}")
|
||||
endif(MSVC)
|
||||
SET_SOURCE_FILES_PROPERTIES(${NEW_IMPL} PROPERTIES COMPILE_FLAGS "${FLAGS} ${MACRO_FLAG}")
|
||||
ENDFOREACH()
|
||||
ENDFOREACH()
|
||||
set_source_files_properties(${NEW_IMPL} PROPERTIES COMPILE_FLAGS "${FLAGS} ${MACRO_FLAG}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
list(APPEND ATen_CPU_SRCS ${cpu_kernel_cpp})
|
||||
|
||||
set(cwrap_files
|
||||
|
|
@ -136,7 +136,7 @@ if(INTERN_BUILD_ATEN_OPS)
|
|||
${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/nn.yaml
|
||||
${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/native/native_functions.yaml)
|
||||
|
||||
FILE(GLOB all_python "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/*.py")
|
||||
file(GLOB all_python "${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/*.py")
|
||||
|
||||
set(GEN_ROCM_FLAG)
|
||||
if(USE_ROCM)
|
||||
|
|
@ -148,7 +148,7 @@ if(INTERN_BUILD_ATEN_OPS)
|
|||
if(NOT USE_STATIC_DISPATCH AND NOT OP_DEPENDENCY)
|
||||
message(FATAL_ERROR "Must provide op dependency graph .yaml file for custom build with dynamic dispatch!")
|
||||
endif()
|
||||
EXECUTE_PROCESS(
|
||||
execute_process(
|
||||
COMMAND
|
||||
"${PYTHON_EXECUTABLE}" ${CMAKE_CURRENT_LIST_DIR}/../tools/code_analyzer/gen_op_registration_whitelist.py
|
||||
--op-dependency "${OP_DEPENDENCY}"
|
||||
|
|
@ -162,7 +162,7 @@ if(INTERN_BUILD_ATEN_OPS)
|
|||
--op_registration_whitelist ${OP_REGISTRATION_WHITELIST})
|
||||
endif()
|
||||
|
||||
SET(GEN_COMMAND
|
||||
set(GEN_COMMAND
|
||||
"${PYTHON_EXECUTABLE}" ${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/gen.py
|
||||
--source-path ${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen
|
||||
--install_dir ${CMAKE_BINARY_DIR}/aten/src/ATen
|
||||
|
|
@ -171,7 +171,7 @@ if(INTERN_BUILD_ATEN_OPS)
|
|||
${CUSTOM_BUILD_FLAGS}
|
||||
)
|
||||
|
||||
EXECUTE_PROCESS(
|
||||
execute_process(
|
||||
COMMAND ${GEN_COMMAND}
|
||||
--output-dependencies ${CMAKE_BINARY_DIR}/aten/src/ATen/generated_cpp.txt
|
||||
RESULT_VARIABLE RETURN_VALUE
|
||||
|
|
|
|||
|
|
@ -167,12 +167,12 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
endif()
|
||||
|
||||
if(MKL_FOUND)
|
||||
ADD_DEFINITIONS(-DTH_BLAS_MKL)
|
||||
add_definitions(-DTH_BLAS_MKL)
|
||||
if("${MKL_THREADING}" STREQUAL "SEQ")
|
||||
ADD_DEFINITIONS(-DTH_BLAS_MKL_SEQ=1)
|
||||
add_definitions(-DTH_BLAS_MKL_SEQ=1)
|
||||
endif()
|
||||
if(MSVC AND MKL_LIBRARIES MATCHES ".*libiomp5md\\.lib.*")
|
||||
ADD_DEFINITIONS(-D_OPENMP_NOFORCE_MANIFEST)
|
||||
add_definitions(-D_OPENMP_NOFORCE_MANIFEST)
|
||||
set(AT_MKL_MT 1)
|
||||
endif()
|
||||
set(AT_MKL_ENABLED 1)
|
||||
|
|
@ -280,9 +280,9 @@ if(INTERN_BUILD_MOBILE AND NOT BUILD_CAFFE2_MOBILE AND (USE_QNNPACK OR USE_NNPAC
|
|||
endif()
|
||||
|
||||
if(NOT TARGET pthreadpool)
|
||||
SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
|
||||
SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
ADD_SUBDIRECTORY(
|
||||
set(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
|
||||
set(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
add_subdirectory(
|
||||
"${PTHREADPOOL_SOURCE_DIR}"
|
||||
"${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool"
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
|
@ -300,9 +300,9 @@ if(USE_XNNPACK)
|
|||
endif()
|
||||
|
||||
if(NOT TARGET pthreadpool)
|
||||
SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
|
||||
SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
ADD_SUBDIRECTORY(
|
||||
set(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
|
||||
set(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
|
||||
add_subdirectory(
|
||||
"${PTHREADPOOL_SOURCE_DIR}"
|
||||
"${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool"
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
|
@ -775,12 +775,12 @@ if(BUILD_PYTHON)
|
|||
# which sometimes outputs directories that do not exist
|
||||
pycmd_no_exit(_py_inc _exitcode "from distutils import sysconfig; print(sysconfig.get_python_inc())")
|
||||
if("${_exitcode}" EQUAL 0 AND IS_DIRECTORY "${_py_inc}")
|
||||
SET(PYTHON_INCLUDE_DIR "${_py_inc}")
|
||||
set(PYTHON_INCLUDE_DIR "${_py_inc}")
|
||||
message(STATUS "Setting Python's include dir to ${_py_inc} from distutils.sysconfig")
|
||||
else()
|
||||
pycmd_no_exit(_py_inc _exitcode "from sysconfig import get_paths; print(get_paths()['include'])")
|
||||
if("${_exitcode}" EQUAL 0 AND IS_DIRECTORY "${_py_inc}")
|
||||
SET(PYTHON_INCLUDE_DIR "${_py_inc}")
|
||||
set(PYTHON_INCLUDE_DIR "${_py_inc}")
|
||||
message(STATUS "Setting Python's include dir to ${_py_inc} from sysconfig")
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -789,9 +789,9 @@ if(BUILD_PYTHON)
|
|||
if(NOT DEFINED PYTHON_LIBRARY)
|
||||
pycmd_no_exit(_py_lib _exitcode "from sysconfig import get_paths; print(get_paths()['stdlib'])")
|
||||
if("${_exitcode}" EQUAL 0 AND EXISTS "${_py_lib}" AND EXISTS "${_py_lib}")
|
||||
SET(PYTHON_LIBRARY "${_py_lib}")
|
||||
set(PYTHON_LIBRARY "${_py_lib}")
|
||||
if(MSVC)
|
||||
STRING(REPLACE "Lib" "libs" _py_static_lib ${_py_lib})
|
||||
string(REPLACE "Lib" "libs" _py_static_lib ${_py_lib})
|
||||
link_directories(${_py_static_lib})
|
||||
endif()
|
||||
message(STATUS "Setting Python's library to ${PYTHON_LIBRARY}")
|
||||
|
|
@ -882,33 +882,33 @@ endif()
|
|||
# ---[ OpenMP
|
||||
if(USE_OPENMP)
|
||||
# OpenMP support?
|
||||
SET(WITH_OPENMP ON CACHE BOOL "OpenMP support if available?")
|
||||
set(WITH_OPENMP ON CACHE BOOL "OpenMP support if available?")
|
||||
|
||||
# macOS + GCC
|
||||
if(APPLE AND CMAKE_COMPILER_IS_GNUCC)
|
||||
EXEC_PROGRAM(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
|
||||
STRING(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
|
||||
MESSAGE(STATUS "macOS Darwin version: ${DARWIN_VERSION}")
|
||||
exec_program(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
|
||||
string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
|
||||
message(STATUS "macOS Darwin version: ${DARWIN_VERSION}")
|
||||
if(DARWIN_VERSION GREATER 9)
|
||||
SET(APPLE_OPENMP_SUCKS 1)
|
||||
set(APPLE_OPENMP_SUCKS 1)
|
||||
endif(DARWIN_VERSION GREATER 9)
|
||||
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||
OUTPUT_VARIABLE GCC_VERSION)
|
||||
if(APPLE_OPENMP_SUCKS AND GCC_VERSION VERSION_LESS 4.6.2)
|
||||
MESSAGE(WARNING "Disabling OpenMP (unstable with this version of GCC). "
|
||||
message(WARNING "Disabling OpenMP (unstable with this version of GCC). "
|
||||
"Install GCC >= 4.6.2 or change your OS to enable OpenMP.")
|
||||
add_compile_options(-Wno-unknown-pragmas)
|
||||
SET(WITH_OPENMP OFF CACHE BOOL "OpenMP support if available?" FORCE)
|
||||
set(WITH_OPENMP OFF CACHE BOOL "OpenMP support if available?" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC"
|
||||
AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
MESSAGE(STATUS "Setting OpenMP flags for clang-cl")
|
||||
SET(OpenMP_CXX_FLAGS "-Xclang -fopenmp")
|
||||
SET(OpenMP_C_FLAGS "-Xclang -fopenmp")
|
||||
SET(CHECKED_OPENMP ON CACHE BOOL "already checked for OpenMP")
|
||||
SET(OPENMP_FOUND ON CACHE BOOL "OpenMP Support found")
|
||||
message(STATUS "Setting OpenMP flags for clang-cl")
|
||||
set(OpenMP_CXX_FLAGS "-Xclang -fopenmp")
|
||||
set(OpenMP_C_FLAGS "-Xclang -fopenmp")
|
||||
set(CHECKED_OPENMP ON CACHE BOOL "already checked for OpenMP")
|
||||
set(OPENMP_FOUND ON CACHE BOOL "OpenMP Support found")
|
||||
if(NOT MKL_FOUND)
|
||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE clang_version_output)
|
||||
string(REGEX REPLACE ".*InstalledDir: ([^\n]+).*" "\\1" CLANG_BINDIR ${clang_version_output})
|
||||
|
|
@ -924,17 +924,17 @@ if(USE_OPENMP)
|
|||
TARGET caffe2::openmp PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CLANG_OPENMP_LIBRARY})
|
||||
|
||||
LIST(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS caffe2::openmp)
|
||||
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS caffe2::openmp)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_OPENMP AND NOT CHECKED_OPENMP)
|
||||
FIND_PACKAGE(OpenMP QUIET)
|
||||
SET(CHECKED_OPENMP ON CACHE BOOL "already checked for OpenMP")
|
||||
find_package(OpenMP QUIET)
|
||||
set(CHECKED_OPENMP ON CACHE BOOL "already checked for OpenMP")
|
||||
|
||||
# OPENMP_FOUND is not cached in FindOpenMP.cmake (all other variables are cached)
|
||||
# see https://github.com/Kitware/CMake/blob/master/Modules/FindOpenMP.cmake
|
||||
SET(OPENMP_FOUND ${OPENMP_FOUND} CACHE BOOL "OpenMP Support found")
|
||||
set(OPENMP_FOUND ${OPENMP_FOUND} CACHE BOOL "OpenMP Support found")
|
||||
endif()
|
||||
|
||||
if(OPENMP_FOUND)
|
||||
|
|
@ -1292,64 +1292,64 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
|
||||
if(MSVC)
|
||||
# we want to respect the standard, and we are bored of those **** .
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
# skip unwanted includes from windows.h
|
||||
ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN)
|
||||
LIST(APPEND CUDA_NVCC_FLAGS "-Xcompiler /wd4819 -Xcompiler /wd4503 -Xcompiler /wd4190 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4275 -Xcompiler /wd4522")
|
||||
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
||||
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler /wd4819 -Xcompiler /wd4503 -Xcompiler /wd4190 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4275 -Xcompiler /wd4522")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
if(CMAKE_VERSION VERSION_LESS "3.1")
|
||||
SET(CMAKE_C_FLAGS "-std=c11 ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_C_FLAGS "-std=c11 ${CMAKE_C_FLAGS}")
|
||||
else()
|
||||
SET(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
LIST(APPEND CUDA_NVCC_FLAGS -Wno-deprecated-gpu-targets)
|
||||
LIST(APPEND CUDA_NVCC_FLAGS --expt-extended-lambda)
|
||||
list(APPEND CUDA_NVCC_FLAGS -Wno-deprecated-gpu-targets)
|
||||
list(APPEND CUDA_NVCC_FLAGS --expt-extended-lambda)
|
||||
|
||||
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
SET(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
endif()
|
||||
|
||||
LIST(APPEND CUDA_NVCC_FLAGS ${TORCH_NVCC_FLAGS})
|
||||
LIST(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA})
|
||||
list(APPEND CUDA_NVCC_FLAGS ${TORCH_NVCC_FLAGS})
|
||||
list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA})
|
||||
if(CMAKE_POSITION_INDEPENDENT_CODE AND NOT MSVC)
|
||||
LIST(APPEND CUDA_NVCC_FLAGS "-Xcompiler" "-fPIC")
|
||||
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler" "-fPIC")
|
||||
endif()
|
||||
|
||||
if(CUDA_HAS_FP16 OR NOT ${CUDA_VERSION} LESS 7.5)
|
||||
MESSAGE(STATUS "Found CUDA with FP16 support, compiling with torch.cuda.HalfTensor")
|
||||
LIST(APPEND CUDA_NVCC_FLAGS "-DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__")
|
||||
message(STATUS "Found CUDA with FP16 support, compiling with torch.cuda.HalfTensor")
|
||||
list(APPEND CUDA_NVCC_FLAGS "-DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__")
|
||||
add_compile_options(-DCUDA_HAS_FP16=1)
|
||||
else()
|
||||
MESSAGE(STATUS "Could not find CUDA with FP16 support, compiling without torch.CudaHalfTensor")
|
||||
message(STATUS "Could not find CUDA with FP16 support, compiling without torch.CudaHalfTensor")
|
||||
endif()
|
||||
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " -DNDEBUG")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG")
|
||||
string(APPEND CMAKE_C_FLAGS_RELEASE " -DNDEBUG")
|
||||
string(APPEND CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG")
|
||||
if(NOT GENERATOR_IS_MULTI_CONFIG)
|
||||
if(${CMAKE_BUILD_TYPE} STREQUAL "Release")
|
||||
MESSAGE(STATUS "Adding -DNDEBUG to compile flags")
|
||||
STRING(APPEND CMAKE_C_FLAGS " -DNDEBUG")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " -DNDEBUG")
|
||||
message(STATUS "Adding -DNDEBUG to compile flags")
|
||||
string(APPEND CMAKE_C_FLAGS " -DNDEBUG")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -DNDEBUG")
|
||||
else()
|
||||
MESSAGE(STATUS "Removing -DNDEBUG from compile flags")
|
||||
STRING(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_C_FLAGS "" ${CMAKE_C_FLAGS})
|
||||
STRING(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_CXX_FLAGS "" ${CMAKE_CXX_FLAGS})
|
||||
message(STATUS "Removing -DNDEBUG from compile flags")
|
||||
string(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_C_FLAGS "" ${CMAKE_C_FLAGS})
|
||||
string(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_CXX_FLAGS "" ${CMAKE_CXX_FLAGS})
|
||||
endif()
|
||||
endif()
|
||||
STRING(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_C_FLAGS_DEBUG "" ${CMAKE_C_FLAGS_DEBUG})
|
||||
STRING(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_CXX_FLAGS_DEBUG "" ${CMAKE_CXX_FLAGS_DEBUG})
|
||||
string(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_C_FLAGS_DEBUG "" ${CMAKE_C_FLAGS_DEBUG})
|
||||
string(REGEX REPLACE "[-/]DNDEBUG" "" CMAKE_CXX_FLAGS_DEBUG "" ${CMAKE_CXX_FLAGS_DEBUG})
|
||||
|
||||
SET(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE OFF)
|
||||
set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE OFF)
|
||||
|
||||
FIND_PACKAGE(MAGMA)
|
||||
find_package(MAGMA)
|
||||
if(USE_CUDA AND MAGMA_FOUND)
|
||||
INCLUDE_DIRECTORIES(SYSTEM ${MAGMA_INCLUDE_DIR})
|
||||
SET(CMAKE_REQUIRED_INCLUDES "${MAGMA_INCLUDE_DIR};${CUDA_INCLUDE_DIRS}")
|
||||
INCLUDE(CheckPrototypeDefinition)
|
||||
include_directories(SYSTEM ${MAGMA_INCLUDE_DIR})
|
||||
set(CMAKE_REQUIRED_INCLUDES "${MAGMA_INCLUDE_DIR};${CUDA_INCLUDE_DIRS}")
|
||||
include(CheckPrototypeDefinition)
|
||||
check_prototype_definition(magma_get_sgeqrf_nb
|
||||
"magma_int_t magma_get_sgeqrf_nb( magma_int_t m, magma_int_t n );"
|
||||
"0"
|
||||
|
|
@ -1359,30 +1359,30 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
add_definitions(-DMAGMA_V2)
|
||||
endif(MAGMA_V2)
|
||||
|
||||
SET(USE_MAGMA 1)
|
||||
MESSAGE(STATUS "Compiling with MAGMA support")
|
||||
MESSAGE(STATUS "MAGMA INCLUDE DIRECTORIES: ${MAGMA_INCLUDE_DIR}")
|
||||
MESSAGE(STATUS "MAGMA LIBRARIES: ${MAGMA_LIBRARIES}")
|
||||
MESSAGE(STATUS "MAGMA V2 check: ${MAGMA_V2}")
|
||||
set(USE_MAGMA 1)
|
||||
message(STATUS "Compiling with MAGMA support")
|
||||
message(STATUS "MAGMA INCLUDE DIRECTORIES: ${MAGMA_INCLUDE_DIR}")
|
||||
message(STATUS "MAGMA LIBRARIES: ${MAGMA_LIBRARIES}")
|
||||
message(STATUS "MAGMA V2 check: ${MAGMA_V2}")
|
||||
else()
|
||||
MESSAGE(STATUS "MAGMA not found. Compiling without MAGMA support")
|
||||
message(STATUS "MAGMA not found. Compiling without MAGMA support")
|
||||
endif()
|
||||
|
||||
# ARM specific flags
|
||||
FIND_PACKAGE(ARM)
|
||||
find_package(ARM)
|
||||
if(ASIMD_FOUND)
|
||||
MESSAGE(STATUS "asimd/Neon found with compiler flag : -D__NEON__")
|
||||
message(STATUS "asimd/Neon found with compiler flag : -D__NEON__")
|
||||
add_compile_options(-D__NEON__)
|
||||
elseif(NEON_FOUND)
|
||||
MESSAGE(STATUS "Neon found with compiler flag : -mfpu=neon -D__NEON__")
|
||||
message(STATUS "Neon found with compiler flag : -mfpu=neon -D__NEON__")
|
||||
add_compile_options(-mfpu=neon -D__NEON__)
|
||||
endif()
|
||||
if(CORTEXA8_FOUND)
|
||||
MESSAGE(STATUS "Cortex-A8 Found with compiler flag : -mcpu=cortex-a8")
|
||||
message(STATUS "Cortex-A8 Found with compiler flag : -mcpu=cortex-a8")
|
||||
add_compile_options(-mcpu=cortex-a8 -fprefetch-loop-arrays)
|
||||
endif()
|
||||
if(CORTEXA9_FOUND)
|
||||
MESSAGE(STATUS "Cortex-A9 Found with compiler flag : -mcpu=cortex-a9")
|
||||
message(STATUS "Cortex-A9 Found with compiler flag : -mcpu=cortex-a9")
|
||||
add_compile_options(-mcpu=cortex-a9)
|
||||
endif()
|
||||
|
||||
|
|
@ -1418,42 +1418,42 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
add_compile_options(-DUSE_GCC_GET_CPUID)
|
||||
endif()
|
||||
|
||||
FIND_PACKAGE(AVX) # checks AVX and AVX2
|
||||
find_package(AVX) # checks AVX and AVX2
|
||||
|
||||
# we don't set -mavx and -mavx2 flags globally, but only for specific files
|
||||
# however, we want to enable the AVX codepaths, so we still need to
|
||||
# add USE_AVX and USE_AVX2 macro defines
|
||||
if(C_AVX_FOUND)
|
||||
MESSAGE(STATUS "AVX compiler support found")
|
||||
message(STATUS "AVX compiler support found")
|
||||
add_compile_options(-DUSE_AVX)
|
||||
endif()
|
||||
if(C_AVX2_FOUND)
|
||||
MESSAGE(STATUS "AVX2 compiler support found")
|
||||
message(STATUS "AVX2 compiler support found")
|
||||
add_compile_options(-DUSE_AVX2)
|
||||
endif()
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
SET(BLAS_INSTALL_LIBRARIES "OFF"
|
||||
set(BLAS_INSTALL_LIBRARIES "OFF"
|
||||
CACHE BOOL "Copy the required BLAS DLLs into the TH install dirs")
|
||||
endif()
|
||||
|
||||
FIND_PACKAGE(LAPACK)
|
||||
find_package(LAPACK)
|
||||
if(LAPACK_FOUND)
|
||||
SET(USE_LAPACK 1)
|
||||
set(USE_LAPACK 1)
|
||||
endif()
|
||||
|
||||
if(NOT USE_CUDA)
|
||||
message("disabling CUDA because NOT USE_CUDA is set")
|
||||
SET(AT_CUDA_ENABLED 0)
|
||||
set(AT_CUDA_ENABLED 0)
|
||||
else()
|
||||
SET(AT_CUDA_ENABLED 1)
|
||||
set(AT_CUDA_ENABLED 1)
|
||||
endif()
|
||||
|
||||
if(NOT USE_CUDNN)
|
||||
MESSAGE(STATUS "USE_CUDNN is set to 0. Compiling without cuDNN support")
|
||||
message(STATUS "USE_CUDNN is set to 0. Compiling without cuDNN support")
|
||||
set(AT_CUDNN_ENABLED 0)
|
||||
elseif(NOT CUDNN_FOUND)
|
||||
MESSAGE(WARNING "CuDNN not found. Compiling without CuDNN support")
|
||||
message(WARNING "CuDNN not found. Compiling without CuDNN support")
|
||||
set(AT_CUDNN_ENABLED 0)
|
||||
else()
|
||||
include_directories(SYSTEM ${CUDNN_INCLUDE_PATH})
|
||||
|
|
@ -1462,64 +1462,64 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
|
||||
if(NOT USE_ROCM)
|
||||
message("disabling ROCM because NOT USE_ROCM is set")
|
||||
MESSAGE(STATUS "MIOpen not found. Compiling without MIOpen support")
|
||||
message(STATUS "MIOpen not found. Compiling without MIOpen support")
|
||||
set(AT_ROCM_ENABLED 0)
|
||||
else()
|
||||
INCLUDE_DIRECTORIES(BEFORE ${MIOPEN_INCLUDE_DIRS})
|
||||
include_directories(BEFORE ${MIOPEN_INCLUDE_DIRS})
|
||||
set(AT_ROCM_ENABLED 1)
|
||||
endif()
|
||||
|
||||
SET(AT_MKLDNN_ENABLED 0)
|
||||
SET(CAFFE2_USE_MKLDNN OFF)
|
||||
set(AT_MKLDNN_ENABLED 0)
|
||||
set(CAFFE2_USE_MKLDNN OFF)
|
||||
if(USE_MKLDNN)
|
||||
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/public/mkldnn.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/public/mkldnn.cmake)
|
||||
if(MKLDNN_FOUND)
|
||||
SET(AT_MKLDNN_ENABLED 1)
|
||||
INCLUDE_DIRECTORIES(AFTER SYSTEM ${MKLDNN_INCLUDE_DIR})
|
||||
set(AT_MKLDNN_ENABLED 1)
|
||||
include_directories(AFTER SYSTEM ${MKLDNN_INCLUDE_DIR})
|
||||
if(BUILD_CAFFE2_OPS)
|
||||
SET(CAFFE2_USE_MKLDNN ON)
|
||||
LIST(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS caffe2::mkldnn)
|
||||
set(CAFFE2_USE_MKLDNN ON)
|
||||
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS caffe2::mkldnn)
|
||||
endif(BUILD_CAFFE2_OPS)
|
||||
else()
|
||||
MESSAGE(WARNING "MKLDNN could not be found.")
|
||||
message(WARNING "MKLDNN could not be found.")
|
||||
endif()
|
||||
else()
|
||||
MESSAGE("disabling MKLDNN because USE_MKLDNN is not set")
|
||||
message("disabling MKLDNN because USE_MKLDNN is not set")
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
INCLUDE(CheckLibraryExists)
|
||||
include(CheckLibraryExists)
|
||||
# https://github.com/libgit2/libgit2/issues/2128#issuecomment-35649830
|
||||
CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" NEED_LIBRT)
|
||||
if(NEED_LIBRT)
|
||||
list(APPEND Caffe2_DEPENDENCY_LIBS rt)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} rt)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} rt)
|
||||
endif(NEED_LIBRT)
|
||||
endif(UNIX AND NOT APPLE)
|
||||
|
||||
if(UNIX)
|
||||
SET(CMAKE_EXTRA_INCLUDE_FILES "sys/mman.h")
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "sys/mman.h")
|
||||
CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
|
||||
if(HAVE_MMAP)
|
||||
ADD_DEFINITIONS(-DHAVE_MMAP=1)
|
||||
add_definitions(-DHAVE_MMAP=1)
|
||||
endif(HAVE_MMAP)
|
||||
# done for lseek: https://www.gnu.org/software/libc/manual/html_node/File-Position-Primitive.html
|
||||
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
|
||||
add_definitions(-D_FILE_OFFSET_BITS=64)
|
||||
CHECK_FUNCTION_EXISTS(shm_open HAVE_SHM_OPEN)
|
||||
if(HAVE_SHM_OPEN)
|
||||
ADD_DEFINITIONS(-DHAVE_SHM_OPEN=1)
|
||||
add_definitions(-DHAVE_SHM_OPEN=1)
|
||||
endif(HAVE_SHM_OPEN)
|
||||
CHECK_FUNCTION_EXISTS(shm_unlink HAVE_SHM_UNLINK)
|
||||
if(HAVE_SHM_UNLINK)
|
||||
ADD_DEFINITIONS(-DHAVE_SHM_UNLINK=1)
|
||||
add_definitions(-DHAVE_SHM_UNLINK=1)
|
||||
endif(HAVE_SHM_UNLINK)
|
||||
CHECK_FUNCTION_EXISTS(malloc_usable_size HAVE_MALLOC_USABLE_SIZE)
|
||||
if(HAVE_MALLOC_USABLE_SIZE)
|
||||
ADD_DEFINITIONS(-DHAVE_MALLOC_USABLE_SIZE=1)
|
||||
add_definitions(-DHAVE_MALLOC_USABLE_SIZE=1)
|
||||
endif(HAVE_MALLOC_USABLE_SIZE)
|
||||
endif(UNIX)
|
||||
|
||||
ADD_DEFINITIONS(-DMINIZ_DISABLE_ZIP_READER_CRC32_CHECKS)
|
||||
add_definitions(-DMINIZ_DISABLE_ZIP_READER_CRC32_CHECKS)
|
||||
|
||||
# Is __thread supported?
|
||||
if(NOT MSVC)
|
||||
|
|
@ -1528,7 +1528,7 @@ if(NOT INTERN_BUILD_MOBILE)
|
|||
CHECK_C_SOURCE_COMPILES("static __declspec( thread ) int x = 1; int main() { return x; }" C_HAS_THREAD)
|
||||
endif(NOT MSVC)
|
||||
if(NOT C_HAS_THREAD)
|
||||
MESSAGE(STATUS "Warning: __thread is not supported, generating thread-unsafe code")
|
||||
message(STATUS "Warning: __thread is not supported, generating thread-unsafe code")
|
||||
else(NOT C_HAS_THREAD)
|
||||
add_compile_options(-DTH_HAVE_THREAD)
|
||||
endif(NOT C_HAS_THREAD)
|
||||
|
|
|
|||
|
|
@ -226,8 +226,8 @@ function(print_target_properties tgt)
|
|||
|
||||
# Get a list of all cmake properties TODO cache this lazily somehow
|
||||
execute_process(COMMAND cmake --help-property-list OUTPUT_VARIABLE CMAKE_PROPERTY_LIST)
|
||||
STRING(REGEX REPLACE ";" "\\\\;" CMAKE_PROPERTY_LIST "${CMAKE_PROPERTY_LIST}")
|
||||
STRING(REGEX REPLACE "\n" ";" CMAKE_PROPERTY_LIST "${CMAKE_PROPERTY_LIST}")
|
||||
string(REGEX REPLACE ";" "\\\\;" CMAKE_PROPERTY_LIST "${CMAKE_PROPERTY_LIST}")
|
||||
string(REGEX REPLACE "\n" ";" CMAKE_PROPERTY_LIST "${CMAKE_PROPERTY_LIST}")
|
||||
|
||||
foreach(prop ${CMAKE_PROPERTY_LIST})
|
||||
string(REPLACE "<CONFIG>" "${CMAKE_BUILD_TYPE}" prop ${prop})
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
set(PYTORCH_FOUND_HIP FALSE)
|
||||
|
||||
if(NOT DEFINED ENV{ROCM_PATH})
|
||||
SET(ROCM_PATH /opt/rocm)
|
||||
set(ROCM_PATH /opt/rocm)
|
||||
else()
|
||||
SET(ROCM_PATH $ENV{ROCM_PATH})
|
||||
set(ROCM_PATH $ENV{ROCM_PATH})
|
||||
endif()
|
||||
|
||||
# HIP_PATH
|
||||
if(NOT DEFINED ENV{HIP_PATH})
|
||||
SET(HIP_PATH ${ROCM_PATH}/hip)
|
||||
set(HIP_PATH ${ROCM_PATH}/hip)
|
||||
else()
|
||||
SET(HIP_PATH $ENV{HIP_PATH})
|
||||
set(HIP_PATH $ENV{HIP_PATH})
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${HIP_PATH})
|
||||
|
|
@ -19,113 +19,113 @@ endif()
|
|||
|
||||
# HCC_PATH
|
||||
if(NOT DEFINED ENV{HCC_PATH})
|
||||
SET(HCC_PATH ${ROCM_PATH}/hcc)
|
||||
set(HCC_PATH ${ROCM_PATH}/hcc)
|
||||
else()
|
||||
SET(HCC_PATH $ENV{HCC_PATH})
|
||||
set(HCC_PATH $ENV{HCC_PATH})
|
||||
endif()
|
||||
|
||||
# HSA_PATH
|
||||
if(NOT DEFINED ENV{HSA_PATH})
|
||||
SET(HSA_PATH ${ROCM_PATH}/hsa)
|
||||
set(HSA_PATH ${ROCM_PATH}/hsa)
|
||||
else()
|
||||
SET(HSA_PATH $ENV{HSA_PATH})
|
||||
set(HSA_PATH $ENV{HSA_PATH})
|
||||
endif()
|
||||
|
||||
# ROCBLAS_PATH
|
||||
if(NOT DEFINED ENV{ROCBLAS_PATH})
|
||||
SET(ROCBLAS_PATH ${ROCM_PATH}/rocblas)
|
||||
set(ROCBLAS_PATH ${ROCM_PATH}/rocblas)
|
||||
else()
|
||||
SET(ROCBLAS_PATH $ENV{ROCBLAS_PATH})
|
||||
set(ROCBLAS_PATH $ENV{ROCBLAS_PATH})
|
||||
endif()
|
||||
|
||||
# ROCFFT_PATH
|
||||
if(NOT DEFINED ENV{ROCFFT_PATH})
|
||||
SET(ROCFFT_PATH ${ROCM_PATH}/rocfft)
|
||||
set(ROCFFT_PATH ${ROCM_PATH}/rocfft)
|
||||
else()
|
||||
SET(ROCFFT_PATH $ENV{ROCFFT_PATH})
|
||||
set(ROCFFT_PATH $ENV{ROCFFT_PATH})
|
||||
endif()
|
||||
|
||||
# HIPSPARSE_PATH
|
||||
if(NOT DEFINED ENV{HIPSPARSE_PATH})
|
||||
SET(HIPSPARSE_PATH ${ROCM_PATH}/hipsparse)
|
||||
set(HIPSPARSE_PATH ${ROCM_PATH}/hipsparse)
|
||||
else()
|
||||
SET(HIPSPARSE_PATH $ENV{HIPSPARSE_PATH})
|
||||
set(HIPSPARSE_PATH $ENV{HIPSPARSE_PATH})
|
||||
endif()
|
||||
|
||||
# THRUST_PATH
|
||||
if(DEFINED ENV{THRUST_PATH})
|
||||
SET(THRUST_PATH $ENV{THRUST_PATH})
|
||||
set(THRUST_PATH $ENV{THRUST_PATH})
|
||||
else()
|
||||
SET(THRUST_PATH ${ROCM_PATH}/include)
|
||||
set(THRUST_PATH ${ROCM_PATH}/include)
|
||||
endif()
|
||||
|
||||
# HIPRAND_PATH
|
||||
if(NOT DEFINED ENV{HIPRAND_PATH})
|
||||
SET(HIPRAND_PATH ${ROCM_PATH}/hiprand)
|
||||
set(HIPRAND_PATH ${ROCM_PATH}/hiprand)
|
||||
else()
|
||||
SET(HIPRAND_PATH $ENV{HIPRAND_PATH})
|
||||
set(HIPRAND_PATH $ENV{HIPRAND_PATH})
|
||||
endif()
|
||||
|
||||
# ROCRAND_PATH
|
||||
if(NOT DEFINED ENV{ROCRAND_PATH})
|
||||
SET(ROCRAND_PATH ${ROCM_PATH}/rocrand)
|
||||
set(ROCRAND_PATH ${ROCM_PATH}/rocrand)
|
||||
else()
|
||||
SET(ROCRAND_PATH $ENV{ROCRAND_PATH})
|
||||
set(ROCRAND_PATH $ENV{ROCRAND_PATH})
|
||||
endif()
|
||||
|
||||
# MIOPEN_PATH
|
||||
if(NOT DEFINED ENV{MIOPEN_PATH})
|
||||
SET(MIOPEN_PATH ${ROCM_PATH}/miopen)
|
||||
set(MIOPEN_PATH ${ROCM_PATH}/miopen)
|
||||
else()
|
||||
SET(MIOPEN_PATH $ENV{MIOPEN_PATH})
|
||||
set(MIOPEN_PATH $ENV{MIOPEN_PATH})
|
||||
endif()
|
||||
|
||||
# RCCL_PATH
|
||||
if(NOT DEFINED ENV{RCCL_PATH})
|
||||
SET(RCCL_PATH ${ROCM_PATH}/rccl)
|
||||
set(RCCL_PATH ${ROCM_PATH}/rccl)
|
||||
else()
|
||||
SET(RCCL_PATH $ENV{RCCL_PATH})
|
||||
set(RCCL_PATH $ENV{RCCL_PATH})
|
||||
endif()
|
||||
|
||||
# ROCPRIM_PATH
|
||||
if(NOT DEFINED ENV{ROCPRIM_PATH})
|
||||
SET(ROCPRIM_PATH ${ROCM_PATH}/rocprim)
|
||||
set(ROCPRIM_PATH ${ROCM_PATH}/rocprim)
|
||||
else()
|
||||
SET(ROCPRIM_PATH $ENV{ROCPRIM_PATH})
|
||||
set(ROCPRIM_PATH $ENV{ROCPRIM_PATH})
|
||||
endif()
|
||||
|
||||
# HIPCUB_PATH
|
||||
if(NOT DEFINED ENV{HIPCUB_PATH})
|
||||
SET(HIPCUB_PATH ${ROCM_PATH}/hipcub)
|
||||
set(HIPCUB_PATH ${ROCM_PATH}/hipcub)
|
||||
else()
|
||||
SET(HIPCUB_PATH $ENV{HIPCUB_PATH})
|
||||
set(HIPCUB_PATH $ENV{HIPCUB_PATH})
|
||||
endif()
|
||||
|
||||
# ROCTHRUST_PATH
|
||||
if(NOT DEFINED ENV{ROCTHRUST_PATH})
|
||||
SET(ROCTHRUST_PATH ${ROCM_PATH}/rocthrust)
|
||||
set(ROCTHRUST_PATH ${ROCM_PATH}/rocthrust)
|
||||
else()
|
||||
SET(ROCTHRUST_PATH $ENV{ROCTHRUST_PATH})
|
||||
set(ROCTHRUST_PATH $ENV{ROCTHRUST_PATH})
|
||||
endif()
|
||||
|
||||
# ROCTRACER_PATH
|
||||
if(NOT DEFINED ENV{ROCTRACER_PATH})
|
||||
SET(ROCTRACER_PATH ${ROCM_PATH}/roctracer)
|
||||
set(ROCTRACER_PATH ${ROCM_PATH}/roctracer)
|
||||
else()
|
||||
SET(ROCTRACER_PATH $ENV{ROCTRACER_PATH})
|
||||
set(ROCTRACER_PATH $ENV{ROCTRACER_PATH})
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ENV{PYTORCH_ROCM_ARCH})
|
||||
SET(PYTORCH_ROCM_ARCH gfx803;gfx900;gfx906;gfx908)
|
||||
set(PYTORCH_ROCM_ARCH gfx803;gfx900;gfx906;gfx908)
|
||||
else()
|
||||
SET(PYTORCH_ROCM_ARCH $ENV{PYTORCH_ROCM_ARCH})
|
||||
set(PYTORCH_ROCM_ARCH $ENV{PYTORCH_ROCM_ARCH})
|
||||
endif()
|
||||
|
||||
# Add HIP to the CMAKE Module Path
|
||||
set(CMAKE_MODULE_PATH ${HIP_PATH}/cmake ${CMAKE_MODULE_PATH})
|
||||
|
||||
# Disable Asserts In Code (Can't use asserts on HIP stack.)
|
||||
ADD_DEFINITIONS(-DNDEBUG)
|
||||
add_definitions(-DNDEBUG)
|
||||
|
||||
macro(find_package_and_print_version PACKAGE_NAME)
|
||||
find_package("${PACKAGE_NAME}" ${ARGN})
|
||||
|
|
@ -179,17 +179,17 @@ if(HIP_FOUND)
|
|||
# recognizable by hcc, but not gcc and clang. Right now in our
|
||||
# setup, hcc is only used for linking, but it should be used to
|
||||
# compile the *_hip.cc files as well.
|
||||
FIND_LIBRARY(PYTORCH_HIP_HCC_LIBRARIES hip_hcc HINTS ${HIP_PATH}/lib)
|
||||
find_library(PYTORCH_HIP_HCC_LIBRARIES hip_hcc HINTS ${HIP_PATH}/lib)
|
||||
# TODO: miopen_LIBRARIES should return fullpath to the library file,
|
||||
# however currently it's just the lib name
|
||||
FIND_LIBRARY(PYTORCH_MIOPEN_LIBRARIES ${miopen_LIBRARIES} HINTS ${MIOPEN_PATH}/lib)
|
||||
find_library(PYTORCH_MIOPEN_LIBRARIES ${miopen_LIBRARIES} HINTS ${MIOPEN_PATH}/lib)
|
||||
# TODO: rccl_LIBRARIES should return fullpath to the library file,
|
||||
# however currently it's just the lib name
|
||||
FIND_LIBRARY(PYTORCH_RCCL_LIBRARIES ${rccl_LIBRARIES} HINTS ${RCCL_PATH}/lib)
|
||||
find_library(PYTORCH_RCCL_LIBRARIES ${rccl_LIBRARIES} HINTS ${RCCL_PATH}/lib)
|
||||
# hiprtc is part of HIP
|
||||
FIND_LIBRARY(ROCM_HIPRTC_LIB hiprtc HINTS ${HIP_PATH}/lib)
|
||||
find_library(ROCM_HIPRTC_LIB hiprtc HINTS ${HIP_PATH}/lib)
|
||||
# roctx is part of roctracer
|
||||
FIND_LIBRARY(ROCM_ROCTX_LIB roctx64 HINTS ${ROCTRACER_PATH}/lib)
|
||||
find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCTRACER_PATH}/lib)
|
||||
set(roctracer_INCLUDE_DIRS ${ROCTRACER_PATH}/include)
|
||||
|
||||
# Necessary includes for building PyTorch since we include HIP headers that depend on hcc/hsa headers.
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
project(libshm C CXX)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
|
||||
CMAKE_POLICY(VERSION 2.6)
|
||||
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
|
||||
cmake_policy(VERSION 2.6)
|
||||
|
||||
set(TORCH_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../../)
|
||||
include(${TORCH_ROOT}/cmake/public/threads.cmake)
|
||||
|
||||
if(NOT LIBSHM_INSTALL_LIB_SUBDIR)
|
||||
SET(LIBSHM_INSTALL_LIB_SUBDIR "lib" CACHE PATH "libshm install library directory")
|
||||
set(LIBSHM_INSTALL_LIB_SUBDIR "lib" CACHE PATH "libshm install library directory")
|
||||
endif()
|
||||
|
||||
# Flags
|
||||
# When using MSVC
|
||||
if(MSVC)
|
||||
# we want to respect the standard, and we are bored of those **** .
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||
endif(MSVC)
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS "3.1")
|
||||
SET(CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
SET(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
endif()
|
||||
|
||||
ADD_LIBRARY(shm SHARED core.cpp)
|
||||
add_library(shm SHARED core.cpp)
|
||||
|
||||
target_include_directories(shm PUBLIC
|
||||
${CMAKE_BINARY_DIR}/aten/src # provides "ATen/TypeExtendedInterface.h" to ATen.h
|
||||
|
|
@ -30,14 +30,14 @@ target_include_directories(shm PUBLIC
|
|||
${CMAKE_BINARY_DIR}/caffe2/aten/src # provides <TH/THGeneral.h> to THC.h
|
||||
)
|
||||
|
||||
ADD_EXECUTABLE(torch_shm_manager manager.cpp)
|
||||
add_executable(torch_shm_manager manager.cpp)
|
||||
target_link_libraries(torch_shm_manager shm)
|
||||
set_target_properties(torch_shm_manager PROPERTIES INSTALL_RPATH "${_rpath_portable_origin}/../lib")
|
||||
### Torch packages supposes libraries prefix is "lib"
|
||||
SET_TARGET_PROPERTIES(shm PROPERTIES
|
||||
set_target_properties(shm PROPERTIES
|
||||
PREFIX "lib"
|
||||
IMPORT_PREFIX "lib")
|
||||
TARGET_LINK_LIBRARIES(shm torch c10)
|
||||
target_link_libraries(shm torch c10)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
include(CheckLibraryExists)
|
||||
|
|
@ -76,6 +76,6 @@ if(UNIX AND NOT APPLE)
|
|||
endif()
|
||||
|
||||
|
||||
INSTALL(TARGETS shm LIBRARY DESTINATION ${LIBSHM_INSTALL_LIB_SUBDIR})
|
||||
INSTALL(FILES libshm.h DESTINATION "include")
|
||||
INSTALL(TARGETS torch_shm_manager DESTINATION "bin")
|
||||
install(TARGETS shm LIBRARY DESTINATION ${LIBSHM_INSTALL_LIB_SUBDIR})
|
||||
install(FILES libshm.h DESTINATION "include")
|
||||
install(TARGETS torch_shm_manager DESTINATION "bin")
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
if(NOT LIBSHM_INSTALL_LIB_SUBDIR)
|
||||
SET(LIBSHM_INSTALL_BIN_SUBDIR "bin" CACHE PATH "libshm install binary directory")
|
||||
SET(LIBSHM_INSTALL_LIB_SUBDIR "lib" CACHE PATH "libshm install library directory")
|
||||
set(LIBSHM_INSTALL_BIN_SUBDIR "bin" CACHE PATH "libshm install binary directory")
|
||||
set(LIBSHM_INSTALL_LIB_SUBDIR "lib" CACHE PATH "libshm install library directory")
|
||||
endif()
|
||||
|
||||
ADD_LIBRARY(shm SHARED core.cpp)
|
||||
add_library(shm SHARED core.cpp)
|
||||
|
||||
TARGET_COMPILE_DEFINITIONS(shm PRIVATE
|
||||
target_compile_definitions(shm PRIVATE
|
||||
"_CRT_SECURE_NO_DEPRECATE=1"
|
||||
"SHM_EXPORTS"
|
||||
)
|
||||
|
|
@ -17,12 +17,12 @@ target_include_directories(shm PRIVATE
|
|||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES(shm torch c10)
|
||||
target_link_libraries(shm torch c10)
|
||||
|
||||
|
||||
INSTALL(TARGETS shm DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}")
|
||||
INSTALL(FILES libshm.h DESTINATION "include")
|
||||
install(TARGETS shm DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}")
|
||||
install(FILES libshm.h DESTINATION "include")
|
||||
|
||||
if(MSVC AND BUILD_SHARED_LIBS)
|
||||
INSTALL(FILES $<TARGET_PDB_FILE:shm> DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}" OPTIONAL)
|
||||
install(FILES $<TARGET_PDB_FILE:shm> DESTINATION "${LIBSHM_INSTALL_LIB_SUBDIR}" OPTIONAL)
|
||||
endif()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user