Skip to content

Commit ed520c2

Browse files
committed
fixed benchmark compilation error
1 parent 89bd703 commit ed520c2

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

benchmarks/binary_tree/omp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// binary_tree_omp
55
void binary_tree_omp(size_t num_layers, unsigned num_threads) {
66

7-
std::atomic<size_t> counter = 0;
7+
std::atomic<size_t> counter {0};
88

99
size_t N = 1 << num_layers;
1010
size_t *D = new size_t [N];

benchmarks/mnist/dnn.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,15 @@ struct MNIST {
186186

187187
void add_layer(size_t in_degree, size_t out_degree, Activation act) {
188188
acts.emplace_back(act);
189-
Ys.emplace_back().resize(batch_size, out_degree);
189+
Ys.emplace_back();
190+
Ys.back().resize(batch_size, out_degree);
190191
Ws.push_back(Eigen::MatrixXf::Random(in_degree, out_degree));
191192
Bs.push_back(Eigen::MatrixXf::Random(1, out_degree));
192193

193-
dW.emplace_back().resize(in_degree, out_degree);
194-
dB.emplace_back().resize(1, out_degree);
194+
dW.emplace_back();
195+
dW.back().resize(in_degree, out_degree);
196+
dB.emplace_back();
197+
dB.back().resize(1, out_degree);
195198
}
196199

197200
void forward(size_t layer, const Eigen::MatrixXf& mat) {

benchmarks/mnist/taskflow.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ void run_taskflow(MNIST& D, unsigned num_threads) {
2323

2424
for(auto e=0u; e<D.epoch; e++) {
2525
for(auto i=0u; i<iter_num; i++) {
26-
auto& f_task = forward_tasks.emplace_back(taskflow.emplace(
26+
forward_tasks.emplace_back(taskflow.emplace(
2727
[&, i=i, e=e%num_par_shf]() { forward_task(D, i, e, mats, vecs); }
2828
));
29+
auto& f_task = forward_tasks.back();
2930

3031
if(i != 0 || (i == 0 && e != 0)) {
3132
auto sz = update_tasks.size();
@@ -36,14 +37,16 @@ void run_taskflow(MNIST& D, unsigned num_threads) {
3637

3738
for(int j=D.acts.size()-1; j>=0; j--) {
3839
// backward propagation
39-
auto& b_task = backward_tasks.emplace_back(taskflow.emplace(
40+
backward_tasks.emplace_back(taskflow.emplace(
4041
[&, i=j, e=e%num_par_shf] () { backward_task(D, i, e, mats); }
4142
));
43+
auto& b_task = backward_tasks.back();
4244

4345
// update weight
44-
auto& u_task = update_tasks.emplace_back(
46+
update_tasks.emplace_back(
4547
taskflow.emplace([&, i=j] () {D.update(i);})
4648
);
49+
auto& u_task = update_tasks.back();
4750

4851
if(j + 1u == D.acts.size()) {
4952
f_task.precede(b_task);
@@ -58,13 +61,14 @@ void run_taskflow(MNIST& D, unsigned num_threads) {
5861

5962
if(e == 0) {
6063
// No need to shuffle in first epoch
61-
shuffle_tasks.emplace_back(taskflow.emplace([](){}))
62-
.precede(forward_tasks[forward_tasks.size()-iter_num]);
64+
shuffle_tasks.emplace_back(taskflow.emplace([](){}));
65+
shuffle_tasks.back().precede(forward_tasks[forward_tasks.size()-iter_num]);
6366
}
6467
else {
65-
auto& t = shuffle_tasks.emplace_back(taskflow.emplace(
68+
shuffle_tasks.emplace_back(taskflow.emplace(
6669
[&, e=e%num_par_shf]() { D.shuffle(mats[e], vecs[e], D.images.rows());}
6770
));
71+
auto& t = shuffle_tasks.back();
6872
t.precede(forward_tasks[forward_tasks.size()-iter_num]);
6973

7074
// This shuffle task starts after belows finish

benchmarks/mnist/tbb.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@ void run_tbb(MNIST& D, unsigned num_threads) {
2828

2929
for(auto e=0u; e<D.epoch; e++) {
3030
for(auto i=0u; i<iter_num; i++) {
31-
auto& f_task = forward_tasks.emplace_back(
31+
forward_tasks.emplace_back(
3232
std::make_unique<continue_node<continue_msg>>(
3333
G,
3434
[&, i=i, e=e%num_par_shf](const continue_msg&) {
3535
forward_task(D, i, e, mats, vecs);
3636
}
3737
)
3838
);
39+
auto& f_task = forward_tasks.back();
3940

4041
if(i != 0 || (i == 0 && e != 0)) {
4142
auto sz = update_tasks.size();
@@ -47,24 +48,26 @@ void run_tbb(MNIST& D, unsigned num_threads) {
4748
for(int j=D.acts.size()-1; j>=0; j--) {
4849

4950
// backward propagation
50-
auto& b_task = backward_tasks.emplace_back(
51+
backward_tasks.emplace_back(
5152
std::make_unique<continue_node<continue_msg>>(
5253
G,
5354
[&, i=j, e=e%num_par_shf] (const continue_msg&) {
5455
backward_task(D, i, e, mats);
5556
}
5657
)
5758
);
59+
auto& b_task = backward_tasks.back();
5860

5961
// update weight
60-
auto& u_task = update_tasks.emplace_back(
62+
update_tasks.emplace_back(
6163
std::make_unique<continue_node<continue_msg>>(
6264
G,
6365
[&, i=j] (const continue_msg&) {
6466
D.update(i);
6567
}
6668
)
6769
);
70+
auto& u_task = update_tasks.back();
6871

6972
if(j + 1u == D.acts.size()) {
7073
make_edge(*f_task, *b_task);
@@ -85,14 +88,15 @@ void run_tbb(MNIST& D, unsigned num_threads) {
8588
make_edge(*shuffle_tasks.back(), *forward_tasks[forward_tasks.size()-iter_num]);
8689
}
8790
else {
88-
auto& t = shuffle_tasks.emplace_back(
91+
shuffle_tasks.emplace_back(
8992
std::make_unique<continue_node<continue_msg>>(
9093
G,
9194
[&, e=e%num_par_shf](const continue_msg&) {
9295
D.shuffle(mats[e], vecs[e], D.images.rows());
9396
}
9497
)
9598
);
99+
auto& t = shuffle_tasks.back();
96100
make_edge(*t, *forward_tasks[forward_tasks.size()-iter_num]);
97101

98102
// This shuffle task starts after belows finish

0 commit comments

Comments
 (0)