You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.7 KiB
68 lines
2.7 KiB
add_subdirectory(detail)
|
|
|
|
function(math_library TARGET)
|
|
# math_library is a function to create math library.
|
|
# The interface is the same as cc_library.
|
|
# But it handle split GPU/CPU code and link some common library.
|
|
set(cc_srcs)
|
|
set(cu_srcs)
|
|
set(hip_srcs)
|
|
set(math_common_deps device_context framework_proto)
|
|
set(multiValueArgs DEPS)
|
|
cmake_parse_arguments(math_library "${options}" "${oneValueArgs}"
|
|
"${multiValueArgs}" ${ARGN})
|
|
|
|
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.cc)
|
|
list(APPEND cc_srcs ${TARGET}.cc)
|
|
endif()
|
|
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.cu)
|
|
list(APPEND cu_srcs ${TARGET}.cu)
|
|
endif()
|
|
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.hip.cu)
|
|
list(APPEND hip_srcs ${TARGET}.hip.cu)
|
|
endif()
|
|
|
|
list(LENGTH cc_srcs cc_srcs_len)
|
|
if (WITH_GPU)
|
|
nv_library(${TARGET} SRCS ${cc_srcs} ${cu_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
|
|
elseif (WITH_AMD_GPU)
|
|
hip_library(${TARGET} SRCS ${cc_srcs} ${hip_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
|
|
elseif(${cc_srcs_len} GREATER 0)
|
|
cc_library(${TARGET} SRCS ${cc_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
|
|
endif()
|
|
endfunction()
|
|
|
|
# please add new math_library in alphabetical order
|
|
math_library(concat)
|
|
math_library(context_project DEPS im2col math_function)
|
|
math_library(cross_entropy)
|
|
math_library(cos_sim_functor)
|
|
math_library(depthwise_conv)
|
|
math_library(gru_compute DEPS activation_functions math_function)
|
|
math_library(im2col)
|
|
math_library(lstm_compute DEPS activation_functions)
|
|
cc_library(blas SRCS blas.cc DEPS cblas framework_proto device_context)
|
|
math_library(math_function DEPS blas)
|
|
math_library(maxouting)
|
|
math_library(pooling)
|
|
math_library(selected_rows_functor DEPS selected_rows math_function)
|
|
math_library(sequence2batch)
|
|
math_library(sequence_padding)
|
|
math_library(sequence_pooling DEPS math_function)
|
|
math_library(sequence_scale)
|
|
math_library(softmax DEPS math_function)
|
|
math_library(matrix_bit_code)
|
|
math_library(unpooling)
|
|
math_library(vol2col)
|
|
|
|
cc_test(math_function_test SRCS math_function_test.cc DEPS math_function)
|
|
cc_test(selected_rows_functor_test SRCS selected_rows_functor_test.cc DEPS selected_rows_functor)
|
|
cc_test(im2col_test SRCS im2col_test.cc DEPS im2col)
|
|
cc_test(vol2col_test SRCS vol2col_test.cc DEPS vol2col)
|
|
cc_test(sequence_padding_test SRCS sequence_padding_test.cc DEPS sequence_padding)
|
|
if(WITH_GPU)
|
|
nv_test(math_function_gpu_test SRCS math_function_test.cu DEPS math_function)
|
|
nv_test(selected_rows_functor_gpu_test SRCS selected_rows_functor_test.cu DEPS selected_rows_functor math_function)
|
|
endif()
|
|
cc_test(concat_test SRCS concat_test.cc DEPS concat)
|