Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
3e5c870
Put all internal symbols in the arrayfire namespace
umar456 Dec 16, 2022
7ebb03c
Move oneapi namespace into the arrayfire namespace
umar456 Dec 31, 2022
53cf9a6
Fix af_spdlog target for non-header-only builds
umar456 Dec 30, 2022
c611a2b
Make CUDA libraries for dynamic linking private
umar456 Dec 30, 2022
2dfde56
Add Version class to manage external version printing and conparisons
umar456 Dec 31, 2022
e3cb189
Update AF_ASSERT_ARRAYS_[EQ,NEAR] to accept sparse arrays
umar456 Dec 31, 2022
aa429a8
Add support for CUDA 12
umar456 Jan 1, 2023
77da1a8
Enable support for p2447 style span initialization
umar456 Jan 2, 2023
76bbbd8
Update compiers.h header to add if constexpr macro
umar456 Jan 2, 2023
c80818c
Revert CUDA C++ standard to 14 to support older CUDA toolkits
umar456 Jan 2, 2023
6f0de41
Fix CUB include paths when CUDA 10.2 and lower toolkits are used
umar456 Jan 2, 2023
d3d3a23
Set minimum toolkit version to 10.2
umar456 Jan 2, 2023
6392a84
Fix errors in the fmt library when printing const dim3 values
umar456 Jan 3, 2023
4c01aab
Fix warning when building spdlog. Caused errors on GitHub actions
umar456 Jan 3, 2023
b7d56d7
Cleanup advanced CMake variables and Gtest compile flags and def
umar456 Jan 3, 2023
65bdf3f
Fix unused cusparse CSC code path in the CUDA backend
umar456 Jan 9, 2023
56e15bf
Check the result of cuda error functions before using results
umar456 Jan 9, 2023
2f6a497
Clear the thread_local vectors and stringstream in case of exception
umar456 Jan 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
110 changes: 76 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ endif()
#Set Intel OpenMP as default MKL thread layer
set(MKL_THREAD_LAYER "Intel OpenMP" CACHE STRING "The thread layer to choose for MKL")

find_package(CUDA 9.0)
find_package(CUDA 10.2)
find_package(cuDNN 4.0)
find_package(OpenCL 1.2)
find_package(OpenGL)
Expand Down Expand Up @@ -173,37 +173,6 @@ if(DEFINED USE_CPU_MKL OR DEFINED USE_OPENCL_MKL)
endif()
endif()

mark_as_advanced(
AF_BUILD_FRAMEWORK
AF_CACHE_KERNELS_TO_DISK
AF_INSTALL_STANDALONE
AF_WITH_CPUID
AF_WITH_LOGGING
AF_WITH_STACKTRACE
AF_WITH_STATIC_FREEIMAGE
AF_WITH_NONFREE
AF_WITH_IMAGEIO
AF_WITH_RELATIVE_TEST_DIR
AF_TEST_WITH_MTX_FILES
ArrayFire_DIR
Boost_INCLUDE_DIR
CLEAR CUDA_VERSION
CUDA_HOST_COMPILER
CUDA_SDK_ROOT_DIR
CUDA_USE_STATIC_CUDA_RUNTIME
CUDA_rt_LIBRARY
SPDLOG_BUILD_EXAMPLES
SPDLOG_BUILD_TESTING
ADDR2LINE_PROGRAM
Backtrace_LIBRARY
AF_WITH_STATIC_MKL
GIT
Forge_DIR
glad_DIR
spdlog_DIR
FG_BUILD_OFFLINE
)

if(AF_COMPUTE_LIBRARY STREQUAL "Intel-MKL")
set(BLA_VENDOR "Intel10_64lp")
if(MKL_THREAD_LAYER STREQUAL "Sequential")
Expand Down Expand Up @@ -261,16 +230,23 @@ else()
)
add_subdirectory(${${spdlog_prefix}_SOURCE_DIR} ${${spdlog_prefix}_BINARY_DIR} EXCLUDE_FROM_ALL)

target_include_directories(af_spdlog SYSTEM INTERFACE "${${spdlog_prefix}_SOURCE_DIR}/include")
if(TARGET fmt::fmt)
set_target_properties(af_spdlog
PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "SPDLOG_FMT_EXTERNAL")
endif()

if(AF_WITH_SPDLOG_HEADER_ONLY)
set_target_properties(af_spdlog
PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "$<TARGET_PROPERTY:af_spdlog,INTERFACE_COMPILE_DEFINITIONS>;SPDLOG_HEADER_ONLY")
INTERFACE_LINK_LIBRARIES "spdlog_header_only")
else()
target_compile_options(spdlog
PRIVATE
$<$<BOOL:${has_cxx_fp_model}>:-fp-model precise>)
set_target_properties(af_spdlog
PROPERTIES
INTERFACE_LINK_LIBRARIES "spdlog")
endif()
endif()

