build_oai flag to turn off AVX512 generation on machines that have it. Needed for caracal at EURECOM because of CUDA compiler which doesn't like the flag. Added creation of threadpool in nr_ulsim to test channel decoding parallelization on different high CPU count machines
This commit is contained in:
@@ -301,7 +301,8 @@ if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
|
|||||||
else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
|
else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
|
||||||
if(EXISTS "/proc/cpuinfo")
|
if(EXISTS "/proc/cpuinfo")
|
||||||
file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
|
file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
|
||||||
if (CPUINFO MATCHES "avx512bw")
|
message("NOAVX512 is ${NOAVX512}")
|
||||||
|
if (CPUINFO MATCHES "avx512bw" AND "${NOAVX512}" STREQUAL "False")
|
||||||
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512 " )
|
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512 " )
|
||||||
set(COMPILATION_AVX2 "True")
|
set(COMPILATION_AVX2 "True")
|
||||||
else()
|
else()
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ CMAKE_CMD="$CMAKE"
|
|||||||
UE_AUTOTEST_TRACE="False"
|
UE_AUTOTEST_TRACE="False"
|
||||||
UE_DEBUG_TRACE="False"
|
UE_DEBUG_TRACE="False"
|
||||||
UE_TIMING_TRACE="False"
|
UE_TIMING_TRACE="False"
|
||||||
|
NOAVX512="False"
|
||||||
USRP_REC_PLAY="False"
|
USRP_REC_PLAY="False"
|
||||||
BUILD_ECLIPSE=0
|
BUILD_ECLIPSE=0
|
||||||
NR="False"
|
NR="False"
|
||||||
@@ -161,6 +162,8 @@ Options
|
|||||||
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES or \"all\"
|
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES or \"all\"
|
||||||
--usrp-recplay
|
--usrp-recplay
|
||||||
Build for I/Q record-playback modes
|
Build for I/Q record-playback modes
|
||||||
|
--noavx512
|
||||||
|
Build without AVX512 if it is present on CPU
|
||||||
-k | --skip-shared-libraries
|
-k | --skip-shared-libraries
|
||||||
Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes
|
Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes
|
||||||
--ittiSIM
|
--ittiSIM
|
||||||
@@ -417,6 +420,10 @@ function main() {
|
|||||||
USRP_REC_PLAY="True"
|
USRP_REC_PLAY="True"
|
||||||
echo_info "Enabling USRP record playback mode"
|
echo_info "Enabling USRP record playback mode"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
|
--noavx512)
|
||||||
|
NOAVX512="True"
|
||||||
|
echo_info "Disabling AVX512"
|
||||||
|
shift 1;;
|
||||||
-k | --skip-shared-libraries)
|
-k | --skip-shared-libraries)
|
||||||
SKIP_SHARED_LIB_FLAG="True"
|
SKIP_SHARED_LIB_FLAG="True"
|
||||||
echo_info "Skipping build of shared libraries, rfsimulator and transport protocol libraries"
|
echo_info "Skipping build of shared libraries, rfsimulator and transport protocol libraries"
|
||||||
@@ -614,6 +621,7 @@ function main() {
|
|||||||
echo "set ( UE_DEBUG_TRACE $UE_DEBUG_TRACE )" >> $cmake_file
|
echo "set ( UE_DEBUG_TRACE $UE_DEBUG_TRACE )" >> $cmake_file
|
||||||
echo "set ( UE_TIMING_TRACE $UE_TIMING_TRACE )" >> $cmake_file
|
echo "set ( UE_TIMING_TRACE $UE_TIMING_TRACE )" >> $cmake_file
|
||||||
echo "set ( USRP_REC_PLAY $USRP_REC_PLAY )" >> $cmake_file
|
echo "set ( USRP_REC_PLAY $USRP_REC_PLAY )" >> $cmake_file
|
||||||
|
echo "set ( NOAVX512 $NOAVX512 )" >> $cmake_file
|
||||||
echo "set ( SKIP_SHARED_LIB_FLAG $SKIP_SHARED_LIB_FLAG )" >> $cmake_file
|
echo "set ( SKIP_SHARED_LIB_FLAG $SKIP_SHARED_LIB_FLAG )" >> $cmake_file
|
||||||
echo "set ( ITTI_SIM $ITTI_SIM )" >> $cmake_file
|
echo "set ( ITTI_SIM $ITTI_SIM )" >> $cmake_file
|
||||||
echo "set ( SANITIZE_ADDRESS $SANITIZE_ADDRESS )" >> $cmake_file
|
echo "set ( SANITIZE_ADDRESS $SANITIZE_ADDRESS )" >> $cmake_file
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ set ( UE_AUTOTEST_TRACE False )
|
|||||||
set ( UE_DEBUG_TRACE False )
|
set ( UE_DEBUG_TRACE False )
|
||||||
set ( UE_TIMING_TRACE False )
|
set ( UE_TIMING_TRACE False )
|
||||||
set ( USRP_REC_PLAY False )
|
set ( USRP_REC_PLAY False )
|
||||||
|
set ( NOAVX512 True )
|
||||||
set ( SKIP_SHARED_LIB_FLAG False )
|
set ( SKIP_SHARED_LIB_FLAG False )
|
||||||
set ( PHYSIM True)
|
set ( PHYSIM True)
|
||||||
set ( RU 0)
|
set ( RU 0)
|
||||||
|
|||||||
@@ -319,6 +319,7 @@ int main(int argc, char **argv)
|
|||||||
int ibwps=24;
|
int ibwps=24;
|
||||||
int ibwp_rboffset=41;
|
int ibwp_rboffset=41;
|
||||||
int params_from_file = 0;
|
int params_from_file = 0;
|
||||||
|
int threadCnt=1;
|
||||||
if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0 ) {
|
if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0 ) {
|
||||||
exit_fun("[NR_ULSIM] Error, configuration module init failed\n");
|
exit_fun("[NR_ULSIM] Error, configuration module init failed\n");
|
||||||
}
|
}
|
||||||
@@ -329,7 +330,7 @@ int main(int argc, char **argv)
|
|||||||
/* initialize the sin-cos table */
|
/* initialize the sin-cos table */
|
||||||
InitSinLUT();
|
InitSinLUT();
|
||||||
|
|
||||||
while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:ikl:m:n:p:r:s:u:w:y:z:F:G:H:M:N:PR:S:T:U:L:Z")) != -1) {
|
while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:ikl:m:n:p:r:s:t:u:w:y:z:F:G:H:M:N:PR:S:T:U:L:Z")) != -1) {
|
||||||
printf("handling optarg %c\n",c);
|
printf("handling optarg %c\n",c);
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
|
||||||
@@ -454,7 +455,9 @@ int main(int argc, char **argv)
|
|||||||
snr0 = atof(optarg);
|
snr0 = atof(optarg);
|
||||||
printf("Setting SNR0 to %f\n", snr0);
|
printf("Setting SNR0 to %f\n", snr0);
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
threadCnt = atoi(optarg);
|
||||||
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
mu = atoi(optarg);
|
mu = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
@@ -662,7 +665,14 @@ int main(int argc, char **argv)
|
|||||||
gNB->ofdm_offset_divisor = UINT_MAX;
|
gNB->ofdm_offset_divisor = UINT_MAX;
|
||||||
gNB->threadPool = (tpool_t*)malloc(sizeof(tpool_t));
|
gNB->threadPool = (tpool_t*)malloc(sizeof(tpool_t));
|
||||||
gNB->respDecode = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
gNB->respDecode = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
||||||
char tp_param[] = "n";
|
char tp_param[80];
|
||||||
|
sprintf(tp_param,"-1");
|
||||||
|
int s_offset = 0;
|
||||||
|
for (int icpu=1; icpu<threadCnt; icpu++) {
|
||||||
|
sprintf(tp_param+2+s_offset,",-1");
|
||||||
|
s_offset += 3;
|
||||||
|
}
|
||||||
|
|
||||||
initTpool(tp_param, gNB->threadPool, false);
|
initTpool(tp_param, gNB->threadPool, false);
|
||||||
initNotifiedFIFO(gNB->respDecode);
|
initNotifiedFIFO(gNB->respDecode);
|
||||||
gNB->resp_L1_tx = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
gNB->resp_L1_tx = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
||||||
|
|||||||
Reference in New Issue
Block a user