Commit 5461757f authored by lfarizav's avatar lfarizav

Running C-RAN emulations

parent e7b2b644
......@@ -384,7 +384,7 @@ float dac_fixed_gain_prach_SSE_float(float *s_re[2],
_mm_storeu_ps(&s_re[aa][4*i],input_re128);
_mm_storeu_ps(&s_im[aa][4*i],input_im128);
if (2*i+input_offset==12*2*ofdm_symbol_size)
if (4*i+input_offset==12*2*ofdm_symbol_size)
i=0;
}
}
......@@ -449,7 +449,7 @@ float dac_fixed_gain_prach_AVX_float(float *s_re[2],
_mm256_storeu_ps(&s_re[aa][8*i],input_re256);
_mm256_storeu_ps(&s_im[aa][8*i],input_im256);
if (2*i+input_offset==12*2*ofdm_symbol_size)
if (8*i+input_offset==12*2*ofdm_symbol_size)
i=0;
}
}
......
......@@ -432,9 +432,9 @@ clock_t start=clock();*/
//gauss_1_128_sqrt_NOW = _mm_set_ps(gaussdouble(0.0,1.0),gaussdouble(0.0,1.0),gaussdouble(0.0,1.0),gaussdouble(0.0,1.0));
//gauss_0_128_sqrt_NOW = _mm_set_ps(ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0));
//gauss_1_128_sqrt_NOW = _mm_set_ps(ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0));
//boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW);
gauss_0_128_sqrt_NOW = ziggurat_SSE_float();
gauss_1_128_sqrt_NOW = ziggurat_SSE_float();
boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW);
//gauss_0_128_sqrt_NOW = ziggurat_SSE_float();
//gauss_1_128_sqrt_NOW = ziggurat_SSE_float();
//stop_meas(&desc->ziggurat);
gauss_0_128_sqrt_NOW = _mm_mul_ps(gauss_0_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW));
gauss_1_128_sqrt_NOW = _mm_mul_ps(gauss_1_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW));
......
......@@ -232,7 +232,7 @@ int init_freq_channel_SSE_float(channel_desc_t *desc,uint16_t nb_rb,int16_t n_sa
//printf("f %d,l %d (cos,sin) (%e,%e):\n",4*f,l,cos_lut_f[(n_samples>>1)][l],sin_lut_f[(n_samples>>1)][l]);
}
for (f=1; f<=(n_samples>>3)+1; f++) {
for (f=1; f<=(n_samples>>3); f++) {
//count++;
//freq=delta_f*(double)f*1e-6;// due to the fact that delays is in mus
for (l=0; l<(int)desc->nb_taps; l++) {
......@@ -314,7 +314,7 @@ int init_freq_channel_AVX_float(channel_desc_t *desc,uint16_t nb_rb,int16_t n_sa
delay = desc->delays[l];
else
delay = desc->delays[l]+NB_SAMPLES_CHANNEL_OFFSET/desc->sampling_rate;
sincos256_ps(_mm256_set_ps(twopi*(4*f)*delay,twopi*(4*f-1)*delay,twopi*(4*f-2)*delay,twopi*(4*f-3)*delay,twopi*(4*f-4)*delay,twopi*(4*f-5)*delay,twopi*(4*f-6)*delay,twopi*(4*f-7)*delay), &sin_lut256, &cos_lut256);
sincos256_ps(_mm256_set_ps(twopi*(8*f)*delay,twopi*(8*f-1)*delay,twopi*(8*f-2)*delay,twopi*(8*f-3)*delay,twopi*(8*f-4)*delay,twopi*(8*f-5)*delay,twopi*(8*f-6)*delay,twopi*(8*f-7)*delay), &sin_lut256, &cos_lut256);
//cos_lut256=_mm256_set_ps(cos(twopi*(4*f)*delay),cos(twopi*(4*f-1)*delay),cos(twopi*(4*f-2)*delay),cos(twopi*(4*f-3)*delay),cos(twopi*(4*f-4)*delay),cos(twopi*(4*f-5)*delay),cos(twopi*(4*f-6)*delay),cos(twopi*(4*f-7)*delay));
//sin_lut256=_mm256_set_ps(sin(twopi*(4*f)*delay),sin(twopi*(4*f-1)*delay),sin(twopi*(4*f-2)*delay),sin(twopi*(4*f-3)*delay),sin(twopi*(4*f-4)*delay),sin(twopi*(4*f-5)*delay),sin(twopi*(4*f-6)*delay),sin(twopi*(4*f-7)*delay));
_mm256_storeu_ps(&cos_lut_f[l][8*f-7+(n_samples>>1)],cos_lut256);
......
......@@ -1520,14 +1520,34 @@ void do_UL_sig_freq_prach(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB
if (UE2eNB[UE_id][eNB_id][CC_id]->first_run == 1)
UE2eNB[UE_id][eNB_id][CC_id]->first_run = 0;
__m256 r_re0_f_prach_256,r_im0_f_prach_256,r_re_UL_f_prach_256,r_im_UL_f_prach_256;
pthread_mutex_lock(&UE_output_mutex[eNB_id]);
#ifdef SSE_float
for (aa=0; aa<nb_antennas_rx; aa++) {
for (i=0; i<(frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti)>>3; i++) {
//r_re_UL_f_prach[eNB_id][aa][i]+=r_re0_f_prach[aa][i];
//r_im_UL_f_prach[eNB_id][aa][i]+=r_im0_f_prach[aa][i];
r_re0_f_prach_256 = _mm256_loadu_ps(&r_re0_f_prach[aa][8*i]);
r_im0_f_prach_256 = _mm256_loadu_ps(&r_im0_f_prach[aa][8*i]);
r_re_UL_f_prach_256 = _mm256_loadu_ps(&r_re_UL_f_prach[eNB_id][aa][8*i]);
r_im_UL_f_prach_256 = _mm256_loadu_ps(&r_im_UL_f_prach[eNB_id][aa][8*i]);
r_re_UL_f_prach_256 = _mm256_add_ps(r_re_UL_f_prach_256,r_re0_f_prach_256);
r_im_UL_f_prach_256 = _mm256_add_ps(r_im_UL_f_prach_256,r_im0_f_prach_256);
_mm256_storeu_ps(&r_re_UL_f_prach[eNB_id][aa][8*i],r_re_UL_f_prach_256);
_mm256_storeu_ps(&r_im_UL_f_prach[eNB_id][aa][8*i],r_im_UL_f_prach_256);
}
}
#else
for (aa=0; aa<nb_antennas_rx; aa++) {
for (i=0; i<frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti; i++) {
r_re_UL_f_prach[eNB_id][aa][i]+=r_re0_f_prach[aa][i];
r_im_UL_f_prach[eNB_id][aa][i]+=r_im0_f_prach[aa][i];
}
}
#endif
pthread_mutex_unlock(&UE_output_mutex[eNB_id]);
}
} //UE_id
......
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