Agora  1.2.0
Agora project
doprecode.h
Go to the documentation of this file.
1 
5 #ifndef DOPRECODE_H_
6 #define DOPRECODE_H_
7 
8 #include <cstdint>
9 #include <iostream>
10 #include <vector>
11 
12 #include "common_typedef_sdk.h"
13 #include "config.h"
14 #include "doer.h"
15 #include "memory_manage.h"
16 #include "message.h"
17 #include "mkl_dfti.h"
18 #include "stats.h"
19 #include "symbols.h"
20 
21 class DoPrecode : public Doer {
22  public:
23  DoPrecode(Config* in_config, int in_tid,
25  Table<complex_float>& in_dl_ifft_buffer,
26  Table<int8_t>& dl_encoded_or_raw_data, Stats* in_stats_manager);
27  ~DoPrecode() override;
28 
55  EventData Launch(size_t tag) override;
56 
57  // Load input data for a single UE and a single subcarrier
58  void LoadInputData(size_t symbol_idx_dl, size_t total_data_symbol_idx,
59  size_t user_id, size_t sc_id, size_t sc_id_in_block);
60  void PrecodingPerSc(size_t frame_slot, size_t sc_id, size_t sc_id_in_block);
61 
62  private:
70 #if defined(USE_MKL_JIT)
71  void* jitter_;
72  cgemm_jit_kernel_t my_cgemm_;
73 #endif
74 };
75 
76 #endif // DOPRECODE_H_
DoPrecode::dl_beam_matrices_
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > & dl_beam_matrices_
Definition: doprecode.h:63
FrameStats::GetDLSymbolIdx
size_t GetDLSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:152
Config::GetBeamScId
size_t GetBeamScId(size_t sc_id) const
Definition: config.h:481
Config::UeAntNum
size_t UeAntNum() const
Definition: config.h:41
complex_float
Definition: test_transpose.cc:22
DoPrecode::precoded_buffer_temp_
complex_float * precoded_buffer_temp_
Definition: doprecode.h:69
fmt::v8::printf
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
FreeBuffer1d
static void FreeBuffer1d(T **buffer)
Definition: memory_manage.h:116
kUseSpatialLocality
static constexpr bool kUseSpatialLocality
Definition: doprecode.cc:10
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
concurrent_queue_wrapper.h
kFrameWnd
static constexpr size_t kFrameWnd
Definition: symbols.h:18
modulation.h
Config::GetOFDMDataNum
size_t GetOFDMDataNum() const
Definition: config.h:554
memory_manage.h
DoerType::kPrecode
@ kPrecode
Config::BsAntNum
size_t BsAntNum() const
Definition: config.h:35
Config::Frame
const FrameStats & Frame() const
Definition: config.h:340
DoPrecode
Definition: doprecode.h:21
kSCsPerCacheline
static constexpr size_t kSCsPerCacheline
Definition: symbols.h:312
Doer
Definition: doer.h:17
AllocBuffer1d
static void AllocBuffer1d(T **buffer, U dim, Agora_memory::Alignment_t alignment, int init_zero)
Definition: memory_manage.h:105
Doer::tid_
int tid_
Definition: doer.h:65
Table< complex_float >
index
index
Definition: parse_all_dl.m:11
gen_tag_t
Definition: message.h:22
Config::OfdmDataNum
size_t OfdmDataNum() const
Definition: config.h:47
kDebugPrintInTask
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
doprecode.h
Declaration file for the DoPrecode class.
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
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float >
DoPrecode::dl_raw_data_
Table< int8_t > & dl_raw_data_
Definition: doprecode.h:65
message.h
Self defined functions for message storage and passing.
i
for i
Definition: generate_data.m:107
DoPrecode::dl_ifft_buffer_
Table< complex_float > & dl_ifft_buffer_
Definition: doprecode.h:64
DoPrecode::~DoPrecode
~DoPrecode() override
Definition: doprecode.cc:53
DoPrecode::LoadInputData
void LoadInputData(size_t symbol_idx_dl, size_t total_data_symbol_idx, size_t user_id, size_t sc_id, size_t sc_id_in_block)
Definition: doprecode.cc:167
fmt::v8::fprintf
auto fprintf(std::FILE *f, const S &fmt, const T &... args) -> int
Definition: printf.h:607
Config::ModTable
Table< complex_float > & ModTable(Direction dir)
Definition: config.h:284
Agora_memory::Alignment_t::kAlign64
@ kAlign64
DoPrecode::Launch
EventData Launch(size_t tag) override
Definition: doprecode.cc:65
Direction::kDownlink
@ kDownlink
DoPrecode::duration_stat_
DurationStat * duration_stat_
Definition: doprecode.h:67
ModSingleUint8
complex_float ModSingleUint8(uint8_t x, Table< complex_float > &mod_table)
Definition: modulation.cc:213
Config::IsDataSubcarrier
bool IsDataSubcarrier(size_t sc_id) const
Definition: config.h:562
Config::OfdmDataStart
size_t OfdmDataStart() const
Definition: config.h:48
symbols.h
EventType::kPrecode
@ kPrecode
DurationStat
Definition: stats.h:22
Doer::cfg_
Config * cfg_
Definition: doer.h:64
Config::UeSpecificPilot
Table< complex_float > & UeSpecificPilot()
Definition: config.h:371
DoPrecode::PrecodingPerSc
void PrecodingPerSc(size_t frame_slot, size_t sc_id, size_t sc_id_in_block)
Definition: doprecode.cc:185
GetTime::WorkerRdtsc
static size_t WorkerRdtsc()
Definition: gettime.h:34
Config
Definition: config.h:26
doer.h
Declaration file for the Doer class. The is the base class for all agora doers.
DoPrecode::qam_table_
Table< float > qam_table_
Definition: doprecode.h:66
Config::GetTotalDataSymbolIdxDl
size_t GetTotalDataSymbolIdxDl(size_t frame_id, size_t symbol_idx_dl) const
Definition: config.h:428
config.h
Declaration file for the configuration class which importants json configuration values into class va...
gen_tag_t::sc_id_
uint16_t sc_id_
Definition: message.h:39
DoPrecode::modulated_buffer_temp_
complex_float * modulated_buffer_temp_
Definition: doprecode.h:68
gen_tag_t::frame_id_
uint32_t frame_id_
Definition: message.h:32
Config::DemulBlockSize
size_t DemulBlockSize() const
Definition: config.h:195
Config::GetOFDMDataIndex
size_t GetOFDMDataIndex(size_t sc_id) const
Definition: config.h:558
Stats::GetDurationStat
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162
DoPrecode::DoPrecode
DoPrecode(Config *in_config, int in_tid, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &dl_beam_matrices_, Table< complex_float > &in_dl_ifft_buffer, Table< int8_t > &dl_encoded_or_raw_data, Stats *in_stats_manager)
Definition: doprecode.cc:12