Agora  1.2.0
Agora project
test_zf_threaded.cc File Reference
#include <gtest/gtest.h>
#include <thread>
#include "concurrentqueue.h"
#include "config.h"
#include "dobeamweights.h"
#include "gettime.h"
#include "utils.h"
Include dependency graph for test_zf_threaded.cc:

Functions

void MasterToWorkerDynamicMaster (Config *cfg, moodycamel::ConcurrentQueue< EventData > &event_queue, moodycamel::ConcurrentQueue< EventData > &complete_task_queue)
 
void MasterToWorkerDynamicWorker (Config *cfg, size_t worker_id, moodycamel::ConcurrentQueue< EventData > &event_queue, moodycamel::ConcurrentQueue< EventData > &complete_task_queue, moodycamel::ProducerToken *ptok, PtrGrid< kFrameWnd, kMaxUEs, complex_float > &csi_buffers, Table< complex_float > &calib_dl_msum_buffer, Table< complex_float > &calib_ul_msum_buffer, Table< complex_float > &calib_dl_buffer, Table< complex_float > &calib_ul_buffer, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &ul_beam_matrices, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &dl_beam_matrices, PhyStats *phy_stats, Stats *stats)
 
 TEST (TestZF, VaryingConfig)
 
int main (int argc, char **argv)
 

Variables

static constexpr size_t kNumWorkers = 14
 
static constexpr size_t kMaxTestNum = 100
 
static constexpr size_t kMaxItrNum = (1 << 30)
 
static constexpr size_t kAntTestNum = 3
 
static constexpr size_t kBsAntNums [kAntTestNum] = {32, 16, 48}
 
static constexpr size_t kFrameOffsets [kAntTestNum] = {0, 20, 30}
 
std::atomic< size_t > num_workers_ready_atomic
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

◆ MasterToWorkerDynamicMaster()

void MasterToWorkerDynamicMaster ( Config cfg,
moodycamel::ConcurrentQueue< EventData > &  event_queue,
moodycamel::ConcurrentQueue< EventData > &  complete_task_queue 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MasterToWorkerDynamicWorker()

void MasterToWorkerDynamicWorker ( Config cfg,
size_t  worker_id,
moodycamel::ConcurrentQueue< EventData > &  event_queue,
moodycamel::ConcurrentQueue< EventData > &  complete_task_queue,
moodycamel::ProducerToken ptok,
PtrGrid< kFrameWnd, kMaxUEs, complex_float > &  csi_buffers,
Table< complex_float > &  calib_dl_msum_buffer,
Table< complex_float > &  calib_ul_msum_buffer,
Table< complex_float > &  calib_dl_buffer,
Table< complex_float > &  calib_ul_buffer,
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &  ul_beam_matrices,
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &  dl_beam_matrices,
PhyStats phy_stats,
Stats stats 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ TEST()

TEST ( TestZF  ,
VaryingConfig   
)

Test correctness of BsAntNum() values in multi-threaded zeroforcing when BsAntNum() varies in runtime

Here is the call graph for this function:

Variable Documentation

◆ kAntTestNum

constexpr size_t kAntTestNum = 3
staticconstexpr

◆ kBsAntNums

constexpr size_t kBsAntNums[kAntTestNum] = {32, 16, 48}
staticconstexpr

◆ kFrameOffsets

constexpr size_t kFrameOffsets[kAntTestNum] = {0, 20, 30}
staticconstexpr

◆ kMaxItrNum

constexpr size_t kMaxItrNum = (1 << 30)
staticconstexpr

◆ kMaxTestNum

constexpr size_t kMaxTestNum = 100
staticconstexpr

◆ kNumWorkers

constexpr size_t kNumWorkers = 14
staticconstexpr

◆ num_workers_ready_atomic

std::atomic<size_t> num_workers_ready_atomic