Agora  1.2.0
Agora project
doifft_client.h
Go to the documentation of this file.
1 
5 #ifndef DOIFFT_CLIENT_H_
6 #define DOIFFT_CLIENT_H_
7 
8 #include "common_typedef_sdk.h"
9 #include "config.h"
10 #include "doer.h"
11 #include "memory_manage.h"
12 #include "mkl_dfti.h"
13 #include "stats.h"
14 #include "symbols.h"
15 
16 class DoIFFTClient : public Doer {
17  public:
18  DoIFFTClient(Config* in_config, int in_tid,
19  Table<complex_float>& in_ifft_buffer, char* in_socket_buffer,
20  Stats* in_stats_manager);
21  ~DoIFFTClient() override;
22 
46  EventData Launch(size_t tag) override;
47 
48  private:
52  DFTI_DESCRIPTOR_HANDLE mkl_handle_;
53  float* ifft_out_; // Buffer for IFFT output
56 };
57 
58 #endif // DOIFFT_CLIENT_H_
sqrt
2 sqrt()
DoIFFTClient
Definition: doifft_client.h:16
Config::UeAntNum
size_t UeAntNum() const
Definition: config.h:41
complex_float
Definition: test_transpose.cc:22
DoIFFTClient::Launch
EventData Launch(size_t tag) override
Definition: doifft_client.cc:52
Config::SampsPerSymbol
size_t SampsPerSymbol() const
Definition: config.h:234
datatype_conversion.h
Config::OfdmTxZeroPrefix
size_t OfdmTxZeroPrefix() const
Definition: config.h:211
Config::GetTotalDataSymbolIdxUl
size_t GetTotalDataSymbolIdxUl(size_t frame_id, size_t symbol_idx_ul) const
Definition: config.h:421
Stats
Definition: stats.h:63
gen_tag_t::symbol_id_
uint16_t symbol_id_
Definition: message.h:33
DurationStat::task_duration_
std::array< size_t, kMaxStatBreakdown > task_duration_
Definition: stats.h:23
Config::CpLen
size_t CpLen() const
Definition: config.h:46
concurrent_queue_wrapper.h
Agora_memory::PaddedAlignedAlloc
void * PaddedAlignedAlloc(Alignment_t alignment, size_t size)
Definition: memory_manage.cc:15
Packet::data_
short data_[]
Definition: message.h:173
FrameStats::GetULSymbolIdx
size_t GetULSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:156
memory_manage.h
DoIFFTClient::ifft_buffer_
Table< complex_float > & ifft_buffer_
Definition: doifft_client.h:49
Config::Frame
const FrameStats & Frame() const
Definition: config.h:340
Doer
Definition: doer.h:17
Doer::tid_
int tid_
Definition: doer.h:65
Table< complex_float >
DoIFFTClient::socket_buffer_
char * socket_buffer_
Definition: doifft_client.h:50
gen_tag_t
Definition: message.h:22
kDebugPrintInTask
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
DoIFFTClient::ifft_out_
float * ifft_out_
Definition: doifft_client.h:53
stats.h
Declaration file for the Stats class. Includes definations for DurationStat and FrameSummery types.
EventData
Definition: message.h:142
DurationStat::task_count_
size_t task_count_
Definition: stats.h:24
gen_tag_t::ant_id_
uint16_t ant_id_
Definition: message.h:38
message.h
Self defined functions for message storage and passing.
CommsLib::FFTShift
static std::vector< std::complex< float > > FFTShift(const std::vector< std::complex< float >> &in)
Definition: comms-lib.cc:581
i
for i
Definition: generate_data.m:107
Config::OfdmCaNum
size_t OfdmCaNum() const
Definition: config.h:45
DoIFFTClient::DoIFFTClient
DoIFFTClient(Config *in_config, int in_tid, Table< complex_float > &in_ifft_buffer, char *in_socket_buffer, Stats *in_stats_manager)
Definition: doifft_client.cc:21
comms-lib.h
Communications Library: a) Generate pilot/preamble sequences b) OFDM modulation.
Agora_memory::Alignment_t::kAlign64
@ kAlign64
Packet
Definition: message.h:164
kUseOutOfPlaceIFFT
static constexpr bool kUseOutOfPlaceIFFT
Definition: doifft_client.cc:18
DoIFFTClient::duration_stat_
DurationStat * duration_stat_
Definition: doifft_client.h:51
kPrintSocketOutput
static constexpr bool kPrintSocketOutput
Definition: doifft_client.cc:17
DoerType::kIFFT
@ kIFFT
Config::OfdmDataStart
size_t OfdmDataStart() const
Definition: config.h:48
symbols.h
DurationStat
Definition: stats.h:22
Doer::cfg_
Config * cfg_
Definition: doer.h:64
GetTime::WorkerRdtsc
static size_t WorkerRdtsc()
Definition: gettime.h:34
Config
Definition: config.h:26
AGORA_LOG_INFO
#define AGORA_LOG_INFO(...)
Definition: logger.h:62
doer.h
Declaration file for the Doer class. The is the base class for all agora doers.
kPrintIFFTOutput
static constexpr bool kPrintIFFTOutput
Definition: doifft_client.cc:16
DoIFFTClient::ifft_scale_factor_
float ifft_scale_factor_
Definition: doifft_client.h:55
DoIFFTClient::ifft_shift_tmp_
complex_float * ifft_shift_tmp_
Definition: doifft_client.h:54
DoIFFTClient::~DoIFFTClient
~DoIFFTClient() override
Definition: doifft_client.cc:46
SimdConvertFloatToShort
static void SimdConvertFloatToShort(const float *in_buf, short *out_buf, size_t n_elems, size_t n_prefix=0, float scale_down_factor=1.0f)
Definition: datatype_conversion.h:266
config.h
Declaration file for the configuration class which importants json configuration values into class va...
EventType::kIFFT
@ kIFFT
doifft_client.h
Declaration file for the DoIFFTClient class.
gettime.h
Config::PacketLength
size_t PacketLength() const
Definition: config.h:238
kMemcpyBeforeIFFT
static constexpr bool kMemcpyBeforeIFFT
Definition: doifft_client.cc:19
gen_tag_t::frame_id_
uint32_t frame_id_
Definition: message.h:32
DoIFFTClient::mkl_handle_
DFTI_DESCRIPTOR_HANDLE mkl_handle_
Definition: doifft_client.h:52
Config::OfdmDataStop
size_t OfdmDataStop() const
Definition: config.h:50
Stats::GetDurationStat
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162
Config::BfAntNum
size_t BfAntNum() const
Definition: config.h:39