Skip to content

Commit bbedfed

Browse files
committed
change core part
1 parent 2e998d2 commit bbedfed

8 files changed

Lines changed: 105 additions & 193 deletions

File tree

modules/core/perf/func_tests/perf_tests.cpp

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,12 @@
1212
TEST(perf_tests, check_perf_pipeline) {
1313
// Create data
1414
std::vector<uint32_t> in(2000, 1);
15-
std::vector<uint32_t> out(1, 0);
16-
17-
// Create task_data
18-
auto task_data = std::make_shared<ppc::core::TaskData>();
19-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
20-
task_data->inputs_count.emplace_back(in.size());
21-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
22-
task_data->outputs_count.emplace_back(out.size());
2315

2416
// Create Task
25-
auto test_task = std::make_shared<ppc::test::perf::TestTask<uint32_t>>(task_data);
17+
auto test_task = std::make_shared<ppc::test::perf::TestTask<uint32_t>>(in);
2618

2719
// Create Perf attributes
2820
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
29-
perf_attr->num_running = 10;
3021

3122
// Create and init perf results
3223
auto perf_results = std::make_shared<ppc::core::PerfResults>();
@@ -38,27 +29,18 @@ TEST(perf_tests, check_perf_pipeline) {
3829
// Get perf statistic
3930
ppc::core::Perf::PrintPerfStatistic(perf_results);
4031
ASSERT_LE(perf_results->time_sec, ppc::core::PerfResults::kMaxTime);
41-
EXPECT_EQ(out[0], in.size());
32+
EXPECT_EQ(test_task->Get(), in.size());
4233
}
4334

4435
TEST(perf_tests, check_perf_pipeline_float) {
4536
// Create data
4637
std::vector<float> in(2000, 1);
47-
std::vector<float> out(1, 0);
48-
49-
// Create task_data
50-
auto task_data = std::make_shared<ppc::core::TaskData>();
51-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
52-
task_data->inputs_count.emplace_back(in.size());
53-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
54-
task_data->outputs_count.emplace_back(out.size());
5538

5639
// Create Task
57-
auto test_task = std::make_shared<ppc::test::perf::TestTask<float>>(task_data);
40+
auto test_task = std::make_shared<ppc::test::perf::TestTask<float>>(in);
5841

5942
// Create Perf attributes
6043
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
61-
perf_attr->num_running = 10;
6244

6345
// Create and init perf results
6446
auto perf_results = std::make_shared<ppc::core::PerfResults>();
@@ -70,26 +52,20 @@ TEST(perf_tests, check_perf_pipeline_float) {
7052
// Get perf statistic
7153
ppc::core::Perf::PrintPerfStatistic(perf_results);
7254
ASSERT_LE(perf_results->time_sec, ppc::core::PerfResults::kMaxTime);
73-
EXPECT_EQ(out[0], in.size());
55+
EXPECT_EQ(test_task->Get(), in.size());
7456
}
7557

7658
TEST(perf_tests, check_perf_pipeline_uint8_t_slow_test) {
7759
// Create data
7860
std::vector<uint8_t> in(128, 1);
79-
std::vector<uint8_t> out(1, 0);
80-
81-
// Create task_data
82-
auto task_data = std::make_shared<ppc::core::TaskData>();
83-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
84-
task_data->inputs_count.emplace_back(in.size());
85-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
86-
task_data->outputs_count.emplace_back(out.size());
8761

8862
// Create Task
89-
auto test_task = std::make_shared<ppc::test::perf::FakePerfTask<uint8_t>>(task_data);
63+
auto test_task = std::make_shared<ppc::test::perf::FakePerfTask<uint8_t>>(in);
64+
9065
// Create Perf attributes
9166
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
9267
perf_attr->num_running = 1;
68+
9369
const auto t0 = std::chrono::high_resolution_clock::now();
9470
perf_attr->current_timer = [&] {
9571
auto current_time_point = std::chrono::high_resolution_clock::now();
@@ -107,27 +83,18 @@ TEST(perf_tests, check_perf_pipeline_uint8_t_slow_test) {
10783
// Get perf statistic
10884
ASSERT_ANY_THROW(ppc::core::Perf::PrintPerfStatistic(perf_results));
10985
ASSERT_GE(perf_results->time_sec, ppc::core::PerfResults::kMaxTime);
110-
EXPECT_EQ(out[0], in.size());
86+
EXPECT_EQ(test_task->Get(), in.size());
11187
}
11288

11389
TEST(perf_tests, check_perf_task) {
11490
// Create data
11591
std::vector<uint32_t> in(2000, 1);
116-
std::vector<uint32_t> out(1, 0);
117-
118-
// Create task_data
119-
auto task_data = std::make_shared<ppc::core::TaskData>();
120-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
121-
task_data->inputs_count.emplace_back(in.size());
122-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
123-
task_data->outputs_count.emplace_back(out.size());
12492

12593
// Create Task
126-
auto test_task = std::make_shared<ppc::test::perf::TestTask<uint32_t>>(task_data);
94+
auto test_task = std::make_shared<ppc::test::perf::TestTask<uint32_t>>(in);
12795

12896
// Create Perf attributes
12997
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
130-
perf_attr->num_running = 10;
13198

13299
// Create and init perf results
133100
auto perf_results = std::make_shared<ppc::core::PerfResults>();
@@ -140,27 +107,18 @@ TEST(perf_tests, check_perf_task) {
140107
perf_results->type_of_running = ppc::core::PerfResults::kNone;
141108
ppc::core::Perf::PrintPerfStatistic(perf_results);
142109
ASSERT_LE(perf_results->time_sec, ppc::core::PerfResults::kMaxTime);
143-
EXPECT_EQ(out[0], in.size());
110+
EXPECT_EQ(test_task->Get(), in.size());
144111
}
145112

146113
TEST(perf_tests, check_perf_task_float) {
147114
// Create data
148115
std::vector<float> in(2000, 1);
149-
std::vector<float> out(1, 0);
150-
151-
// Create task_data
152-
auto task_data = std::make_shared<ppc::core::TaskData>();
153-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
154-
task_data->inputs_count.emplace_back(in.size());
155-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
156-
task_data->outputs_count.emplace_back(out.size());
157116

158117
// Create Task
159-
auto test_task = std::make_shared<ppc::test::perf::TestTask<float>>(task_data);
118+
auto test_task = std::make_shared<ppc::test::perf::TestTask<float>>(in);
160119

161120
// Create Perf attributes
162121
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
163-
perf_attr->num_running = 10;
164122

165123
// Create and init perf results
166124
auto perf_results = std::make_shared<ppc::core::PerfResults>();
@@ -173,5 +131,5 @@ TEST(perf_tests, check_perf_task_float) {
173131
perf_results->type_of_running = ppc::core::PerfResults::kPipeline;
174132
ppc::core::Perf::PrintPerfStatistic(perf_results);
175133
ASSERT_LE(perf_results->time_sec, ppc::core::PerfResults::kMaxTime);
176-
EXPECT_EQ(out[0], in.size());
134+
EXPECT_EQ(test_task->Get(), in.size());
177135
}

modules/core/perf/func_tests/test_task.hpp

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,39 @@ namespace ppc::test::perf {
1212
template <class T>
1313
class TestTask : public ppc::core::Task {
1414
public:
15-
explicit TestTask(const ppc::core::TaskDataPtr &task_data) : Task(task_data) {}
15+
explicit TestTask(const std::vector<T>& in) : ppc::core::Task(StateOfTesting::kFunc), input_(in) {}
16+
17+
bool ValidationImpl() override {
18+
return !input_.empty();
19+
}
1620

1721
bool PreProcessingImpl() override {
18-
input_ = reinterpret_cast<T *>(task_data->inputs[0]);
19-
output_ = reinterpret_cast<T *>(task_data->outputs[0]);
20-
output_[0] = 0;
22+
output_ = 0;
2123
return true;
2224
}
2325

24-
bool ValidationImpl() override { return task_data->outputs_count[0] == 1; }
25-
2626
bool RunImpl() override {
27-
for (unsigned i = 0; i < task_data->inputs_count[0]; i++) {
28-
output_[0] += input_[i];
27+
for (unsigned i = 0; i < input_.size(); i++) {
28+
output_ += input_[i];
2929
}
3030
return true;
3131
}
3232

33-
bool PostProcessingImpl() override { return true; }
33+
bool PostProcessingImpl() override {
34+
return true;
35+
}
36+
37+
T Get() { return output_; }
3438

3539
private:
36-
T *input_{};
37-
T *output_{};
40+
std::vector<T> input_{};
41+
T output_;
3842
};
3943

4044
template <class T>
4145
class FakePerfTask : public TestTask<T> {
4246
public:
43-
explicit FakePerfTask(ppc::core::TaskDataPtr perf_task_data) : TestTask<T>(perf_task_data) {}
47+
explicit FakePerfTask(const std::vector<T>& in) : TestTask<T>(in) {}
4448

4549
bool RunImpl() override {
4650
std::this_thread::sleep_for(std::chrono::seconds(11));

modules/core/perf/include/perf.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace ppc::core {
1010

1111
struct PerfAttr {
1212
// count of task's running
13-
uint64_t num_running;
13+
uint64_t num_running = 10;
1414
std::function<double()> current_timer = [&] { return 0.0; };
1515
};
1616

modules/core/perf/src/perf.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
ppc::core::Perf::Perf(const std::shared_ptr<Task>& task_ptr) { SetTask(task_ptr); }
1717

1818
void ppc::core::Perf::SetTask(const std::shared_ptr<Task>& task_ptr) {
19-
task_ptr->GetData()->state_of_testing = TaskData::StateOfTesting::kPerf;
19+
task_ptr->GetStateOfTesting() = Task::StateOfTesting::kPerf;
2020
this->task_ = task_ptr;
2121
}
2222

0 commit comments

Comments
 (0)