Expand Down Expand Up @@ -299,6 +275,9 @@ if(NOT TARGET nonstd::span-lite)
PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
set_target_properties(span-lite
PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${span_include_dir}")
set_target_properties(span-lite
PROPERTIES INTERFACE_COMPILE_DEFINITIONS "span_FEATURE_WITH_INITIALIZER_LIST_P2447=1")

endif()

af_dep_check_and_populate(${assets_prefix}
Expand Down Expand Up @@ -593,6 +572,19 @@ include(CPackConfig)
# for ArrayFire Development. They are marked hidden.
# If VCPKG is not used, marking them is not harmful
mark_as_advanced(
AF_BUILD_FRAMEWORK
AF_CACHE_KERNELS_TO_DISK
AF_INSTALL_STANDALONE
AF_WITH_CPUID
AF_WITH_LOGGING
AF_WITH_STACKTRACE
AF_WITH_STATIC_FREEIMAGE
AF_WITH_NONFREE
AF_WITH_IMAGEIO
AF_WITH_RELATIVE_TEST_DIR
AF_TEST_WITH_MTX_FILES
ArrayFire_DIR

VCPKG_APPLOCAL_DEPS
VCPKG_BOOTSTRAP_OPTIONS
VCPKG_INSTALL_OPTIONS
Expand All @@ -608,4 +600,54 @@ mark_as_advanced(
Z_VCPKG_PWSH_PATH
Z_VCPKG_CL
_VCPKG_INSTALLED_DIR

Boost_INCLUDE_DIR
CLEAR CUDA_VERSION
CUDA_HOST_COMPILER
CUDA_SDK_ROOT_DIR
CUDA_USE_STATIC_CUDA_RUNTIME
CUDA_rt_LIBRARY
SPDLOG_BUILD_EXAMPLES
SPDLOG_BUILD_TESTING
ADDR2LINE_PROGRAM
Backtrace_LIBRARY
AF_WITH_STATIC_MKL
GIT
Forge_DIR
glad_DIR
spdlog_DIR
FG_BUILD_OFFLINE
SPAN_LITE_COLOURISE_TEST
SPAN_LITE_EXPORT_PACKAGE
SPAN_LITE_OPT_BUILD_EXAMPLES
SPAN_LITE_OPT_BUILD_TESTS
SPAN_LITE_OPT_SELECT_NONSTD
SPAN_LITE_OPT_SELECT_STD
FETCHCONTENT_SOURCE_DIR_SPAN-LITE
SPDLOG_BUILD_ALL
SPDLOG_BUILD_BENCH
SPDLOG_BUILD_EXAMPLE
SPDLOG_BUILD_EXAMPLE_HO
SPDLOG_BUILD_SHARED
SPDLOG_BUILD_TESTS
SPDLOG_BUILD_TESTS_HO
SPDLOG_BUILD_WARNINGS
SPDLOG_CLOCK_COARSE
SPDLOG_DISABLE_DEFAULT_LOGGER
SPDLOG_ENABLE_PCH
SPDLOG_FMT_EXTERNAL
SPDLOG_FMT_EXTERNAL_HO
SPDLOG_INSTALL
SPDLOG_NO_ATOMIC_LEVELS
SPDLOG_NO_EXCEPTIONS
SPDLOG_NO_THREAD_ID
SPDLOG_NO_TLS
SPDLOG_PREVENT_CHILD_FD
SPDLOG_SANITIZE_ADDRESS
SPDLOG_TIDY
SPDLOG_WCHAR_FILENAMES
SPDLOG_WCHAR_SUPPORT
cub_include_dir
fmt_DIR
span-lite_DIR
)
7 changes: 4 additions & 3 deletions CMakeModules/FileToString.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ function(FILE_TO_STRING)
endif(RTCS_NULLTERM)

string(REPLACE "." "_" var_name ${var_name})
string(REPLACE "\ " "_" namespace_name ${RTCS_NAMESPACE})

set(_output_path "${CMAKE_CURRENT_BINARY_DIR}/${RTCS_OUTPUT_DIR}")
if(RTCS_WITH_EXTENSION)
Expand All @@ -66,9 +67,9 @@ function(FILE_TO_STRING)

list(APPEND _output_files ${_output_file})
endforeach()
add_custom_target(${RTCS_NAMESPACE}_${RTCS_OUTPUT_DIR}_bin_target DEPENDS ${_output_files})
set_target_properties(${RTCS_NAMESPACE}_${RTCS_OUTPUT_DIR}_bin_target PROPERTIES FOLDER "Generated Targets")
add_custom_target(${namespace_name}_${RTCS_OUTPUT_DIR}_bin_target DEPENDS ${_output_files})
set_target_properties(${namespace_name}_${RTCS_OUTPUT_DIR}_bin_target PROPERTIES FOLDER "Generated Targets")

set("${RTCS_VARNAME}" ${_output_files} PARENT_SCOPE)
set("${RTCS_TARGETS}" ${RTCS_NAMESPACE}_${RTCS_OUTPUT_DIR}_bin_target PARENT_SCOPE)
set("${RTCS_TARGETS}" ${namespace_name}_${RTCS_OUTPUT_DIR}_bin_target PARENT_SCOPE)
endfunction(FILE_TO_STRING)
5 changes: 5 additions & 0 deletions CMakeModules/InternalUtils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,11 @@ macro(arrayfire_set_cmake_default_variables)
# #else
# #define AF_CONSTEXPR
# #endif
# #if __cpp_if_constexpr || __cplusplus >= 201606L
# #define AF_IF_CONSTEXPR if constexpr
# #else
# #define AF_IF_CONSTEXPR if
# #endif
# ]=])
# include(WriteCompilerDetectionHeader)
# write_compiler_detection_header(
Expand Down
Loading