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.
145 lines
4.6 KiB
145 lines
4.6 KiB
# Gserver package contains:
|
|
# * Layers
|
|
# * Activations
|
|
# * DataProviders
|
|
# * Evaluators
|
|
# * GradientMachines(NeuralNetwork)
|
|
file(GLOB_RECURSE GSERVER_HEADER RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.h")
|
|
file(GLOB_RECURSE GSERVER_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.cpp")
|
|
set(GSERVER_SOURCES
|
|
layers/LstmCompute.cu
|
|
layers/GruCompute.cu
|
|
${GSERVER_SOURCES})
|
|
|
|
macro(filter_test VAR_NAME)
|
|
set(tmp)
|
|
foreach(p IN LISTS ${VAR_NAME})
|
|
if(NOT ${p} MATCHES ".*tests/.*")
|
|
set(tmp ${p} ${tmp})
|
|
endif()
|
|
endforeach()
|
|
set(${VAR_NAME} ${tmp})
|
|
endmacro()
|
|
|
|
filter_test(GSERVER_HEADER)
|
|
filter_test(GSERVER_SOURCES)
|
|
|
|
if(NOT WITH_MKLDNN)
|
|
file(GLOB_RECURSE DNN_HEADER RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "MKLDNN*.h")
|
|
file(GLOB_RECURSE DNN_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "MKLDNN*.cpp")
|
|
list(REMOVE_ITEM GSERVER_HEADER ${DNN_HEADER})
|
|
list(REMOVE_ITEM GSERVER_SOURCES ${DNN_SOURCES})
|
|
message(STATUS "Skip compiling with MKLDNNLayers and MKLDNNActivations")
|
|
else()
|
|
message(STATUS "Compile with MKLDNNLayers and MKLDNNActivations")
|
|
endif()
|
|
|
|
if(NOT WITH_GPU)
|
|
list(REMOVE_ITEM GSERVER_HEADER
|
|
layers/CudnnConvBaseLayer.h
|
|
layers/CudnnConvLayer.h
|
|
layers/CudnnConvTransLayer.h
|
|
layers/CudnnPoolLayer.h
|
|
layers/CudnnBatchNormLayer.h)
|
|
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
layers/CudnnConvBaseLayer.cpp
|
|
layers/CudnnConvLayer.cpp
|
|
layers/CudnnConvTransLayer.cpp
|
|
layers/CudnnPoolLayer.cpp
|
|
layers/CudnnBatchNormLayer.cpp)
|
|
compile_cu_as_cpp(layers/LstmCompute.cu)
|
|
compile_cu_as_cpp(layers/GruCompute.cu)
|
|
endif()
|
|
|
|
if(NOT WITH_PYTHON)
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
dataproviders/PyDataProvider.cpp)
|
|
|
|
list(REMOVE_ITEM GSERVER_HEADER
|
|
dataproviders/PyDataProvider.h)
|
|
endif()
|
|
|
|
if(MOBILE_INFERENCE)
|
|
# Remove evaluators
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
layers/ValidationLayer.cpp
|
|
evaluators/Evaluator.cpp
|
|
evaluators/DetectionMAPEvaluator.cpp
|
|
evaluators/CTCErrorEvaluator.cpp
|
|
evaluators/ChunkEvaluator.cpp)
|
|
|
|
# Remove dataproviders
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
dataproviders/DataProvider.cpp
|
|
dataproviders/MultiDataProvider.cpp
|
|
dataproviders/PyDataProvider2.cpp
|
|
dataproviders/PyDataProvider.cpp)
|
|
|
|
# Remove useless gradientmachines
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
gradientmachines/MultiNetwork.cpp
|
|
gradientmachines/RecurrentGradientMachine.cpp
|
|
gradientmachines/ParallelNeuralNetwork.cpp
|
|
gradientmachines/GradientMachineMode.cpp
|
|
gradientmachines/MultiGradientMachine.cpp)
|
|
|
|
# Remove layers that used in training
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
layers/RecurrentLayerGroup.cpp
|
|
layers/CostLayer.cpp
|
|
layers/MultiBoxLossLayer.cpp
|
|
layers/WarpCTCLayer.cpp
|
|
layers/CTCLayer.cpp
|
|
layers/LinearChainCTC.cpp
|
|
layers/PrintLayer.cpp)
|
|
list(REMOVE_ITEM GSERVER_SOURCES
|
|
layers/OuterProdLayer.cpp
|
|
layers/SumToOneNormLayer.cpp
|
|
layers/ConvShiftLayer.cpp
|
|
layers/InterpolationLayer.cpp
|
|
layers/AgentLayer.cpp
|
|
layers/DotMulOperator.cpp
|
|
layers/GruStepLayer.cpp
|
|
layers/LstmStepLayer.cpp
|
|
layers/ConvexCombinationLayer.cpp
|
|
layers/Conv3DLayer.cpp
|
|
layers/DeConv3DLayer.cpp
|
|
layers/CropLayer.cpp
|
|
layers/CrossEntropyOverBeam.cpp
|
|
layers/DataNormLayer.cpp
|
|
layers/FeatureMapExpandLayer.cpp
|
|
layers/HierarchicalSigmoidLayer.cpp
|
|
layers/MultinomialSampler.cpp
|
|
layers/NCELayer.cpp
|
|
layers/KmaxSeqScoreLayer.cpp
|
|
layers/MDLstmLayer.cpp
|
|
layers/MultiplexLayer.cpp
|
|
layers/PadLayer.cpp
|
|
layers/Pool3DLayer.cpp
|
|
layers/ResizeLayer.cpp
|
|
layers/RotateLayer.cpp
|
|
layers/RowConvLayer.cpp
|
|
layers/RowL2NormLayer.cpp
|
|
layers/SamplingIdLayer.cpp
|
|
layers/ScaleShiftLayer.cpp
|
|
layers/SelectiveFullyConnectedLayer.cpp
|
|
layers/SpatialPyramidPoolLayer.cpp
|
|
layers/BilinearInterpLayer.cpp
|
|
layers/ClipLayer.cpp)
|
|
endif()
|
|
|
|
if(WITH_GPU)
|
|
cuda_add_library(paddle_gserver ${GSERVER_SOURCES})
|
|
else()
|
|
add_library(paddle_gserver STATIC
|
|
${GSERVER_SOURCES})
|
|
endif()
|
|
|
|
add_style_check_target(paddle_gserver ${GSERVER_SOURCES})
|
|
add_style_check_target(paddle_gserver ${GSERVER_HEADER})
|
|
add_dependencies(paddle_gserver paddle_proto ${external_project_dependencies})
|
|
if(WITH_TESTING)
|
|
add_subdirectory(tests)
|
|
endif()
|