Skip to content

Commit 60030e8

Browse files
committed
change the use of FLAGS_reader_queue_speed_test_mode
test=develop
1 parent 2178ae5 commit 60030e8

File tree

5 files changed

+22
-26
lines changed

5 files changed

+22
-26
lines changed

paddle/fluid/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ if(WITH_INFERENCE)
1414
add_subdirectory(inference)
1515
endif()
1616

17-
add_subdirectory(train)
17+
#add_subdirectory(train)

paddle/fluid/operators/reader/blocking_queue.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,11 @@
1414

1515
#pragma once
1616

17-
#include <gflags/gflags.h>
1817
#include <condition_variable> // NOLINT
1918
#include <deque>
2019

2120
#include "paddle/fluid/platform/enforce.h"
2221

23-
DECLARE_bool(reader_queue_speed_test_mode);
24-
2522
namespace paddle {
2623
namespace operators {
2724
namespace reader {
@@ -34,8 +31,8 @@ class BlockingQueue {
3431
// is a workaround and a simplified version of framework::Channel as it
3532
// doesn't support GPU and it implements on buffered blocking queue.
3633
public:
37-
explicit BlockingQueue(size_t capacity)
38-
: capacity_(capacity), closed_(false) {
34+
explicit BlockingQueue(size_t capacity, bool speed_test_mode = false)
35+
: capacity_(capacity), speed_test_mode_(speed_test_mode), closed_(false) {
3936
PADDLE_ENFORCE_GT(
4037
capacity_, 0,
4138
"The capacity of a reader::BlockingQueue must be greater than 0.");
@@ -75,7 +72,7 @@ class BlockingQueue {
7572
if (!queue_.empty()) {
7673
PADDLE_ENFORCE_NOT_NULL(elem);
7774
*elem = queue_.front();
78-
if (LIKELY(!FLAGS_reader_queue_speed_test_mode)) {
75+
if (LIKELY(!speed_test_mode_)) {
7976
queue_.pop_front();
8077
}
8178
send_cv_.notify_one();
@@ -119,6 +116,7 @@ class BlockingQueue {
119116

120117
private:
121118
size_t capacity_;
119+
bool speed_test_mode_;
122120
bool closed_;
123121
std::deque<T> queue_;
124122

paddle/fluid/operators/reader/lod_tensor_blocking_queue.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ class LoDTensorBlockingQueue {
3333

3434
private:
3535
LoDTensorBlockingQueue(size_t capacity,
36-
const std::vector<framework::DDim>& dims)
37-
: queue_(capacity), dims_(dims) {}
36+
const std::vector<framework::DDim>& dims,
37+
bool speed_test_mode = false)
38+
: queue_(capacity, speed_test_mode), dims_(dims) {}
3839

3940
public:
4041
bool Push(const std::vector<framework::LoDTensor>& lod_tensor_vec) {
@@ -69,11 +70,12 @@ class LoDTensorBlockingQueue {
6970

7071
class LoDTensorBlockingQueueHolder {
7172
public:
72-
void InitOnce(size_t capacity, const std::vector<framework::DDim>& dims) {
73+
void InitOnce(size_t capacity, const std::vector<framework::DDim>& dims,
74+
bool speed_test_mode = false) {
7375
PADDLE_ENFORCE(
7476
queue_ == nullptr,
7577
"LoDTensorBlockingQueueHolder::InitOnce() can only be called once");
76-
queue_.reset(new LoDTensorBlockingQueue(capacity, dims));
78+
queue_.reset(new LoDTensorBlockingQueue(capacity, dims, speed_test_mode));
7779
}
7880

7981
inline const std::shared_ptr<LoDTensorBlockingQueue>& GetQueue() const {

paddle/fluid/operators/reader/reader_blocking_queue_test.cc

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020

2121
#include "paddle/fluid/operators/reader/blocking_queue.h"
2222

23-
DEFINE_bool(reader_queue_speed_test_mode, false,
24-
"If set true, the queue.pop will only get data from queue but not "
25-
"remove the data from queue for speed testing");
26-
2723
using paddle::operators::reader::BlockingQueue;
2824

2925
TEST(BlockingQueue, CapacityTest) {
@@ -222,27 +218,26 @@ TEST(BlockingQueue, MyClassTest) {
222218
EXPECT_EQ(a.val_, b.val_);
223219
}
224220

225-
TEST(BlockingQueue, reader_queue_speed_test_mode_flag) {
226-
FLAGS_reader_queue_speed_test_mode = false;
221+
TEST(BlockingQueue, speed_test_mode) {
227222
size_t queue_size = 10;
228-
BlockingQueue<size_t> q(queue_size);
223+
BlockingQueue<size_t> q1(queue_size, false);
229224
for (size_t i = 0; i < queue_size; ++i) {
230-
q.Send(i);
225+
q1.Send(i);
231226
}
232227
size_t b;
233228
for (size_t i = 0; i < queue_size; ++i) {
234-
q.Receive(&b);
229+
q1.Receive(&b);
235230
EXPECT_EQ(b, i);
236231
}
237-
EXPECT_EQ(q.Size(), 0);
232+
EXPECT_EQ(q1.Size(), 0);
238233

239-
FLAGS_reader_queue_speed_test_mode = true;
234+
BlockingQueue<size_t> q2(queue_size, true);
240235
for (size_t i = 0; i < queue_size; ++i) {
241-
q.Send(i);
236+
q2.Send(i);
242237
}
243238
for (size_t i = 0; i < queue_size; ++i) {
244-
q.Receive(&b);
239+
q2.Receive(&b);
245240
EXPECT_EQ(b, 0);
246241
}
247-
EXPECT_EQ(q.Size(), queue_size);
242+
EXPECT_EQ(q2.Size(), queue_size);
248243
}

paddle/fluid/pybind/pybind.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,8 @@ All parameter, weight, gradient are variables in Paddle.
341341
return make_ddim(shape);
342342
});
343343
auto *holder = var.GetMutable<LoDTensorBlockingQueueHolder>();
344-
holder->InitOnce(capacity, dims);
344+
holder->InitOnce(capacity, dims,
345+
FLAGS_reader_queue_speed_test_mode);
345346
return holder->GetQueue();
346347
},
347348
py::return_value_policy::copy);

0 commit comments

Comments
 (0)