Commit 13752beb authored by cucengineer's avatar cucengineer

debug accelerate cuFFT2048

parent 9470c019
...@@ -535,6 +535,7 @@ const char* eurecomFunctionsNames[] = { ...@@ -535,6 +535,7 @@ const char* eurecomFunctionsNames[] = {
"nr_rx_pusch", "nr_rx_pusch",
"nr_ulsch_procedures_rx", "nr_ulsch_procedures_rx",
"macxface_gNB_dlsch_ulsch_scheduler", "macxface_gNB_dlsch_ulsch_scheduler",
"cufft_wait",
/*NR ue-softmodem signal*/ /*NR ue-softmodem signal*/
"nr_ue_ulsch_encoding", "nr_ue_ulsch_encoding",
......
...@@ -527,6 +527,7 @@ typedef enum { ...@@ -527,6 +527,7 @@ typedef enum {
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH, VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX, VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER, VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER,
VCD_SIGNAL_DUMPER_FUNCTIONS_CUFFT_WAIT,
/* NR ue-softmodem signal*/ /* NR ue-softmodem signal*/
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_UE_ULSCH_ENCODING, VCD_SIGNAL_DUMPER_FUNCTIONS_NR_UE_ULSCH_ENCODING,
......
...@@ -73,7 +73,7 @@ typedef struct { ...@@ -73,7 +73,7 @@ typedef struct {
} T_cache_t; } T_cache_t;
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */ /* number of VCD functions (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_FUNCTIONS (273) #define VCD_NUM_FUNCTIONS (274)
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */ /* number of VCD variables (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_VARIABLES (187) #define VCD_NUM_VARIABLES (187)
......
...@@ -3513,6 +3513,11 @@ ID = VCD_FUNCTION_gNB_DLSCH_ULSCH_SCHEDULER ...@@ -3513,6 +3513,11 @@ ID = VCD_FUNCTION_gNB_DLSCH_ULSCH_SCHEDULER
GROUP = ALL:VCD:ENB:VCD_FUNCTION GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value FORMAT = int,value
VCD_NAME = macxface_gNB_dlsch_ulsch_scheduler VCD_NAME = macxface_gNB_dlsch_ulsch_scheduler
ID = VCD_FUNCTION_CUFFT_WAIT
DESC = VCD function CUFFT_WAIT
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = cufft_wait
#function for nrUE #function for nrUE
ID = VCD_FUNCTION_NR_UE_ULSCH_ENCODING ID = VCD_FUNCTION_NR_UE_ULSCH_ENCODING
......
...@@ -57,4 +57,5 @@ typedef int(*nrLDPC_encoderfunc_t)(unsigned char **,unsigned char **,int,int,sho ...@@ -57,4 +57,5 @@ typedef int(*nrLDPC_encoderfunc_t)(unsigned char **,unsigned char **,int,int,sho
*/ */
typedef int32_t(*nrLDPC_decoderfunc_t)(t_nrLDPC_dec_params* , int8_t*, int8_t* , t_nrLDPC_procBuf* , t_nrLDPC_time_stats* ); typedef int32_t(*nrLDPC_decoderfunc_t)(t_nrLDPC_dec_params* , int8_t*, int8_t* , t_nrLDPC_procBuf* , t_nrLDPC_time_stats* );
typedef void(*cudft_EnTx)(int16_t* , int16_t*, unsigned char ); typedef void(*cudft_EnTx)(int16_t* , int16_t*, unsigned char );
typedef void(*cudft_load)(void);
#endif #endif
\ No newline at end of file
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
nrLDPC_decoderfunc_t nrLDPC_decoder; nrLDPC_decoderfunc_t nrLDPC_decoder;
nrLDPC_encoderfunc_t nrLDPC_encoder; nrLDPC_encoderfunc_t nrLDPC_encoder;
cudft_EnTx cudft2048; cudft_EnTx cudft2048;
// cudft_EnTx cudft204; cudft_load load_cudft;
#else #else
/* functions to load the LDPC shared lib, implemented in openair1/PHY/CODING/nrLDPC_load.c */ /* functions to load the LDPC shared lib, implemented in openair1/PHY/CODING/nrLDPC_load.c */
extern int load_nrLDPClib(void) ; extern int load_nrLDPClib(void) ;
...@@ -34,7 +34,7 @@ extern int load_cuFFT(void) ; ...@@ -34,7 +34,7 @@ extern int load_cuFFT(void) ;
extern nrLDPC_decoderfunc_t nrLDPC_decoder; extern nrLDPC_decoderfunc_t nrLDPC_decoder;
extern nrLDPC_encoderfunc_t nrLDPC_encoder; extern nrLDPC_encoderfunc_t nrLDPC_encoder;
extern cudft_EnTx cudft2048; extern cudft_EnTx cudft2048;
// extern cudft_EnTx cudft204; extern cudft_load load_cudft;
// inline functions: // inline functions:
#include "openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h" #include "openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h"
#endif #endif
\ No newline at end of file
...@@ -84,17 +84,17 @@ int load_cuFFT(void) { ...@@ -84,17 +84,17 @@ int load_cuFFT(void) {
//根据动态链接库操作句柄与符号,返回符号对应的地址 //根据动态链接库操作句柄与符号,返回符号对应的地址
cudft2048 = (cudft_EnTx) dlsym(handle, "_Z9cudft2048PsS_h"); cudft2048 = (cudft_EnTx) dlsym(handle, "_Z9cudft2048PsS_h");
if(!cudft2048){ if(!cudft2048){
printf("cuFFT.so error!\n"); printf("cuFFT.so cudft2048 error!\n");
dlclose(handle); dlclose(handle);
return -1; return -1;
} }
// cudft204 = (cudft_EnTx) dlsym(handle, "_Z8testtestPsS_h"); load_cudft = (cudft_load) dlsym(handle, "_Z10load_cuFFTv");
// if(!cudft204){ if(!load_cudft){
// printf("cutest.so error!\n"); printf("cutest.so load_cudft error!\n");
// dlclose(handle); dlclose(handle);
// return -1; return -1;
// } }
load_cudft();
return 0; return 0;
} }
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h" #include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
#include <common/utils/LOG/log.h> #include <common/utils/LOG/log.h>
#include "PHY/CODING/nrLDPC_extern.h" #include "PHY/CODING/nrLDPC_extern.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/log.h"
//#define DEBUG_FEP //#define DEBUG_FEP
...@@ -139,16 +141,6 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue, ...@@ -139,16 +141,6 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol], (int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
1); 1);
static int cu_2048 = 1;
if(cu_2048==1)
{
LOG_M("FFT0.m","input",rxdata_ptr,2048,1,3);
LOG_M("FFT1.m","output",(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],2048,1,1);
cudft2048(rxdata_ptr,(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],1);
LOG_M("cuFFT0.m","input",rxdata_ptr,2048,1,3);
LOG_M("cuFFT1.m","output",(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],2048,1,1);
cu_2048++;
}
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->rx_dft_stats); stop_meas(&ue->rx_dft_stats);
#endif #endif
...@@ -339,13 +331,15 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms, ...@@ -339,13 +331,15 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
} }
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_CUFFT_WAIT, 1 );
cudft2048(rxdata_ptr, cudft2048(rxdata_ptr,
(int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], (int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size],
1); 0);
// dft(dftsize, // dft(dftsize,
// rxdata_ptr, // rxdata_ptr,
// (int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], // (int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size],
// 1); // 1);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_CUFFT_WAIT, 0 );
// clear DC carrier from OFDM symbols // clear DC carrier from OFDM symbols
rxdataF[symbol * frame_parms->ofdm_symbol_size] = 0; rxdataF[symbol * frame_parms->ofdm_symbol_size] = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment