Dynamically create LDPC decoder headers when building ldpc libs
This commit is contained in:
@@ -1390,8 +1390,11 @@ set(PHY_NR_CODINGIF
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(ldpc_orig MODULE ${PHY_LDPC_ORIG_SRC} )
|
add_library(ldpc_orig MODULE ${PHY_LDPC_ORIG_SRC} )
|
||||||
|
target_link_libraries(ldpc_orig PRIVATE ldpc_gen_HEADERS)
|
||||||
add_library(ldpc_optim MODULE ${PHY_LDPC_OPTIM_SRC} )
|
add_library(ldpc_optim MODULE ${PHY_LDPC_OPTIM_SRC} )
|
||||||
|
target_link_libraries(ldpc_optim PRIVATE ldpc_gen_HEADERS)
|
||||||
add_library(ldpc_optim8seg MODULE ${PHY_LDPC_OPTIM8SEG_SRC} )
|
add_library(ldpc_optim8seg MODULE ${PHY_LDPC_OPTIM8SEG_SRC} )
|
||||||
|
target_link_libraries(ldpc_optim8seg PRIVATE ldpc_gen_HEADERS)
|
||||||
add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} )
|
add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} )
|
||||||
target_link_libraries(ldpc_cl OpenCL)
|
target_link_libraries(ldpc_cl OpenCL)
|
||||||
add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
|
add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
|
||||||
@@ -1403,6 +1406,7 @@ if (CUDA_FOUND)
|
|||||||
endif (CUDA_FOUND)
|
endif (CUDA_FOUND)
|
||||||
|
|
||||||
add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
|
add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
|
||||||
|
target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
|
||||||
|
|
||||||
|
|
||||||
add_library(coding MODULE ${PHY_TURBOSRC} )
|
add_library(coding MODULE ${PHY_TURBOSRC} )
|
||||||
@@ -3160,3 +3164,4 @@ ADD_CUSTOM_TARGET(oarf
|
|||||||
)
|
)
|
||||||
|
|
||||||
include (${OPENAIR_DIR}/common/utils/telnetsrv/telnetsrv_CMakeLists.txt)
|
include (${OPENAIR_DIR}/common/utils/telnetsrv/telnetsrv_CMakeLists.txt)
|
||||||
|
include(${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt)
|
||||||
|
|||||||
@@ -42,13 +42,13 @@
|
|||||||
//BG1-------------------------------------------------------------------
|
//BG1-------------------------------------------------------------------
|
||||||
#ifdef __AVX512BW__
|
#ifdef __AVX512BW__
|
||||||
|
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h"
|
||||||
//BG2-------------------------------------------------------------------
|
//BG2-------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h"
|
#include "cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@@ -57,13 +57,13 @@
|
|||||||
/----------------------------------------------------------------------*/
|
/----------------------------------------------------------------------*/
|
||||||
|
|
||||||
//BG1------------------------------------------------------------------
|
//BG1------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h"
|
||||||
//BG2 --------------------------------------------------------------------
|
//BG2 --------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h"
|
#include "cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -73,34 +73,34 @@
|
|||||||
|
|
||||||
//bnProcPc-------------------------------------------------------------
|
//bnProcPc-------------------------------------------------------------
|
||||||
//BG1------------------------------------------------------------------
|
//BG1------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h"
|
||||||
//BG2 --------------------------------------------------------------------
|
//BG2 --------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h"
|
#include "bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h"
|
||||||
|
|
||||||
//bnProc----------------------------------------------------------------
|
//bnProc----------------------------------------------------------------
|
||||||
|
|
||||||
#ifdef __AVX512BW__
|
#ifdef __AVX512BW__
|
||||||
//BG1-------------------------------------------------------------------
|
//BG1-------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h"
|
||||||
//BG2 --------------------------------------------------------------------
|
//BG2 --------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h"
|
#include "bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h"
|
||||||
//BG2 --------------------------------------------------------------------
|
//BG2 --------------------------------------------------------------------
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h"
|
||||||
#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h"
|
#include "bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_bnProc ldpc/generator_bnProc)
|
||||||
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_bnProc_avx512 ldpc/generator_bnProc_avx512)
|
||||||
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_cnProc ldpc/generator_cnProc)
|
||||||
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_cnProc_avx512 ldpc/generator_cnProc_avx512)
|
||||||
|
|
||||||
|
# custom target to build all generators
|
||||||
|
add_custom_target(ldpc_generators)
|
||||||
|
add_dependencies(ldpc_generators
|
||||||
|
bnProc_gen_avx2
|
||||||
|
bnProc_gen_avx512
|
||||||
|
cnProc_gen_avx2
|
||||||
|
cnProc_gen_avx512)
|
||||||
|
|
||||||
|
add_library(ldpc_gen_HEADERS INTERFACE)
|
||||||
|
target_link_libraries(ldpc_gen_HEADERS INTERFACE
|
||||||
|
bnProc_gen_avx2_HEADERS
|
||||||
|
bnProc_gen_avx512_HEADERS
|
||||||
|
cnProc_gen_avx2_HEADERS
|
||||||
|
cnProc_gen_avx512_HEADERS)
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
add_executable(bnProc_gen_avx2
|
||||||
|
bnProc_gen_BG1_avx2.c
|
||||||
|
bnProc_gen_BG2_avx2.c
|
||||||
|
bnProcPc_gen_BG1_avx2.c
|
||||||
|
bnProcPc_gen_BG2_avx2.c
|
||||||
|
main.c)
|
||||||
|
target_compile_options(bnProc_gen_avx2 PRIVATE -W -Wall -mavx2)
|
||||||
|
|
||||||
|
#set(bnProc_headers
|
||||||
|
# bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h
|
||||||
|
# bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h
|
||||||
|
# bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h
|
||||||
|
# bnProc/rLDPC_bnProc_BG2_R13_AVX2.h
|
||||||
|
# bnProc/rLDPC_bnProc_BG2_R15_AVX2.h
|
||||||
|
# bnProc/rLDPC_bnProc_BG2_R23_AVX2.h)
|
||||||
|
#
|
||||||
|
#set(bnProcPc_headers
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG1_R13_AVX2.h
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG1_R23_AVX2.h
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG1_R89_AVX2.h
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG2_R13_AVX2.h
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG2_R15_AVX2.h
|
||||||
|
# bnProcPc/rLDPC_bnProcPc_BG2_R23_AVX2.h)
|
||||||
|
|
||||||
|
add_custom_command(TARGET bnProc_gen_avx2 POST_BUILD
|
||||||
|
#OUTPUT ${bnProc_headers} ${bnProcPc_headers}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory bnProc
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc
|
||||||
|
COMMAND bnProc_gen_avx2 .
|
||||||
|
DEPENDS bnProc_gen_avx2
|
||||||
|
COMMENT "Generating LDPC bnProc header files for AVX2"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(bnProc_gen_avx2_HEADERS INTERFACE)
|
||||||
|
target_include_directories(bnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
add_dependencies(bnProc_gen_avx2_HEADERS bnProc_gen_avx2)
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
add_executable(bnProc_gen_avx512
|
||||||
|
bnProc_gen_BG1_avx512.c
|
||||||
|
bnProc_gen_BG2_avx512.c
|
||||||
|
bnProcPc_gen_BG1_avx512.c
|
||||||
|
bnProcPc_gen_BG2_avx512.c
|
||||||
|
main.c)
|
||||||
|
target_compile_options(bnProc_gen_avx512 PRIVATE -W -Wall -mavx2)
|
||||||
|
|
||||||
|
#set(bnProc_avx512_headers
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG1_R13_AVX512.h
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG1_R23_AVX512.h
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG1_R89_AVX512.h
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG2_R13_AVX512.h
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG2_R15_AVX512.h
|
||||||
|
# bnProc_avx512/rLDPC_bnProc_BG2_R23_AVX512.h)
|
||||||
|
#
|
||||||
|
#set(bnProcPc_avx512_headers
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R13_AVX512.h
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R23_AVX512.h
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG1_R89_AVX512.h
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R13_AVX512.h
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R15_AVX512.h
|
||||||
|
# bnProcPc_avx512/rLDPC_bnProcPc_BG2_R23_AVX512.h)
|
||||||
|
|
||||||
|
add_custom_command(TARGET bnProc_gen_avx512 POST_BUILD
|
||||||
|
#OUTPUT ${bnProc_avx512_headers} ${bnProcPc_avx512_headers}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory bnProc_avx512
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc_avx512
|
||||||
|
COMMAND bnProc_gen_avx512 .
|
||||||
|
DEPENDS bnProc_gen_avx512
|
||||||
|
COMMENT "Generating LDPC bnProc header files for AVX512"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(bnProc_gen_avx512_HEADERS INTERFACE)
|
||||||
|
target_include_directories(bnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
add_dependencies(bnProc_gen_avx512_HEADERS bnProc_gen_avx512)
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
add_executable(cnProc_gen_avx2
|
||||||
|
cnProc_gen_BG1_avx2.c
|
||||||
|
cnProc_gen_BG2_avx2.c
|
||||||
|
main.c)
|
||||||
|
target_compile_options(cnProc_gen_avx2 PRIVATE -W -Wall -mavx2)
|
||||||
|
|
||||||
|
#set(cnProc_headers
|
||||||
|
# cnProc/rLDPC_cnProc_BG1_R13_AVX2.h
|
||||||
|
# cnProc/rLDPC_cnProc_BG1_R23_AVX2.h
|
||||||
|
# cnProc/rLDPC_cnProc_BG1_R89_AVX2.h
|
||||||
|
# cnProc/rLDPC_cnProc_BG2_R13_AVX2.h
|
||||||
|
# cnProc/rLDPC_cnProc_BG2_R15_AVX2.h
|
||||||
|
# cnProc/rLDPC_cnProc_BG2_R23_AVX2.h)
|
||||||
|
|
||||||
|
add_custom_command(TARGET cnProc_gen_avx2 POST_BUILD
|
||||||
|
#OUTPUT ${cnProc_headers}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory cnProc
|
||||||
|
COMMAND cnProc_gen_avx2 .
|
||||||
|
DEPENDS cnProc_gen_avx2
|
||||||
|
COMMENT "Generating LDPC cnProc header files for AVX2"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(cnProc_gen_avx2_HEADERS INTERFACE)
|
||||||
|
target_include_directories(cnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
add_dependencies(cnProc_gen_avx2_HEADERS cnProc_gen_avx2)
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
add_executable(cnProc_gen_avx512
|
||||||
|
cnProc_gen_BG1_avx512.c
|
||||||
|
cnProc_gen_BG2_avx512.c
|
||||||
|
main.c)
|
||||||
|
target_compile_options(cnProc_gen_avx512 PRIVATE -W -Wall -mavx2)
|
||||||
|
|
||||||
|
#set(cnProc_avx512_headers
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h
|
||||||
|
# cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h)
|
||||||
|
|
||||||
|
add_custom_command(TARGET cnProc_gen_avx512 POST_BUILD
|
||||||
|
#OUTPUT ${cnProc_avx512_headers}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory cnProc_avx512
|
||||||
|
COMMAND cnProc_gen_avx512 .
|
||||||
|
DEPENDS cnProc_gen_avx512
|
||||||
|
COMMENT "Generating LDPC cnProc header files for AVX512"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(cnProc_gen_avx512_HEADERS INTERFACE)
|
||||||
|
target_include_directories(cnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
add_dependencies(cnProc_gen_avx512_HEADERS cnProc_gen_avx512)
|
||||||
Reference in New Issue
Block a user