-
Notifications
You must be signed in to change notification settings - Fork 65
Open
Description
Look at the following code fragment in PIMBenchTestCases.h:
uint64_t measureCycle(bool is_pim_ = false)
{
cout << "Inside uint64_t measureCycle(bool is_pim_ = false). 1" << endl;
// cin.get();
uint64_t cycle = 0;
uint64_t starting_addr = 0;
if (is_pim_ == true)
{
cout << "Inside if (usePIM). "<<endl;
kernel_->executeEltwise(dim_data_->output_npbst_.getTotalDim(), pimBankType::ALL_BANK,
kernel_type_, input_row0_, result_row_, input_row1_);
kernel_->runPIM();
cycle = kernel_->getCycle();
}
else
{
cout << "Inside else (usePIM). "<<endl;
uint32_t input_data_size_in_byte =
dim_data_->getDataSize(dim_data_->input_dim_, dim_data_->batch_size_);
uint32_t input1_data_size_in_byte =
dim_data_->getDataSize(dim_data_->input_dim_, dim_data_->batch_size_);
uint32_t output_data_size_in_byte =
dim_data_->getDataSize(dim_data_->output_dim_, dim_data_->batch_size_);
starting_addr = genMemTraffic(mem_, false, input_data_size_in_byte, starting_addr);
starting_addr = genMemTraffic(mem_, false, input1_data_size_in_byte, starting_addr);
run(mem_, &cycle);
genMemTraffic(mem_, true, output_data_size_in_byte, starting_addr); // result-vec
run(mem_, &cycle);
}
Where is it simulating the compute cycles in this code? The run() adds memory cycles in its implementation. How are we comparing cycles taken with and without PIM without taking in account the compute cycles?
Metadata
Metadata
Assignees
Labels
No labels