Skip to content

Commit 277b4b2

Browse files
authored
Asynchronous pool memory resource (NVIDIA#2814)
* Add asyncrhonous pool - allocate from a common pool or a per-stream pending free list - deallocate to per-stream pending free list - allow immediate recycling on a per-stream basis - return free blocks to global pool based on event completion * Add try_allocate_from_free to syncrhonous pool - it tries to use free list but never fall backs to upstream and it doesn't throw OOM if there's insufficient memory in the free list * Fix thrust/cub inclusion * Add typedefs for map and set with pooling allocator. Signed-off-by: Michał Zientkiewicz <[email protected]>
1 parent c191574 commit 277b4b2

File tree

13 files changed

+971
-14
lines changed

13 files changed

+971
-14
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ if (NOT CUDA_targeted_archs)
310310
" is supported by ${USED_CUDA_COMPILER}, use one or more of: ${CUDA_supported_archs}")
311311
endif()
312312

313+
313314
# Add gpu-arch and toolkit flags for clang when compiling cuda (if used)
314315
if (DALI_CLANG_ONLY)
315316
CUDA_get_gencode_args(CUDA_gencode_flags_clang ${USED_CUDA_COMPILER} ${CUDA_targeted_archs})
@@ -341,6 +342,8 @@ add_custom_target("check")
341342
add_custom_target("check-gtest")
342343
add_dependencies("check" "check-gtest")
343344

345+
CUDA_move_toolkit_include_dirs_to_end()
346+
344347
# Project build
345348
add_subdirectory(dali)
346349

cmake/CUDA_utils.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,22 @@ function(CUDA_find_library_stub out_path lib_name)
174174
find_library(${out_path} ${lib_name} PATHS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}
175175
PATH_SUFFIXES lib/stubs lib64/stubs)
176176
endfunction()
177+
178+
function(CUDA_remove_toolkit_include_dirs include_dirs)
179+
if (NOT ${CMAKE_CUDA_TOOLKIT_ROOT})
180+
CUDA_get_toolkit_from_compiler(CUDA_TOOLKIT_PATH_VAR)
181+
else()
182+
set(CUDA_TOOLKIT_PATH_VAR ${CMAKE_CUDA_TOOLKIT_ROOT})
183+
endif()
184+
list(REMOVE_ITEM ${include_dirs} "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}" "${CUDA_TOOLKIT_PATH_VAR}/include")
185+
set(${include_dirs} ${${include_dirs}} PARENT_SCOPE)
186+
endfunction()
187+
188+
function(CUDA_move_toolkit_include_dirs_to_end)
189+
get_property(tmp_include_dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
190+
CUDA_remove_toolkit_include_dirs(tmp_include_dirs)
191+
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES ${tmp_include_dirs})
192+
include_directories(SYSTEM "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}")
193+
get_property(tmp_include_dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
194+
message("\nInclude directories = ${tmp_include_dirs}\n")
195+
endfunction()

cmake/Dependencies.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
CUDA_find_library(CUDART_LIB cudart_static)
2020
list(APPEND DALI_EXCLUDES libcudart_static.a)
2121

22-
include_directories(SYSTEM ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
23-
2422
# For NVJPEG
2523
if (BUILD_NVJPEG)
2624
find_package(NVJPEG 9.0 REQUIRED)
@@ -134,3 +132,5 @@ list(APPEND DALI_EXCLUDES libsupc++.a;libstdc++.a;libstdc++_nonshared.a;)
134132
if(BUILD_NVOF)
135133
include_directories(${PROJECT_SOURCE_DIR}/third_party/turing_of)
136134
endif()
135+
136+
include_directories(SYSTEM ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})

cmake/Dependencies.common.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,7 @@ endif()
187187
##################################################################
188188
# CUTLASS
189189
##################################################################
190-
set(CUTLASS_ENABLE_HEADERS_ONLY ON CACHE BOOL "Enable only the header library")
191-
check_and_add_cmake_submodule(${PROJECT_SOURCE_DIR}/third_party/cutlass)
192-
list(APPEND DALI_LIBS CUTLASS)
190+
include_directories(SYSTEM third_party/cutlass/include)
193191

194192
##################################################################
195193
# CocoAPI

dali/core/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ list(FILTER DALI_CORE_SRCS EXCLUDE REGEX ".*dynlink_cufile.cc")
7878

7979
adjust_source_file_language_property("${DALI_CORE_SRCS}")
8080
add_library(dali_core ${LIBTYPE} ${DALI_CORE_SRCS})
81-
target_include_directories(dali_core PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
81+
target_include_directories(dali_core SYSTEM PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
8282
target_link_libraries(dali_core PRIVATE dynlink_cuda ${CUDART_LIB})
8383
if (BUILD_CUFILE)
8484
target_link_libraries(dali_core PRIVATE dynlink_cufile)

0 commit comments

Comments
 (0)