From 15306ffdc39f552a27a3d3d0588ee35701d38f74 Mon Sep 17 00:00:00 2001 From: zhouhanqing <1051910017@qq.com> Date: Wed, 7 Mar 2018 19:11:22 +0800 Subject: [PATCH 01/75] add product reduction for reduce_op --- paddle/fluid/operators/reduce_op.cc | 12 +++++ paddle/fluid/operators/reduce_op.h | 19 +++++++- python/paddle/fluid/layers/nn.py | 47 +++++++++++++++++++ .../fluid/tests/unittests/test_reduce_op.py | 13 +++++ 4 files changed, 90 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/operators/reduce_op.cc b/paddle/fluid/operators/reduce_op.cc index 69e8f8081e..4266636b2a 100644 --- a/paddle/fluid/operators/reduce_op.cc +++ b/paddle/fluid/operators/reduce_op.cc @@ -173,6 +173,15 @@ class ReduceMinOpMaker : public ReduceOpMaker { } }; +class ReduceProdOpMaker : public ReduceOpMaker { + public: + ReduceProdOpMaker(OpProto *proto, OpAttrChecker *op_checker) + : ReduceOpMaker(proto, op_checker) { + SetComment("ReduceProd", "prod"); + AddComment(comment_); + } +}; + } // namespace operators } // namespace paddle @@ -190,6 +199,9 @@ REGISTER_OP(reduce_max, ops::ReduceOp, ops::ReduceMaxOpMaker, reduce_max_grad, REGISTER_OP(reduce_min, ops::ReduceOp, ops::ReduceMinOpMaker, reduce_min_grad, ops::ReduceGradOp); +REGISTER_OP(reduce_prod, ops::ReduceOp, ops::ReduceProdOpMaker, + reduce_prod_grad, ops::ReduceGradOp); + #define REGISTER_REDUCE_CPU_KERNEL(reduce_type, functor, grad_functor) \ REGISTER_OP_CPU_KERNEL(reduce_type, \ ops::ReduceKernel + void operator()(const DeviceContext& place, X& x, Y& y, const Dim& dim) { + y.device(place) = x.prod(dim); + } +}; + +struct ProdGradFunctor { + template + void operator()(const DeviceContext& place, X& x, Y& y, DX& dx, DY& dy, + const Dim& dim, int size) { + dx.device(place) = dy.broadcast(dim) * y.broadcast(dim) * x.inverse(); + } +}; + template class ReduceKernel : public framework::OpKernel { public: @@ -254,4 +270,5 @@ class ReduceGradKernel : public framework::OpKernel { __macro(reduce_sum, SumFunctor, SumGradFunctor); \ __macro(reduce_mean, MeanFunctor, MeanGradFunctor); \ __macro(reduce_max, MaxFunctor, MaxOrMinGradFunctor); \ - __macro(reduce_min, MinFunctor, MaxOrMinGradFunctor); + __macro(reduce_min, MinFunctor, MaxOrMinGradFunctor); \ + __macro(reduce_prod, ProdFunctor, ProdGradFunctor); diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index b4fa530aa6..0d9c0df854 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -49,6 +49,7 @@ __all__ = [ 'reduce_mean', 'reduce_max', 'reduce_min', + 'reduce_prod', 'sequence_first_step', 'sequence_last_step', 'dropout', @@ -2200,6 +2201,52 @@ def reduce_min(input, dim=None, keep_dim=False, name=None): return out +def reduce_prod(input, dim=None, keep_dim=False, name=None): + """ + Computes the product of tensor elements over the given dimension. + + Args: + input (Variable): The input variable which is a Tensor or LoDTensor. + dim (int|None): The dimension along which the product is performed. If + :attr:`None`, multipy all elements of :attr:`input` and return a + Tensor variable with a single element, otherwise must be in the + range :math:`[-rank(input), rank(input))`. If :math:`dim < 0`, + the dimension to reduce is :math:`rank + dim`. + keep_dim (bool|False): Whether to reserve the reduced dimension in the + output Tensor. The result tensor will have one fewer dimension + than the :attr:`input` unless :attr:`keep_dim` is true. + name(str|None): A name for this layer(optional). If set None, the layer + will be named automatically. + + Returns: + Variable: The reduced Tensor variable. + + Examples: + .. code-block:: python + + # x is a Tensor variable with following elements: + # [[0.2, 0.3, 0.5, 0.9] + # [0.1, 0.2, 0.6, 0.7]] + # Each example is followed by the correspending output tensor. + fluid.layers.reduce_prod(x) # [0.0002268] + fluid.layers.reduce_prod(x, dim=0) # [0.02, 0.06, 0.3, 0.63] + fluid.layers.reduce_prod(x, dim=-1) # [0.027, 0.0084] + fluid.layers.reduce_prod(x, dim=1, keep_dim=True) # [[0.027], [0.0084]] + """ + helper = LayerHelper('reduce_prod', **locals()) + out = helper.create_tmp_variable(dtype=helper.input_dtype()) + helper.append_op( + type='reduce_prod', + inputs={'X': input}, + outputs={'Out': out}, + attrs={ + 'dim': dim if dim != None else 0, + 'keep_dim': keep_dim, + 'reduce_all': True if dim == None else False + }) + return out + + def split(input, num_or_sections, dim=-1, name=None): """ Split the input tensor into multiple sub-tensors. diff --git a/python/paddle/fluid/tests/unittests/test_reduce_op.py b/python/paddle/fluid/tests/unittests/test_reduce_op.py index 5e656bddb7..9b0cc3534d 100644 --- a/python/paddle/fluid/tests/unittests/test_reduce_op.py +++ b/python/paddle/fluid/tests/unittests/test_reduce_op.py @@ -70,6 +70,19 @@ class TestMinOp(OpTest): self.check_output() +class TestProdOp(OpTest): + def setUp(self): + self.op_type = "reduce_prod" + self.inputs = {'X': np.random.random((5, 6, 10)).astype("float64")} + self.outputs = {'Out': self.inputs['X'].prod(axis=0)} + + def test_check_output(self): + self.check_output() + + def test_check_grad(self): + self.check_grad(['X'], 'Out') + + class TestKeepDimReduce(OpTest): def setUp(self): self.op_type = "reduce_sum" From 9d78971d8bc05fd844448f01ebbc5a8a3d0112a1 Mon Sep 17 00:00:00 2001 From: zhouhanqing <1051910017@qq.com> Date: Fri, 9 Mar 2018 14:07:25 +0800 Subject: [PATCH 02/75] Some comments have been modified. --- paddle/fluid/operators/reduce_op.cc | 2 +- python/paddle/fluid/layers/nn.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/paddle/fluid/operators/reduce_op.cc b/paddle/fluid/operators/reduce_op.cc index 4266636b2a..7879367830 100644 --- a/paddle/fluid/operators/reduce_op.cc +++ b/paddle/fluid/operators/reduce_op.cc @@ -177,7 +177,7 @@ class ReduceProdOpMaker : public ReduceOpMaker { public: ReduceProdOpMaker(OpProto *proto, OpAttrChecker *op_checker) : ReduceOpMaker(proto, op_checker) { - SetComment("ReduceProd", "prod"); + SetComment("ReduceProd", "production"); AddComment(comment_); } }; diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 0d9c0df854..a5957304e2 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -2215,8 +2215,8 @@ def reduce_prod(input, dim=None, keep_dim=False, name=None): keep_dim (bool|False): Whether to reserve the reduced dimension in the output Tensor. The result tensor will have one fewer dimension than the :attr:`input` unless :attr:`keep_dim` is true. - name(str|None): A name for this layer(optional). If set None, the layer - will be named automatically. + name(str|None): A name for this layer(optional). If set None, the + layer will be named automatically. Returns: Variable: The reduced Tensor variable. @@ -2231,7 +2231,8 @@ def reduce_prod(input, dim=None, keep_dim=False, name=None): fluid.layers.reduce_prod(x) # [0.0002268] fluid.layers.reduce_prod(x, dim=0) # [0.02, 0.06, 0.3, 0.63] fluid.layers.reduce_prod(x, dim=-1) # [0.027, 0.0084] - fluid.layers.reduce_prod(x, dim=1, keep_dim=True) # [[0.027], [0.0084]] + fluid.layers.reduce_prod(x, dim=1, + keep_dim=True) # [[0.027], [0.0084]] """ helper = LayerHelper('reduce_prod', **locals()) out = helper.create_tmp_variable(dtype=helper.input_dtype()) From 46ae4075eec45241ddf69b830b7f724f30e63fc7 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 12 Mar 2018 14:55:31 +0800 Subject: [PATCH 03/75] Polish ShuffleReader and test --- .../reader/create_shuffle_reader_op.cc | 75 +++++++++++-------- python/paddle/fluid/layers/io.py | 23 +++++- python/paddle/fluid/recordio_writer.py | 3 + .../tests/unittests/test_recordio_reader.py | 13 +++- 4 files changed, 79 insertions(+), 35 deletions(-) diff --git a/paddle/fluid/operators/reader/create_shuffle_reader_op.cc b/paddle/fluid/operators/reader/create_shuffle_reader_op.cc index 4dac383110..70e2f587dc 100644 --- a/paddle/fluid/operators/reader/create_shuffle_reader_op.cc +++ b/paddle/fluid/operators/reader/create_shuffle_reader_op.cc @@ -12,6 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include +#include "glog/logging.h" +#include "paddle/fluid/operators/detail/safe_ref.h" #include "paddle/fluid/operators/reader/reader_op_registry.h" namespace paddle { @@ -20,43 +23,53 @@ namespace reader { class ShuffleReader : public framework::DecoratedReader { public: - ShuffleReader(ReaderBase* reader, int buffer_size) - : DecoratedReader(reader), buffer_size_(buffer_size), iteration_pos_(0) { - buffer_.reserve(buffer_size); + ShuffleReader(ReaderBase* reader, size_t buffer_size, size_t seed = 0) + : DecoratedReader(reader), buffer_size_(buffer_size), seed_(seed) { + VLOG(10) << "Create shuffle reader of " << reader_; + if (seed_ == 0) { + std::random_device device; + seed_ = device(); + } + ReadIntoBuffers(); } - void ReadNext(std::vector* out) override; + void ReadNext(std::vector* out) override { + if (iteration_pos_ >= buffer_.size()) { + VLOG(10) << "Resetting shuffle buffer"; + ReadIntoBuffers(); + } + *out = buffer_[iteration_pos_++]; + } - private: - int buffer_size_; - std::vector> buffer_; - size_t iteration_pos_; -}; + bool HasNext() const override { + return iteration_pos_ < buffer_.size() || reader_->HasNext(); + } -void ShuffleReader::ReadNext(std::vector* out) { - if (iteration_pos_ >= buffer_.size()) { - // Reload buffer with new data + private: + void ReadIntoBuffers() { buffer_.clear(); buffer_.reserve(buffer_size_); - for (int i = 0; i < buffer_size_; ++i) { - buffer_.push_back(std::vector()); - reader_->ReadNext(&buffer_.back()); - if (buffer_.back().empty()) { - buffer_.pop_back(); + iteration_pos_ = 0; + PADDLE_ENFORCE(reader_->HasNext()); + for (size_t i = 0; i < buffer_size_; ++i) { + if (!reader_->HasNext()) { break; } + buffer_.emplace_back(); + reader_->ReadNext(&buffer_.back()); } - // TODO(fengjiayi): 'std::random_shuffle' can be very slow. It needs to be - // optimize. - std::random_shuffle(buffer_.begin(), buffer_.end()); - iteration_pos_ = 0; + std::mt19937 g(seed_); + std::shuffle(buffer_.begin(), buffer_.end(), g); + seed_ = g(); // update seed_; + VLOG(10) << "random buffer size = " << buffer_.size(); } - out->clear(); - if (!buffer_.empty()) { - std::swap(*out, buffer_[iteration_pos_++]); - } - // if buffer_ is empty, the 'out' will return as an empty vector. -} + + size_t buffer_size_; + std::vector> buffer_; + + size_t iteration_pos_; + size_t seed_; +}; class CreateShuffleReaderOp : public framework::OperatorBase { public: @@ -67,10 +80,10 @@ class CreateShuffleReaderOp : public framework::OperatorBase { const platform::Place& dev_place) const override { const auto& underlying_reader = scope.FindVar(Input("UnderlyingReader")) ->Get(); - auto* out = scope.FindVar(Output("Out")) - ->template GetMutable(); - out->Reset( - new ShuffleReader(underlying_reader.Get(), Attr("buffer_size"))); + auto& var = detail::Ref(scope.FindVar(Output("Out"))); + var.GetMutable()->Reset( + new ShuffleReader(underlying_reader.Get(), + static_cast(Attr("buffer_size")))); } }; diff --git a/python/paddle/fluid/layers/io.py b/python/paddle/fluid/layers/io.py index f1b2af7020..81dd978949 100644 --- a/python/paddle/fluid/layers/io.py +++ b/python/paddle/fluid/layers/io.py @@ -21,7 +21,7 @@ from ..executor import global_scope __all__ = [ 'data', 'BlockGuardServ', 'ListenAndServ', 'Send', 'open_recordio_file', - 'read_file' + 'read_file', 'create_shuffle_reader' ] @@ -245,6 +245,8 @@ def monkey_patch_reader_methods(reader): reader.eof = eof reader.reset = reset + reader.stop_gradient = True + reader.persistable = True return reader @@ -285,6 +287,25 @@ def open_recordio_file(filename, shapes, lod_levels, dtypes): startup_var) +def __create_decorated_reader__(op_type, reader, attrs): + var_name = unique_name(op_type) + startup_blk = default_startup_program().current_block() + startup_var = startup_blk.create_var(name=var_name) + startup_blk.append_op( + type=op_type, + inputs={'UnderlyingReader': reader}, + outputs={'Out': [startup_var]}, + attrs=attrs) + startup_var.persistable = True + return _copy_reader_var_(default_main_program().current_block(), + startup_var) + + +def create_shuffle_reader(reader, buffer_size): + return __create_decorated_reader__('create_shuffle_reader', reader, + {'buffer_size': int(buffer_size)}) + + def read_file(file_obj): helper = LayerHelper('read_file') out = [ diff --git a/python/paddle/fluid/recordio_writer.py b/python/paddle/fluid/recordio_writer.py index 9735df8c06..5accaacd53 100644 --- a/python/paddle/fluid/recordio_writer.py +++ b/python/paddle/fluid/recordio_writer.py @@ -36,6 +36,7 @@ def convert_reader_to_recordio_file( feed_order=None): if feed_order is None: feed_order = feeder.feed_names + counter = 0 with create_recordio_writer(filename, compressor, max_num_records) as writer: for batch in reader_creator(): @@ -43,3 +44,5 @@ def convert_reader_to_recordio_file( for each in feed_order: writer.append_tensor(res[each]) writer.complete_append_tensor() + counter += 1 + return counter diff --git a/python/paddle/fluid/tests/unittests/test_recordio_reader.py b/python/paddle/fluid/tests/unittests/test_recordio_reader.py index d249742bd3..cdebda5b7d 100644 --- a/python/paddle/fluid/tests/unittests/test_recordio_reader.py +++ b/python/paddle/fluid/tests/unittests/test_recordio_reader.py @@ -31,10 +31,10 @@ class TestRecordIO(unittest.TestCase): name='label', shape=[1], dtype='int64'), ], place=fluid.CPUPlace()) - fluid.recordio_writer.convert_reader_to_recordio_file( + self.num_batches = fluid.recordio_writer.convert_reader_to_recordio_file( './mnist.recordio', reader, feeder) - def test_main(self): + def test_main(self, decorator_callback=None): # use new program with fluid.program_guard(fluid.Program(), fluid.Program()): data_file = fluid.layers.open_recordio_file( @@ -42,6 +42,8 @@ class TestRecordIO(unittest.TestCase): shapes=[[-1, 784], [-1, 1]], lod_levels=[0, 0], dtypes=['float32', 'int64']) + if decorator_callback is not None: + data_file = decorator_callback(data_file) img, label = fluid.layers.read_file(data_file) hidden = fluid.layers.fc(input=img, size=100, act='tanh') @@ -56,9 +58,14 @@ class TestRecordIO(unittest.TestCase): avg_loss_np = [] # train a pass + batch_id = 0 while not data_file.eof(): tmp, = exe.run(fetch_list=[avg_loss]) avg_loss_np.append(tmp) + batch_id += 1 data_file.reset() - + self.assertEqual(batch_id, self.num_batches) self.assertLess(avg_loss_np[-1], avg_loss_np[0]) + + def test_shuffle_reader(self): + self.test_main(decorator_callback=lambda reader: fluid.layers.create_shuffle_reader(reader, buffer_size=200)) From 2ea4a5d96c0d134c84651e691510f90c8b19f0fa Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 12 Mar 2018 15:39:31 +0800 Subject: [PATCH 04/75] Polish double buffer reader --- .../reader/create_double_buffer_reader_op.cc | 79 ++++++++++++++----- python/paddle/fluid/layers/io.py | 10 ++- .../tests/unittests/test_recordio_reader.py | 14 +++- 3 files changed, 81 insertions(+), 22 deletions(-) diff --git a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc index ba08ea12e2..ca947fff43 100644 --- a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc +++ b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc @@ -24,11 +24,16 @@ static constexpr size_t kDoubleBufferSize = 2; class DoubleBufferReader : public framework::DecoratedReader { public: - explicit DoubleBufferReader(ReaderBase* reader) - : DecoratedReader(reader), - buffer_(framework::MakeChannel>( - kDoubleBufferSize)) { - std::thread prefetch(&DoubleBufferReader::PrefetchThreadFunc, this); + explicit DoubleBufferReader( + ReaderBase* reader, platform::Place target_place = platform::CPUPlace()) + : DecoratedReader(reader), place_(target_place) { + start_thread(); + } + + void start_thread() { + buffer_ = framework::MakeChannel>( + kDoubleBufferSize); + std::thread prefetch([this] { PrefetchThreadFunc(); }); prefetch.detach(); } @@ -43,6 +48,8 @@ class DoubleBufferReader : public framework::DecoratedReader { void PrefetchThreadFunc(); framework::Channel>* buffer_; + platform::Place place_; + mutable std::vector local_buffer_; }; class CreateDoubleBufferReaderOp : public framework::OperatorBase { @@ -56,7 +63,20 @@ class CreateDoubleBufferReaderOp : public framework::OperatorBase { ->Get(); auto* out = scope.FindVar(Output("Out")) ->template GetMutable(); - out->Reset(new DoubleBufferReader(underlying_reader.Get())); + + auto place_str = Attr("place"); + platform::Place place; + if (place_str == "CPU") { + place = platform::CPUPlace(); + } else { + std::istringstream sin(place_str); + sin.seekg(std::string("CUDA:").size(), std::ios::beg); + size_t num; + sin >> num; + place = platform::CUDAPlace(static_cast(num)); + } + + out->Reset(new DoubleBufferReader(underlying_reader.Get(), place)); } }; @@ -71,44 +91,65 @@ class CreateDoubleBufferReaderOpMaker : public DecoratedReaderMakerBase { It launches another thread to execute the 'underlying reader' asynchronously, which prevents reading process from blocking subsequent training. )DOC"); + std::unordered_set enum_range; + constexpr size_t kMaxCUDADevs = 128; + for (size_t i = 0; i < kMaxCUDADevs; ++i) { + enum_range.insert(string::Sprintf("CUDA:%d", i)); + } + enum_range.insert("CPU"); + AddAttr("place", "The double buffer place, default is CPU") + .SetDefault("CPU") + .InEnum({enum_range}); } }; void DoubleBufferReader::ReadNext(std::vector* out) { out->clear(); - buffer_->Receive(out); + if (local_buffer_.empty()) { + buffer_->Receive(out); + } else { + *out = local_buffer_; + local_buffer_.clear(); + } } void DoubleBufferReader::ReInit() { reader_->ReInit(); buffer_->Close(); - // The existing prefetch thread will terminate for the buffer_ is closed. - buffer_ = framework::MakeChannel>( - kDoubleBufferSize); - std::thread prefetch(&DoubleBufferReader::PrefetchThreadFunc, this); - prefetch.detach(); + start_thread(); } void DoubleBufferReader::PrefetchThreadFunc() { VLOG(5) << "A new prefetch thread starts."; - while (true) { + while (reader_->HasNext()) { std::vector batch; reader_->ReadNext(&batch); - if (batch.empty()) { - // EOF - buffer_->Close(); - VLOG(5) << "Reached the end of the file. The prefetch thread terminates."; - break; + if (platform::is_gpu_place(place_)) { + std::vector gpu_batch; + gpu_batch.resize(batch.size()); + for (size_t i = 0; i < batch.size(); ++i) { + framework::TensorCopy(batch[i], place_, &gpu_batch[i]); + gpu_batch[i].set_lod(batch[i].lod()); + } } + if (!buffer_->Send(&batch)) { VLOG(5) << "WARNING: The double buffer channel has been closed. The " "prefetch thread terminates."; break; } } + buffer_->Close(); } -bool DoubleBufferReader::HasNext() const { PADDLE_THROW("Not Implemented"); } +bool DoubleBufferReader::HasNext() const { + if (local_buffer_.empty()) { + bool ok = buffer_->Receive(&local_buffer_); + return ok; + } else { + return true; + } +} } // namespace reader } // namespace operators diff --git a/python/paddle/fluid/layers/io.py b/python/paddle/fluid/layers/io.py index 81dd978949..9c91f395e7 100644 --- a/python/paddle/fluid/layers/io.py +++ b/python/paddle/fluid/layers/io.py @@ -21,7 +21,7 @@ from ..executor import global_scope __all__ = [ 'data', 'BlockGuardServ', 'ListenAndServ', 'Send', 'open_recordio_file', - 'read_file', 'create_shuffle_reader' + 'read_file', 'create_shuffle_reader', 'create_double_buffer_reader' ] @@ -306,6 +306,14 @@ def create_shuffle_reader(reader, buffer_size): {'buffer_size': int(buffer_size)}) +def create_double_buffer_reader(reader, place=None): + attrs = dict() + if place is not None: + attrs['place'] = str(place).upper() + return __create_decorated_reader__('create_double_buffer_reader', reader, + attrs) + + def read_file(file_obj): helper = LayerHelper('read_file') out = [ diff --git a/python/paddle/fluid/tests/unittests/test_recordio_reader.py b/python/paddle/fluid/tests/unittests/test_recordio_reader.py index cdebda5b7d..24a0074d9b 100644 --- a/python/paddle/fluid/tests/unittests/test_recordio_reader.py +++ b/python/paddle/fluid/tests/unittests/test_recordio_reader.py @@ -13,9 +13,10 @@ # limitations under the License. import unittest + import paddle.fluid as fluid -import paddle.v2.dataset.mnist as mnist import paddle.v2 as paddle +import paddle.v2.dataset.mnist as mnist class TestRecordIO(unittest.TestCase): @@ -53,7 +54,12 @@ class TestRecordIO(unittest.TestCase): fluid.optimizer.Adam(learning_rate=1e-3).minimize(avg_loss) - exe = fluid.Executor(fluid.CPUPlace()) + if fluid.core.is_compiled_with_cuda(): + place = fluid.CUDAPlace(0) + else: + place = fluid.CPUPlace() + + exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) avg_loss_np = [] @@ -69,3 +75,7 @@ class TestRecordIO(unittest.TestCase): def test_shuffle_reader(self): self.test_main(decorator_callback=lambda reader: fluid.layers.create_shuffle_reader(reader, buffer_size=200)) + + def test_double_buffer_reader(self): + self.test_main(decorator_callback=lambda reader: fluid.layers.create_double_buffer_reader(reader, + place='cuda:0' if fluid.core.is_compiled_with_cuda() else 'cpu')) From 225efa671fd1b234e67752ad9a1cd4aecdffe58b Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 12 Mar 2018 16:10:19 +0800 Subject: [PATCH 05/75] Remove dims in base class --- paddle/fluid/framework/operator.cc | 20 ++------------ paddle/fluid/framework/reader.cc | 10 +------ paddle/fluid/framework/reader.h | 26 ++----------------- .../reader/create_random_data_generator_op.cc | 5 ++-- .../reader/create_recordio_file_reader_op.cc | 10 +++---- 5 files changed, 12 insertions(+), 59 deletions(-) diff --git a/paddle/fluid/framework/operator.cc b/paddle/fluid/framework/operator.cc index ac6289c5ab..49f8cd5f90 100644 --- a/paddle/fluid/framework/operator.cc +++ b/paddle/fluid/framework/operator.cc @@ -442,15 +442,7 @@ class RuntimeInferShapeContext : public InferShapeContext { } std::vector GetRepeatedDims(const std::string& name) const override { - Variable* var = scope_.FindVar(name); - if (var->IsType()) { - return var->Get().shapes(); - } else { - PADDLE_THROW( - "Only ReaderHolder support 'GetRepeatedDims', but Variable %s's " - "type_id is %s.", - name, var->Type().name()); - } + PADDLE_THROW("Only compile time support this method"); } void SetDim(const std::string& name, const DDim& dim) override { @@ -467,15 +459,7 @@ class RuntimeInferShapeContext : public InferShapeContext { void SetRepeatedDims(const std::string& name, const std::vector& dims) override { - Variable* var = scope_.FindVar(name); - if (var->IsType()) { - var->GetMutable()->set_shapes(dims); - } else { - PADDLE_THROW( - "Only ReaderHolder support 'SetRepeatedDims', but Variable %s's " - "type_id is %s.", - name, var->Type().name()); - } + PADDLE_THROW("Only compile time support this method"); } proto::VarType::Type GetVarType(const std::string& name) const override { diff --git a/paddle/fluid/framework/reader.cc b/paddle/fluid/framework/reader.cc index 91879d6d45..31f686151e 100644 --- a/paddle/fluid/framework/reader.cc +++ b/paddle/fluid/framework/reader.cc @@ -16,14 +16,6 @@ namespace paddle { namespace framework { - -DDim ReaderBase::shape(size_t idx) const { - PADDLE_ENFORCE_LT( - idx, shapes_.size(), - "Cannot get the %d'th shape, 'shapes_' only has %d elements.", idx, - shapes_.size()); - return shapes_[idx]; -} - +ReaderBase::~ReaderBase() {} } // namespace framework } // namespace paddle diff --git a/paddle/fluid/framework/reader.h b/paddle/fluid/framework/reader.h index e281c9b13f..2d8d30fc66 100644 --- a/paddle/fluid/framework/reader.h +++ b/paddle/fluid/framework/reader.h @@ -22,34 +22,18 @@ namespace framework { class ReaderBase { public: - explicit ReaderBase(const std::vector& shapes) : shapes_(shapes) { - PADDLE_ENFORCE(!shapes_.empty()); - } virtual void ReadNext(std::vector* out) = 0; virtual void ReInit() = 0; - DDim shape(size_t idx) const; - std::vector shapes() const { return shapes_; } - void set_shapes(const std::vector& shapes) { shapes_ = shapes; } - virtual bool HasNext() const = 0; - virtual ~ReaderBase() {} - - protected: - std::vector shapes_; -}; - -class FileReader : public ReaderBase { - public: - explicit FileReader(const std::vector& shapes) : ReaderBase(shapes) {} + virtual ~ReaderBase(); }; class DecoratedReader : public ReaderBase { public: - explicit DecoratedReader(ReaderBase* reader) - : ReaderBase(reader->shapes()), reader_(reader) { + explicit DecoratedReader(ReaderBase* reader) : ReaderBase(), reader_(reader) { PADDLE_ENFORCE_NOT_NULL(reader_); } @@ -72,12 +56,6 @@ class ReaderHolder { void ReadNext(std::vector* out) { reader_->ReadNext(out); } void ReInit() { reader_->ReInit(); } - DDim shape(size_t idx) const { return reader_->shape(idx); } - std::vector shapes() const { return reader_->shapes(); } - void set_shapes(const std::vector& shapes) { - reader_->set_shapes(shapes); - } - bool HasNext() const { return reader_->HasNext(); } private: diff --git a/paddle/fluid/operators/reader/create_random_data_generator_op.cc b/paddle/fluid/operators/reader/create_random_data_generator_op.cc index e62f952d0e..95d8674c08 100644 --- a/paddle/fluid/operators/reader/create_random_data_generator_op.cc +++ b/paddle/fluid/operators/reader/create_random_data_generator_op.cc @@ -19,11 +19,11 @@ namespace operators { namespace reader { template -class RandomDataGenerator : public framework::FileReader { +class RandomDataGenerator : public framework::ReaderBase { public: RandomDataGenerator(const std::vector& shapes, float min, float max) - : FileReader(shapes), min_(min), max_(max) { + : framework::ReaderBase(), min_(min), max_(max), shapes_(shapes) { PADDLE_ENFORCE_LE( min, max, "'min' shouldn't be greater than 'max'.(%f vs %f)", min, max); unsigned int seed = std::random_device()(); @@ -59,6 +59,7 @@ class RandomDataGenerator : public framework::FileReader { float max_; std::minstd_rand engine_; std::uniform_real_distribution dist_; + std::vector shapes_; }; template diff --git a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc index c3eb247bbe..4992eb8617 100644 --- a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc +++ b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc @@ -18,11 +18,10 @@ namespace paddle { namespace operators { namespace reader { -class RecordIOFileReader : public framework::FileReader { +class RecordIOFileReader : public framework::ReaderBase { public: - RecordIOFileReader(const std::string& filename, - const std::vector& shapes) - : FileReader(shapes), + explicit RecordIOFileReader(const std::string& filename) + : ReaderBase(), scanner_(filename), dev_ctx_(*platform::DeviceContextPool::Instance().Get( platform::CPUPlace())) {} @@ -54,12 +53,11 @@ class CreateRecordIOReaderOp : public framework::OperatorBase { int(shape_concat.size()), "The accumulate of all ranks should be equal to the " "shape concat's length."); - std::vector shapes = RestoreShapes(shape_concat, ranks); std::string filename = Attr("filename"); auto* out = scope.FindVar(Output("Out")) ->template GetMutable(); - out->Reset(new RecordIOFileReader(filename, shapes)); + out->Reset(new RecordIOFileReader(filename)); } }; From e1b2408011ce68488ace7655b35c188b531f03a2 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Tue, 13 Mar 2018 11:26:43 +0800 Subject: [PATCH 06/75] Fix some outdated contents in Contribute Documentations --- doc/v2/dev/doc_en.png | Bin 0 -> 155805 bytes doc/v2/dev/write_docs_cn.rst | 40 ++++++++++++++++++++++++++--------- doc/v2/dev/write_docs_en.rst | 38 +++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 doc/v2/dev/doc_en.png diff --git a/doc/v2/dev/doc_en.png b/doc/v2/dev/doc_en.png new file mode 100644 index 0000000000000000000000000000000000000000..98af454979eeb648656d2d4b9781b762f89f122a GIT binary patch literal 155805 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 z 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%0D|UH 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/. If you want to learn more on the PaddlePaddle.org, please `click here `_ 。 +build documentations directly +---------------------------- + +There's two ways to build documentations directly: build documents and build APIs + +- build documents + +If you only need to build documents, you can execute the following command to set up: + +.. code-block:: bash + + make -j $processors gen_proto_py + make -j $processors paddle_docs paddle_docs_cn + +- build APIs + +If you only need to build APIs, you can execute the following command to set up: + +.. code-block:: bash + + make -j $processors gen_proto_py framework_py_proto + make -j $processors copy_paddle_pybind + make -j $processors paddle_api_docs + +$processors represents how many processes are started for compilation. Generally, it can be set to 1, 4, or 8. + +After the compilation is complete, enter the doc/v2 directory. Three subdirectories are generated under this directory. You can enter the directories cn/html/, en/html, and api/en/html respectively and execute the following commands: + +.. code-block:: bash + + python -m SimpleHTTPServer 8088 + +Enter http://localhost:8088 in the browser to see the compiled Chinese/English documents page and the English APIs page. The following picture shows an example of a generated English document page. + +.. image:: doc_en.png + :align: center + :scale: 60 % + How to write Documentations ============ From f9974a4a12de337559cb1d6494c4d1f7656d52e9 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Tue, 13 Mar 2018 14:44:19 +0800 Subject: [PATCH 07/75] Make double_buffer reader async --- .../reader/create_double_buffer_reader_op.cc | 59 +++++++++++++------ 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc index ca947fff43..706f6fd592 100644 --- a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc +++ b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc @@ -24,15 +24,31 @@ static constexpr size_t kDoubleBufferSize = 2; class DoubleBufferReader : public framework::DecoratedReader { public: + struct Item { + Item() : ctx_(nullptr) {} + + std::vector payloads_; + platform::DeviceContext* ctx_; + }; + explicit DoubleBufferReader( ReaderBase* reader, platform::Place target_place = platform::CPUPlace()) : DecoratedReader(reader), place_(target_place) { + for (size_t i = 0; i < kDoubleBufferSize; ++i) { + if (platform::is_gpu_place(place_)) { +#ifdef PADDLE_WITH_CUDA + ctxs_.emplace_back(new platform::CUDADeviceContext( + boost::get(place_))); +#else +#endif + } + } + start_thread(); } void start_thread() { - buffer_ = framework::MakeChannel>( - kDoubleBufferSize); + buffer_ = framework::MakeChannel(kDoubleBufferSize); std::thread prefetch([this] { PrefetchThreadFunc(); }); prefetch.detach(); } @@ -47,9 +63,10 @@ class DoubleBufferReader : public framework::DecoratedReader { private: void PrefetchThreadFunc(); - framework::Channel>* buffer_; + framework::Channel* buffer_; platform::Place place_; - mutable std::vector local_buffer_; + std::vector> ctxs_; + mutable Item local_buffer_; }; class CreateDoubleBufferReaderOp : public framework::OperatorBase { @@ -104,12 +121,14 @@ class CreateDoubleBufferReaderOpMaker : public DecoratedReaderMakerBase { }; void DoubleBufferReader::ReadNext(std::vector* out) { - out->clear(); - if (local_buffer_.empty()) { - buffer_->Receive(out); - } else { - *out = local_buffer_; - local_buffer_.clear(); + if (local_buffer_.payloads_.empty()) { + buffer_->Receive(&local_buffer_); + } + + *out = local_buffer_.payloads_; + local_buffer_.payloads_.clear(); + if (local_buffer_.ctx_) { + local_buffer_.ctx_->Wait(); } } @@ -121,16 +140,22 @@ void DoubleBufferReader::ReInit() { void DoubleBufferReader::PrefetchThreadFunc() { VLOG(5) << "A new prefetch thread starts."; + size_t gpu_ctx_offset = 0; while (reader_->HasNext()) { - std::vector batch; - reader_->ReadNext(&batch); + Item batch; + reader_->ReadNext(&batch.payloads_); if (platform::is_gpu_place(place_)) { std::vector gpu_batch; - gpu_batch.resize(batch.size()); - for (size_t i = 0; i < batch.size(); ++i) { - framework::TensorCopy(batch[i], place_, &gpu_batch[i]); - gpu_batch[i].set_lod(batch[i].lod()); + auto& gpu_ctx = this->ctxs_[gpu_ctx_offset++]; + gpu_ctx_offset %= this->ctxs_.size(); + gpu_batch.resize(batch.payloads_.size()); + for (size_t i = 0; i < batch.payloads_.size(); ++i) { + framework::TensorCopy(batch.payloads_[i], place_, *gpu_ctx, + &gpu_batch[i]); + gpu_batch[i].set_lod(batch.payloads_[i].lod()); } + batch.ctx_ = gpu_ctx.get(); + std::swap(gpu_batch, batch.payloads_); } if (!buffer_->Send(&batch)) { @@ -143,7 +168,7 @@ void DoubleBufferReader::PrefetchThreadFunc() { } bool DoubleBufferReader::HasNext() const { - if (local_buffer_.empty()) { + if (local_buffer_.payloads_.empty()) { bool ok = buffer_->Receive(&local_buffer_); return ok; } else { From 164f2382afe6ded95c95f4fb731a1d932d578026 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Tue, 13 Mar 2018 17:56:53 +0800 Subject: [PATCH 08/75] Polish code --- paddle/fluid/framework/reader.cc | 40 +------------------ paddle/fluid/framework/reader.h | 25 +----------- .../reader/create_double_buffer_reader_op.cc | 1 - .../reader/create_recordio_file_reader_op.cc | 4 +- 4 files changed, 6 insertions(+), 64 deletions(-) diff --git a/paddle/fluid/framework/reader.cc b/paddle/fluid/framework/reader.cc index c3fb657a3a..fa00c08e0d 100644 --- a/paddle/fluid/framework/reader.cc +++ b/paddle/fluid/framework/reader.cc @@ -18,45 +18,9 @@ namespace paddle { namespace framework { ReaderBase::~ReaderBase() {} -std::vector> ReaderBase::SplitReader( - const platform::PlaceList &places) { - std::vector> readers; +FileReader::FileReader(const std::vector &dims) : dims_(dims) {} - auto mutex = std::make_shared(); - for (size_t i = 0; i < places.size(); ++i) { - readers.emplace_back(new ThreadSafeReader(this, mutex)); - } - - return readers; -} - -void ThreadSafeReader::ReadNext(std::vector *out) { - std::lock_guard guard(*mutex_); - reader_->ReadNext(out); -} - -void ThreadSafeReader::ReInit() { - std::lock_guard guard(*mutex_); - reader_->ReInit(); -} - -bool ThreadSafeReader::HasNext() const { - std::lock_guard guard(*mutex_); - return reader_->HasNext(); -} - -std::vector> ThreadSafeReader::SplitReader( - const platform::PlaceList &places) { - std::vector> readers; - for (size_t i = 0; i < places.size(); ++i) { - readers.emplace_back(new ThreadSafeReader(reader_, mutex_)); - } - return readers; -} - -FileReaderBase::FileReaderBase(const std::vector &dims) : dims_(dims) {} - -void FileReaderBase::ReadNext(std::vector *out) { +void FileReader::ReadNext(std::vector *out) { ReadNextImpl(out); PADDLE_ENFORCE_EQ(out->size(), dims_.size()); for (size_t i = 0; i < dims_.size(); ++i) { diff --git a/paddle/fluid/framework/reader.h b/paddle/fluid/framework/reader.h index 8989bddd10..3573b99bec 100644 --- a/paddle/fluid/framework/reader.h +++ b/paddle/fluid/framework/reader.h @@ -33,9 +33,6 @@ class ReaderBase { virtual bool HasNext() const = 0; - virtual std::vector> SplitReader( - const platform::PlaceList& places); - virtual ~ReaderBase(); }; @@ -53,27 +50,9 @@ class DecoratedReader : public ReaderBase { ReaderBase* reader_; }; -class ThreadSafeReader : public DecoratedReader { - public: - ThreadSafeReader(ReaderBase* reader, const std::shared_ptr& mutex) - : DecoratedReader(reader), mutex_(mutex) {} - - void ReadNext(std::vector* out) override; - - void ReInit() override; - - bool HasNext() const override; - - std::vector> SplitReader( - const platform::PlaceList& places) override; - - private: - std::shared_ptr mutex_; -}; - -class FileReaderBase : public ReaderBase { +class FileReader : public ReaderBase { public: - explicit FileReaderBase(const std::vector& dims); + explicit FileReader(const std::vector& dims); void ReadNext(std::vector* out) override; diff --git a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc index 706f6fd592..d0de092947 100644 --- a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc +++ b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc @@ -39,7 +39,6 @@ class DoubleBufferReader : public framework::DecoratedReader { #ifdef PADDLE_WITH_CUDA ctxs_.emplace_back(new platform::CUDADeviceContext( boost::get(place_))); -#else #endif } } diff --git a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc index 819e09a369..c4aa29c720 100644 --- a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc +++ b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc @@ -18,11 +18,11 @@ namespace paddle { namespace operators { namespace reader { -class RecordIOFileReader : public framework::FileReaderBase { +class RecordIOFileReader : public framework::FileReader { public: explicit RecordIOFileReader(const std::string& filename, const std::vector& dims) - : FileReaderBase(dims), + : FileReader(dims), scanner_(filename), dev_ctx_(*platform::DeviceContextPool::Instance().Get( platform::CPUPlace())) {} From 0f81a801d686f3b23b9b80a4c6a4c9505e022de9 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Tue, 13 Mar 2018 18:29:03 +0800 Subject: [PATCH 09/75] Rollback write_docs_en.rst --- doc/v2/dev/write_docs_en.rst | 38 ------------------------------------ 1 file changed, 38 deletions(-) diff --git a/doc/v2/dev/write_docs_en.rst b/doc/v2/dev/write_docs_en.rst index 526bbf2baa..f3408a8426 100644 --- a/doc/v2/dev/write_docs_en.rst +++ b/doc/v2/dev/write_docs_en.rst @@ -63,44 +63,6 @@ The compiled documentations will be stored in /. If you want to learn more on the PaddlePaddle.org, please `click here `_ 。 -build documentations directly ----------------------------- - -There's two ways to build documentations directly: build documents and build APIs - -- build documents - -If you only need to build documents, you can execute the following command to set up: - -.. code-block:: bash - - make -j $processors gen_proto_py - make -j $processors paddle_docs paddle_docs_cn - -- build APIs - -If you only need to build APIs, you can execute the following command to set up: - -.. code-block:: bash - - make -j $processors gen_proto_py framework_py_proto - make -j $processors copy_paddle_pybind - make -j $processors paddle_api_docs - -$processors represents how many processes are started for compilation. Generally, it can be set to 1, 4, or 8. - -After the compilation is complete, enter the doc/v2 directory. Three subdirectories are generated under this directory. You can enter the directories cn/html/, en/html, and api/en/html respectively and execute the following commands: - -.. code-block:: bash - - python -m SimpleHTTPServer 8088 - -Enter http://localhost:8088 in the browser to see the compiled Chinese/English documents page and the English APIs page. The following picture shows an example of a generated English document page. - -.. image:: doc_en.png - :align: center - :scale: 60 % - How to write Documentations ============ From 6723e1b82c0f0cf1b045267465ba4469129d66df Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Tue, 13 Mar 2018 19:50:40 +0800 Subject: [PATCH 10/75] Create a new folder to store pictures --- doc/v2/dev/doc_en.png | Bin 155805 -> 0 bytes doc/v2/dev/new_layer_cn.rst | 2 +- doc/v2/dev/new_layer_en.rst | 2 +- doc/v2/dev/{ => src}/FullyConnected.jpg | Bin doc/v2/dev/src/doc_en.png | Bin 0 -> 162824 bytes 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 doc/v2/dev/doc_en.png rename doc/v2/dev/{ => src}/FullyConnected.jpg (100%) create mode 100644 doc/v2/dev/src/doc_en.png diff --git a/doc/v2/dev/doc_en.png b/doc/v2/dev/doc_en.png deleted file mode 100644 index 98af454979eeb648656d2d4b9781b762f89f122a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155805 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 z 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%0D|UH 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 z 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 Date: Tue, 13 Mar 2018 19:52:04 +0800 Subject: [PATCH 11/75] Adjust some --- doc/v2/dev/write_docs_cn.rst | 48 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/doc/v2/dev/write_docs_cn.rst b/doc/v2/dev/write_docs_cn.rst index 78d6a02032..907f9b05df 100644 --- a/doc/v2/dev/write_docs_cn.rst +++ b/doc/v2/dev/write_docs_cn.rst @@ -8,14 +8,14 @@ PaddlePaddle的文档包括英文文档 ``doc`` 和中文文档 ``doc_cn`` 两 如何构建文档 ============ -PaddlePaddle的文档构建有三种方式。 +PaddlePaddle的文档构建有两种方式。 使用PaddlePaddle.org工具 --------------- +---------------------- 这个是目前推荐的使用方法。除了可以自动编译文档,也可以直接在网页预览文档。 -文件工具是使用Docker,需要在系统里先安装好Docker工具包。Docker安装请参考Docker的官网。安装好Docker之后及可用以下命令启动工具 +PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好Docker工具包。Docker安装请参考Docker的官网。安装好Docker之后即可用以下命令启动工具 .. code-block:: bash @@ -62,13 +62,18 @@ PaddlePaddle的文档构建有三种方式。 想了解更多PaddlePaddle.org工具的详细信息,可以 `点击这里 `_ 。 -使用Docker构建 --------------- +不使用PaddlePaddle.org工具 +------------------------ 使用Docker构建PaddlePaddle的文档,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 `_ 。安装好Docker之后可以使用源码目录下的脚本构建文档,即 .. code-block:: bash + mkdir paddlepaddle # Create paddlepaddle working directory + cd paddlepaddle + + # Clone the content repositories + git clone https://github.com/PaddlePaddle/Paddle.git cd TO_YOUR_PADDLE_CLONE_PATH cd paddle/scripts/tools/build_docs sh build_docs.sh @@ -76,41 +81,40 @@ PaddlePaddle的文档构建有三种方式。 编译完成之后,会在当前目录生成两个子目录\: doc(英文文档目录)和 doc_cn(中文文档目录)。 打开浏览器访问对应目录下的index.html即可访问本地文档。 -直接构建 --------- - -直接构建可以分为两种方式,分别是构建文档和构建API。 +如果不想使用Docker,也可以使用以下命令直接构建PaddlePaddle文档,即 -- 构建文档 +.. code-block:: bash -如果只需要构建文档,可以执行以下命令编译生成文档,即: + mkdir paddlepaddle # Create paddlepaddle working directory + cd paddlepaddle -.. code-block:: bash + # Clone the content repositories + git clone https://github.com/PaddlePaddle/Paddle.git + cd TO_YOUR_PADDLE_CLONE_PATH + mkdir -p build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_GPU=OFF -DWITH_MKL=OFF -DWITH_DOC=ON + # 如果只需要构建使用文档,则执行以下命令 make -j $processors gen_proto_py make -j $processors paddle_docs paddle_docs_cn -- 构建API - -如果只需要构建API,则可以执行以下命令编译生成文档,即: - -.. code-block:: bash - + # 如果只需要构建API,则执行以下命令 make -j $processors gen_proto_py framework_py_proto make -j $processors copy_paddle_pybind make -j $processors paddle_api_docs -其中$processors代表启动多少个进程来进行编译,一般取值为1,4或8。 +其中$processors代表启动和CPU核一样多的进程来并行编译,一般取值为1,4或8,可以根据本机的CPU核数设置相应的值。 -编译完成后,从当前目录进入doc/v2目录,该目录下生成了三个子目录,可以分别进入目录cn/html/、en/html、api/en/html中,执行以下命令,即: +编译完成后,进入doc/v2目录,如果选择构建文档则会在该目录下生成cn/html/、en/html两个子目录,选择构建API则会生成api/en/html目录,分别进入这些目录下,执行以下命令,即: .. code-block:: bash python -m SimpleHTTPServer 8088 -在浏览器中输入http://localhost:8088就可以看到编译生成的中/英文的文档页面和英文的API页面,下图为生成的英文文档页面示例。 +在浏览器中输入http://localhost:8088就可以看到编译生成的中/英文的文档页面和英文的API页面,下图为生成的英文文档首页示例。注意,示例中由于使用了sphinx的原始主题,所以页面的风格与官网并不一致,但这并不影响开发者进行调试。 -.. image:: doc_en.png +.. image:: src/doc_en.png :align: center :scale: 60 % From c0a9aebe1c3462270ee96a149e8b83866748cacd Mon Sep 17 00:00:00 2001 From: Liu Yiqun Date: Tue, 13 Mar 2018 12:02:17 +0000 Subject: [PATCH 12/75] Remove the clone of program in C++ Executor.Run(). --- paddle/fluid/framework/executor.cc | 33 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/paddle/fluid/framework/executor.cc b/paddle/fluid/framework/executor.cc index 5cae38b2a8..82f75ab741 100644 --- a/paddle/fluid/framework/executor.cc +++ b/paddle/fluid/framework/executor.cc @@ -106,10 +106,11 @@ void Executor::Run(const ProgramDesc& pdesc, Scope* scope, int block_id, // and feed_holder_name. Raise exception when any mismatch is found. // Return true if the block has feed operators and holder of matching info. static bool has_feed_operators( - BlockDesc* block, std::map& feed_targets, + const BlockDesc& block, + std::map& feed_targets, const std::string& feed_holder_name) { size_t feed_count = 0; - for (auto* op : block->AllOps()) { + for (auto* op : block.AllOps()) { if (op->Type() == kFeedOpType) { feed_count++; PADDLE_ENFORCE_EQ(op->Input("X")[0], feed_holder_name, @@ -128,7 +129,7 @@ static bool has_feed_operators( "The number of feed operators should match 'feed_targets'"); // When feed operator are present, so should be feed_holder - auto var = block->FindVar(feed_holder_name); + auto var = block.FindVar(feed_holder_name); PADDLE_ENFORCE_NOT_NULL(var, "Block should already have a '%s' variable", feed_holder_name); PADDLE_ENFORCE_EQ(var->GetType(), proto::VarType::FEED_MINIBATCH, @@ -146,10 +147,10 @@ static bool has_feed_operators( // and fetch_holder_name. Raise exception when any mismatch is found. // Return true if the block has fetch operators and holder of matching info. static bool has_fetch_operators( - BlockDesc* block, std::map& fetch_targets, + const BlockDesc& block, std::map& fetch_targets, const std::string& fetch_holder_name) { size_t fetch_count = 0; - for (auto* op : block->AllOps()) { + for (auto* op : block.AllOps()) { if (op->Type() == kFetchOpType) { fetch_count++; PADDLE_ENFORCE_EQ(op->Output("Out")[0], fetch_holder_name, @@ -168,7 +169,7 @@ static bool has_fetch_operators( "The number of fetch operators should match 'fetch_targets'"); // When fetch operator are present, so should be fetch_holder - auto var = block->FindVar(fetch_holder_name); + auto var = block.FindVar(fetch_holder_name); PADDLE_ENFORCE_NOT_NULL(var, "Block should already have a '%s' variable", fetch_holder_name); PADDLE_ENFORCE_EQ(var->GetType(), proto::VarType::FETCH_LIST, @@ -184,10 +185,19 @@ void Executor::Run(const ProgramDesc& program, Scope* scope, std::map& fetch_targets, const std::string& feed_holder_name, const std::string& fetch_holder_name) { - auto* copy_program = new ProgramDesc(program); + bool has_feed_ops = + has_feed_operators(program.Block(0), feed_targets, feed_holder_name); + bool has_fetch_ops = + has_fetch_operators(program.Block(0), fetch_targets, fetch_holder_name); + + ProgramDesc* copy_program = const_cast(&program); + if (!has_feed_ops || !has_fetch_ops) { + copy_program = std::unique_ptr(new ProgramDesc(program)).get(); + } + auto* global_block = copy_program->MutableBlock(0); - if (!has_feed_operators(global_block, feed_targets, feed_holder_name)) { + if (!has_feed_ops) { // create feed_holder variable auto* feed_holder = global_block->Var(feed_holder_name); feed_holder->SetType(proto::VarType::FEED_MINIBATCH); @@ -220,7 +230,7 @@ void Executor::Run(const ProgramDesc& program, Scope* scope, } } - if (!has_fetch_operators(global_block, fetch_targets, fetch_holder_name)) { + if (!has_fetch_ops) { // create fetch_holder variable auto* fetch_holder = global_block->Var(fetch_holder_name); fetch_holder->SetType(proto::VarType::FETCH_LIST); @@ -254,8 +264,6 @@ void Executor::Run(const ProgramDesc& program, Scope* scope, GetFetchVariable(*scope, fetch_holder_name, idx); } } - - delete copy_program; } ExecutorPrepareContext* Executor::Prepare(const ProgramDesc& program, @@ -305,9 +313,8 @@ void Executor::RunPreparedContext(ExecutorPrepareContext* ctx, Scope* scope, } // if (create_vars) for (auto& op : ctx->ops_) { - VLOG(4) << place_ << " " << op->DebugStringEx(local_scope); - op->Run(*local_scope, place_); VLOG(3) << place_ << " " << op->DebugStringEx(local_scope); + op->Run(*local_scope, place_); if (FLAGS_benchmark) { VLOG(2) << "Memory used after operator " + op->Type() + " running: " From 6519f6caae5a00c2e968067d8bfd02b2263b08c0 Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Wed, 14 Mar 2018 10:31:03 +0800 Subject: [PATCH 13/75] merge --- doc/design/cpp_data_feeding.md | 66 ++++++++++++++++++++++++--------- paddle/fluid/framework/reader.h | 17 +++++++-- 2 files changed, 63 insertions(+), 20 deletions(-) diff --git a/doc/design/cpp_data_feeding.md b/doc/design/cpp_data_feeding.md index 2cbb0083e6..c6e59c264c 100644 --- a/doc/design/cpp_data_feeding.md +++ b/doc/design/cpp_data_feeding.md @@ -1,6 +1,6 @@ # C++ Data Feeding -While using Paddle V2 API for Training, data feeding completely depends on the Python code. To get rid of the Python environment and achieve the goal of "wrapping the whole training by a while loop op" in Paddle Fluid, a C++ data feeding mechanism is required. +While using Paddle V2 API for training, data feeding completely depends on the Python code. To get rid of the Python environment and achieve the goal of "wrapping the whole training by a while loop op" in Paddle Fluid, a C++ data feeding mechanism is required. In this document we show the fundamental design of a C++ data feeding process, which includes data reading, shuffling and batching. @@ -16,35 +16,67 @@ In order to handle the above mentioned problem, a new concept called 'Reader' is ```cpp class ReaderBase { public: - explicit ReaderBase(const std::vector& shapes) : shapes_(shapes) { - PADDLE_ENFORCE(!shapes_.empty()); - } - // Read the next batch of data. (A 'batch' can be only one instance) - // If the next batch doesn't exist, '*out' will be an empty std::vector. + // Reads the next batch of data. (A 'batch' can be only one instance) + // If the next batch doesn't exist, it throws an exception virtual void ReadNext(std::vector* out) = 0; - // Reinitialize the reader and read the file from the beginning. - virtual void ReInit() = 0; + // Checks whether the next instance exists. + virtual bool HasNext() = 0; - // Get a certain read in data's shape. - DDim shape(size_t idx) const; - // Get shapes of all read in data. - std::vector shapes() const { return shapes_; } - // Set shapes of read in data. - void set_shapes(const std::vector& shapes) { shapes_ = shapes; } + // Reinitializes the reader and read the file from the beginning. + virtual void ReInit() = 0; virtual ~ReaderBase() {} +}; +``` + +### FileReader + +`FileReader` is derived from the `ReaderBase`. It is still an abstract class and will further be derived by Readers of respective specific format. + +```cpp +class FileReader : public ReaderBase { + public: + explicit FileReader(const std::vector& shapes) : shapes_(shapes) {} + + void ReadNext(std::vector* out) override final { + ReadNextImpl(out); + CheckShapes(out); + } + + virtual void ReadNextImpl(std::vector* out) = 0; protected: + // Checks whether the out shapes is consistent with shapes_ + CheckShape(const std::vector* out); + std::vector shapes_; }; ``` -### `FileReader` and `DecoratedReader` +A file reader binds with a single file, and reads one instance of data from the file at a time. Each type of file reader shall implement its own `ReadNextImpl()`, `HasNext()` and `ReInit()`. + +### DecoratedReader + +A decorated reader takes another reader(both file reader and decorated reader are OK) as its 'underlying reader'. It gets data from its underlying reader, does some process on them(shuffling, batching or something else), then yields processed data. The output data of a decorated reader can be a single instance or a batch. `ShuffleReader` and `BatchReader` are both decorated readers. + +```cpp +class DecoratedReader : public ReaderBase { + public: + explicit DecoratedReader(ReaderBase* reader) : reader_(reader) { + PADDLE_ENFORCE_NOT_NULL(reader_); + } + + void ReInit() override { reader_->ReInit(); } + + protected: + ReaderBase* reader_; +}; +``` -These two classes are derived from the `ReaderBase` and will further be derived by more specific readers. Thus, in our design, there are two kinds of readers: file readers and decorated readers. A file reader reads from a file of some specific format, and yield only one instance of data at a time. For example, RecordIO reader, jpg reader, .... A decorated reader takes another reader(both file reader and decorated reader are OK) as its 'underlying reader'. It gets data from its underlying reader, does some processing on them(shuffling, or batching), then yields processed data. The output data of a decorated reader can be a single instance or a batch. `ShuffleReader` and `BatchReader` are both decorated readers. +All the `FileReader` and `DecoratedReader` share exactly the same interfaces as defined in `ReaderBase`. So they can be decorated for more than one time: We can **shuffle** a reader's outputs and then **batch** the shuffle outputs. The interface consistency also allows related ops use readers without knowing what they are exactly. -All the readers share exactly the same interface as defined in `ReaderBase`. So they can be decorated for more than one time: We can **shuffle** a reader's outputs and then **batch** the shuffle outputs. The interface consistency also allows related ops use readers without knowing what they are exactly. +### ThreadedReader ### `ReaderHolder` diff --git a/paddle/fluid/framework/reader.h b/paddle/fluid/framework/reader.h index 18064ddc66..0e857aeb61 100644 --- a/paddle/fluid/framework/reader.h +++ b/paddle/fluid/framework/reader.h @@ -43,13 +43,24 @@ class ReaderBase { class FileReader : public ReaderBase { public: - explicit FileReader(const std::vector& shapes) : ReaderBase(shapes) {} + explicit FileReader(const std::vector& shapes) : shapes_(shapes) {} + + void ReadNext(std::vector* out) override final { + ReadNextImpl(out); + CheckShapes(out); + } + + virtual void ReadNextImpl(std::vector* out) = 0; + + protected: + CheckShape(const std::vector* out); + + std::vector shapes_; }; class DecoratedReader : public ReaderBase { public: - explicit DecoratedReader(ReaderBase* reader) - : ReaderBase(reader->shapes()), reader_(reader) { + explicit DecoratedReader(ReaderBase* reader) : reader_(reader) { PADDLE_ENFORCE_NOT_NULL(reader_); } From cc1650c9d9159bf6ccc1bc39aaab9b349ea30120 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Wed, 14 Mar 2018 11:00:15 +0800 Subject: [PATCH 14/75] Adjust some contents --- doc/v2/dev/write_docs_cn.rst | 46 ++++++++++++------------------------ 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/doc/v2/dev/write_docs_cn.rst b/doc/v2/dev/write_docs_cn.rst index 907f9b05df..c975b0bb81 100644 --- a/doc/v2/dev/write_docs_cn.rst +++ b/doc/v2/dev/write_docs_cn.rst @@ -2,20 +2,19 @@ 如何贡献文档 ############# -PaddlePaddle的文档包括英文文档 ``doc`` 和中文文档 ``doc_cn`` 两个部分。文档都是通过 `cmake`_ 驱动 `sphinx`_ 编译生成,生成后的文档分别存储在编译目录的 ``doc`` 和 ``doc_cn`` 两个子目录下。 -也可以利用PaddlePaddle 工具来编译文档,这个情况下所有的文件会存在整理过的的文件目录 .ppo_workspace/content 下 +PaddlePaddle的文档包括中英文两个部分。文档都是通过``cmake``驱动``sphinx``编译生成,也可以利用paddlepaddle.org工具来编译和预览文档。 如何构建文档 ============ -PaddlePaddle的文档构建有两种方式。 +PaddlePaddle的文档构建有两种方式,分别为使用paddlepaddle.org工具和不使用paddlepaddle.org工具,两种方式都有各自的优点,前者方便预览,后者方便开发者进行调试。这两种方式中又分别有使用docker和不使用docker的两种构建方法。 使用PaddlePaddle.org工具 ----------------------- -这个是目前推荐的使用方法。除了可以自动编译文档,也可以直接在网页预览文档。 +------------------------ +这个是目前推荐的使用方法。除了可以自动编译文档,还可以直接在网页中预览文档,需要注意的是,采用后续说明的其它方式虽然也可以预览文档,但是文档的样式与官网文档是不一致的,使用PaddlePaddle.org工具进行编译才能产生与官网文档样式一致的预览效果。 -PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好Docker工具包。Docker安装请参考Docker的官网。安装好Docker之后即可用以下命令启动工具 +PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 `_ 。安装好Docker之后即可用以下命令启动工具 .. code-block:: bash @@ -63,37 +62,22 @@ PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好D 想了解更多PaddlePaddle.org工具的详细信息,可以 `点击这里 `_ 。 不使用PaddlePaddle.org工具 ------------------------- +-------------------------- 使用Docker构建PaddlePaddle的文档,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 `_ 。安装好Docker之后可以使用源码目录下的脚本构建文档,即 -.. code-block:: bash - - mkdir paddlepaddle # Create paddlepaddle working directory - cd paddlepaddle - - # Clone the content repositories - git clone https://github.com/PaddlePaddle/Paddle.git - cd TO_YOUR_PADDLE_CLONE_PATH - cd paddle/scripts/tools/build_docs - sh build_docs.sh - -编译完成之后,会在当前目录生成两个子目录\: doc(英文文档目录)和 doc_cn(中文文档目录)。 -打开浏览器访问对应目录下的index.html即可访问本地文档。 +TBD 如果不想使用Docker,也可以使用以下命令直接构建PaddlePaddle文档,即 .. code-block:: bash - mkdir paddlepaddle # Create paddlepaddle working directory - cd paddlepaddle - - # Clone the content repositories + mkdir paddle + cd paddle git clone https://github.com/PaddlePaddle/Paddle.git - cd TO_YOUR_PADDLE_CLONE_PATH mkdir -p build cd build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_GPU=OFF -DWITH_MKL=OFF -DWITH_DOC=ON + cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_GPU=OFF -DWITH_MKL=OFF -DWITH_DOC=ON # 如果只需要构建使用文档,则执行以下命令 make -j $processors gen_proto_py @@ -104,9 +88,9 @@ PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好D make -j $processors copy_paddle_pybind make -j $processors paddle_api_docs -其中$processors代表启动和CPU核一样多的进程来并行编译,一般取值为1,4或8,可以根据本机的CPU核数设置相应的值。 +其中$processors代表启动和CPU核一样多的进程来并行编译,可以根据本机的CPU核数设置相应的值。 -编译完成后,进入doc/v2目录,如果选择构建文档则会在该目录下生成cn/html/、en/html两个子目录,选择构建API则会生成api/en/html目录,分别进入这些目录下,执行以下命令,即: +编译完成后,进入``doc/v2``目录,如果选择构建文档则会在该目录下生成``cn/html/``、``en/html``两个子目录,选择构建API则会生成``api/en/html``目录,分别进入这些目录下,执行以下命令: .. code-block:: bash @@ -126,9 +110,9 @@ PaddlePaddle文档使用 `sphinx`_ 自动生成,用户可以参考sphinx教程 如何更新www.paddlepaddle.org ============================ -更新的文档以PR的形式提交到github中,提交方式参见 `贡献文档 `_ 。 -目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 `中文文档 `_ 和 -`英文文档 `_ 。 +更新的文档以PR的形式提交到github中,提交方式参见 `如何贡献文档 `_ 。 +目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 `中文文档 `_ 和 +`英文文档 `_ 。 .. _cmake: https://cmake.org/ From 8ecad98578574175b029687d5b67a65b3dc5abde Mon Sep 17 00:00:00 2001 From: Liu Yiqun Date: Wed, 14 Mar 2018 02:57:29 +0000 Subject: [PATCH 15/75] Add the bool variable to decide whether to have a copy of the program in ExecutorPrepareContext. --- paddle/fluid/framework/executor.cc | 29 ++++++++++++++++++++++------- paddle/fluid/framework/executor.h | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/paddle/fluid/framework/executor.cc b/paddle/fluid/framework/executor.cc index 82f75ab741..d70a661cf3 100644 --- a/paddle/fluid/framework/executor.cc +++ b/paddle/fluid/framework/executor.cc @@ -35,11 +35,26 @@ namespace paddle { namespace framework { struct ExecutorPrepareContext { - ExecutorPrepareContext(const framework::ProgramDesc& prog, size_t block_id) - : prog_(prog), block_id_(block_id) {} + ExecutorPrepareContext(const framework::ProgramDesc* prog, size_t block_id, + bool own_program = true) + : block_id_(block_id), own_program_(own_program) { + if (own_program_) { + prog_ = new ProgramDesc(*prog); + } else { + // If own_program_ is false, we can avoid a clone of the program. + prog_ = prog; + } + } + + ~ExecutorPrepareContext() { + if (own_program_) { + delete prog_; + } + } - framework::ProgramDesc prog_; + const framework::ProgramDesc* prog_; size_t block_id_; + bool own_program_; std::vector> ops_; }; @@ -94,7 +109,7 @@ static void CheckTensorNANOrInf(const std::string& name, void Executor::Run(const ProgramDesc& pdesc, Scope* scope, int block_id, bool create_local_scope, bool create_vars) { - auto* ctx = Prepare(pdesc, block_id); + auto* ctx = Prepare(pdesc, block_id, false); RunPreparedContext(ctx, scope, create_local_scope, create_vars); delete ctx; } @@ -267,8 +282,8 @@ void Executor::Run(const ProgramDesc& program, Scope* scope, } ExecutorPrepareContext* Executor::Prepare(const ProgramDesc& program, - int block_id) { - auto* ctx = new ExecutorPrepareContext(program, block_id); + int block_id, bool own_program) { + auto* ctx = new ExecutorPrepareContext(&program, block_id, own_program); PADDLE_ENFORCE_LT(static_cast(block_id), program.Size()); auto& block = program.Block(block_id); for (auto& op_desc : block.AllOps()) { @@ -279,7 +294,7 @@ ExecutorPrepareContext* Executor::Prepare(const ProgramDesc& program, void Executor::RunPreparedContext(ExecutorPrepareContext* ctx, Scope* scope, bool create_local_scope, bool create_vars) { - auto& block = ctx->prog_.Block(ctx->block_id_); + auto& block = ctx->prog_->Block(ctx->block_id_); Scope* local_scope = scope; if (create_vars) { diff --git a/paddle/fluid/framework/executor.h b/paddle/fluid/framework/executor.h index 28ce331515..2be48bd006 100644 --- a/paddle/fluid/framework/executor.h +++ b/paddle/fluid/framework/executor.h @@ -48,7 +48,7 @@ class Executor { const std::string& fetch_holder_name = "fetch"); static ExecutorPrepareContext* Prepare(const ProgramDesc& program, - int block_id); + int block_id, bool own_program = true); void RunPreparedContext(ExecutorPrepareContext* ctx, Scope* scope, bool create_local_scope = true, From ca0e32494b5c62d417cf856582d3b14e66786516 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Wed, 14 Mar 2018 11:22:40 +0800 Subject: [PATCH 16/75] Adjust --- doc/v2/dev/write_docs_cn.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/v2/dev/write_docs_cn.rst b/doc/v2/dev/write_docs_cn.rst index c975b0bb81..535f034d98 100644 --- a/doc/v2/dev/write_docs_cn.rst +++ b/doc/v2/dev/write_docs_cn.rst @@ -2,7 +2,7 @@ 如何贡献文档 ############# -PaddlePaddle的文档包括中英文两个部分。文档都是通过``cmake``驱动``sphinx``编译生成,也可以利用paddlepaddle.org工具来编译和预览文档。 +PaddlePaddle的文档包括中英文两个部分。文档都是通过 ``cmake`` 驱动 ``sphinx`` 编译生成,也可以利用paddlepaddle.org工具来编译和预览文档。 如何构建文档 ============ @@ -34,7 +34,7 @@ PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好D 之后再用网页连到http://localhost:8000就可以在网页上生成需要的文档 编译后的文件将被存储在工作目录 /.ppo_workspace/content。 -如果不想使用 Docker,你还可以通过运行Django框架直接激活工具的服务器。使用下面的命令来运行它。 +如果不想使用Docker,你还可以通过运行Django框架直接激活工具的服务器。使用下面的命令来运行它。 .. code-block:: bash @@ -66,7 +66,7 @@ PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好D 使用Docker构建PaddlePaddle的文档,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 `_ 。安装好Docker之后可以使用源码目录下的脚本构建文档,即 -TBD +[TBD] 如果不想使用Docker,也可以使用以下命令直接构建PaddlePaddle文档,即 @@ -90,7 +90,7 @@ TBD 其中$processors代表启动和CPU核一样多的进程来并行编译,可以根据本机的CPU核数设置相应的值。 -编译完成后,进入``doc/v2``目录,如果选择构建文档则会在该目录下生成``cn/html/``、``en/html``两个子目录,选择构建API则会生成``api/en/html``目录,分别进入这些目录下,执行以下命令: +编译完成后,进入 ``doc/v2`` 目录,如果选择构建文档则会在该目录下生成 ``cn/html/`` 、 ``en/html`` 两个子目录,选择构建API则会生成 ``api/en/html`` 目录,分别进入这些目录下,执行以下命令: .. code-block:: bash From 3d6a4b6cd033b0989b65bfb94a56d3dddde2be78 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Wed, 14 Mar 2018 11:29:11 +0800 Subject: [PATCH 17/75] Correct links error --- doc/v2/dev/write_docs_cn.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/v2/dev/write_docs_cn.rst b/doc/v2/dev/write_docs_cn.rst index 535f034d98..a055bb04c0 100644 --- a/doc/v2/dev/write_docs_cn.rst +++ b/doc/v2/dev/write_docs_cn.rst @@ -110,9 +110,9 @@ PaddlePaddle文档使用 `sphinx`_ 自动生成,用户可以参考sphinx教程 如何更新www.paddlepaddle.org ============================ -更新的文档以PR的形式提交到github中,提交方式参见 `如何贡献文档 `_ 。 -目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 `中文文档 `_ 和 -`英文文档 `_ 。 +更新的文档以PR的形式提交到github中,提交方式参见 `如何贡献文档 `_ 。 +目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 `中文文档 `_ 和 +`英文文档 `_ 。 .. _cmake: https://cmake.org/ From 41d8bcdc060af09af68573d183097548a1094c26 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Wed, 14 Mar 2018 15:36:50 +0800 Subject: [PATCH 18/75] Fix models #725 --- python/paddle/fluid/optimizer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/paddle/fluid/optimizer.py b/python/paddle/fluid/optimizer.py index 421963a2f9..8b8621469d 100644 --- a/python/paddle/fluid/optimizer.py +++ b/python/paddle/fluid/optimizer.py @@ -223,6 +223,8 @@ class Optimizer(object): params_grads = append_backward(loss, parameter_list, no_grad_set, [error_clip_callback]) + params_grads = sorted(params_grads, key=lambda x: x[0].name) + params_grads = append_gradient_clip_ops(params_grads) # Add regularization if any From 6c614814da2c1a82ec07c97b874c4cb37f761109 Mon Sep 17 00:00:00 2001 From: Liu Yiqun Date: Wed, 14 Mar 2018 09:02:26 +0000 Subject: [PATCH 19/75] Limit the symbol table of fluid shared library. --- paddle/fluid/inference/CMakeLists.txt | 2 ++ paddle/fluid/inference/paddle_fluid.map | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 paddle/fluid/inference/paddle_fluid.map diff --git a/paddle/fluid/inference/CMakeLists.txt b/paddle/fluid/inference/CMakeLists.txt index 17ccca8cdc..f4609a3b5b 100644 --- a/paddle/fluid/inference/CMakeLists.txt +++ b/paddle/fluid/inference/CMakeLists.txt @@ -13,6 +13,8 @@ cc_library(paddle_fluid_shared SHARED SRCS io.cc DEPS ARCHIVE_START ${GLOB_OP_LIB} ${FLUID_CORE_MODULES} ARCHIVE_END) set_target_properties(paddle_fluid_shared PROPERTIES OUTPUT_NAME paddle_fluid) +set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/paddle_fluid.map") +set_target_properties(paddle_fluid_shared PROPERTIES LINK_FLAGS "${LINK_FLAGS}") if(WITH_TESTING) add_subdirectory(tests/book) diff --git a/paddle/fluid/inference/paddle_fluid.map b/paddle/fluid/inference/paddle_fluid.map new file mode 100644 index 0000000000..5203784dc1 --- /dev/null +++ b/paddle/fluid/inference/paddle_fluid.map @@ -0,0 +1,6 @@ +{ + global: + *paddle*; + local: + *; +}; From 76e1c6af9f3cfe11fa529784c9cf4e6d2a55d801 Mon Sep 17 00:00:00 2001 From: Luo Tao Date: Wed, 14 Mar 2018 17:05:44 +0800 Subject: [PATCH 20/75] enable WITH_FLUID option --- CMakeLists.txt | 2 +- paddle/CMakeLists.txt | 44 +++++++++++++++-------------- python/CMakeLists.txt | 61 ++++++++++++++++++++++------------------ python/setup.py.in | 65 ++++++++++++++++++++++++------------------- 4 files changed, 95 insertions(+), 77 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c86889c05c..0ec65bac84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,7 +53,7 @@ option(COVERALLS_UPLOAD "Package code coverage data to coveralls" OFF) option(ON_TRAVIS "Exclude special unit test on Travis CI" OFF) option(WITH_C_API "Compile PaddlePaddle with C-API(Prediction)" OFF) # TODO: Only compile PaddlePaddle fluid version by WITH_FLUID option. -option(WITH_FLUID "Compile PaddlePaddle fluid only(TODO)" ON) +option(WITH_FLUID "Compile PaddlePaddle fluid only(TODO)" OFF) option(WITH_GOLANG "Compile PaddlePaddle with GOLANG" OFF) option(GLIDE_INSTALL "Download and install go dependencies " ON) option(USE_NNPACK "Compile PaddlePaddle with NNPACK library" OFF) diff --git a/paddle/CMakeLists.txt b/paddle/CMakeLists.txt index a7b249d43b..d2a4b13354 100644 --- a/paddle/CMakeLists.txt +++ b/paddle/CMakeLists.txt @@ -1,27 +1,29 @@ -add_subdirectory(cuda) -add_subdirectory(function) -add_subdirectory(utils) -add_subdirectory(math) -add_subdirectory(gserver) -add_subdirectory(parameter) -add_subdirectory(testing) - -if(MOBILE_INFERENCE) - add_subdirectory(capi) -else() - add_subdirectory(pserver) - add_subdirectory(trainer) - add_subdirectory(scripts) +if(NOT WITH_FLUID) + add_subdirectory(cuda) + add_subdirectory(function) + add_subdirectory(utils) + add_subdirectory(math) + add_subdirectory(gserver) + add_subdirectory(parameter) - if(WITH_C_API) + if(MOBILE_INFERENCE) add_subdirectory(capi) - endif() + else() + add_subdirectory(pserver) + add_subdirectory(trainer) + add_subdirectory(scripts) - if(NOT ANDROID AND NOT IOS) - add_subdirectory(fluid) - endif() + if(WITH_C_API) + add_subdirectory(capi) + endif() - if(WITH_SWIG_PY) - add_subdirectory(api) + if(WITH_SWIG_PY) + add_subdirectory(api) + endif() endif() endif() + +add_subdirectory(testing) +if(NOT MOBILE_INFERENCE AND NOT ANDROID AND NOT IOS) + add_subdirectory(fluid) +endif() diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 6e24cbdd3f..90c2dfbba7 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,27 +1,29 @@ - -file(GLOB TRAINER_PY_FILES . ./paddle/trainer/*.py) -file(GLOB HELPERS_PY_FILES . ./paddle/trainer_config_helpers/*.py) file(GLOB UTILS_PY_FILES . ./paddle/utils/*.py) -file(GLOB_RECURSE V2_PY_FILES ./paddle/v2/ *.py) file(GLOB_RECURSE FLUID_PY_FILES ./paddle/fluid/ *.py) - set(PY_FILES paddle/__init__.py - ${TRAINER_PY_FILES} - ${HELPERS_PY_FILES} ${UTILS_PY_FILES} - ${V2_PY_FILES} ${FLUID_PY_FILES}) -add_custom_target(copy_paddle_master) +if(NOT WITH_FLUID) + file(GLOB TRAINER_PY_FILES . ./paddle/trainer/*.py) + file(GLOB HELPERS_PY_FILES . ./paddle/trainer_config_helpers/*.py) + file(GLOB_RECURSE V2_PY_FILES ./paddle/v2/ *.py) + set(PY_FILES ${PY_FILES} + ${TRAINER_PY_FILES} + ${HELPERS_PY_FILES} + ${V2_PY_FILES}) -SET(COPY_PADDLE_MASTER "") -if(WITH_GOLANG) - SET(COPY_PADDLE_MASTER "copy_paddle_master") - add_custom_command(TARGET ${COPY_PADDLE_MASTER} - COMMAND cp ${paddle_master_LIB_PATH} ${PADDLE_SOURCE_DIR}/python/paddle/v2/master/ - ) - add_dependencies(copy_paddle_master paddle_master) -endif(WITH_GOLANG) + add_custom_target(copy_paddle_master) + + SET(COPY_PADDLE_MASTER "") + if(WITH_GOLANG) + SET(COPY_PADDLE_MASTER "copy_paddle_master") + add_custom_command(TARGET ${COPY_PADDLE_MASTER} + COMMAND cp ${paddle_master_LIB_PATH} ${PADDLE_SOURCE_DIR}/python/paddle/v2/master/ + ) + add_dependencies(copy_paddle_master paddle_master) + endif(WITH_GOLANG) +endif() set(MKL_SHARED_LIBS "") set(MKL_DEPENDS "") @@ -59,23 +61,28 @@ add_custom_command(OUTPUT ${PADDLE_PYTHON_BUILD_DIR}/.timestamp COMMAND ${CMAKE_COMMAND} -E copy_directory ${PADDLE_PYTHON_BUILD_DIR}/lib* ${PADDLE_PYTHON_BUILD_DIR}/lib-python DEPENDS gen_proto_py copy_paddle_pybind framework_py_proto profiler_py_proto ${PY_FILES} ${external_project_dependencies} ${COPY_PADDLE_MASTER}) -set(paddle_python_deps ${PADDLE_PYTHON_BUILD_DIR}/.timestamp paddle_pserver_main paddle_trainer paddle_merge_model ${MKL_DEPENDS}) -if(WITH_SWIG_PY) - list(APPEND paddle_python_deps python_api_wheel) +set(paddle_python_deps ${PADDLE_PYTHON_BUILD_DIR}/.timestamp ${MKL_DEPENDS}) +if(NOT WITH_FLUID) + set(paddle_python_deps ${paddle_python_deps} paddle_pserver_main paddle_trainer paddle_merge_model) + if(WITH_SWIG_PY) + list(APPEND paddle_python_deps python_api_wheel) + endif() endif() add_custom_target(paddle_python ALL DEPENDS ${paddle_python_deps}) set(PADDLE_PYTHON_PACKAGE_DIR ${CMAKE_CURRENT_BINARY_DIR}/dist/) if (WITH_TESTING) - add_subdirectory(paddle/trainer_config_helpers/tests) - if (WITH_SWIG_PY) - # enable v2 API unittest only when paddle swig api is compiled - add_subdirectory(paddle/v2/tests) - add_subdirectory(paddle/v2/reader/tests) - add_subdirectory(paddle/v2/plot/tests) - add_subdirectory(paddle/fluid/tests) + if(NOT WITH_FLUID) + add_subdirectory(paddle/trainer_config_helpers/tests) + if (WITH_SWIG_PY) + # enable v2 API unittest only when paddle swig api is compiled + add_subdirectory(paddle/v2/tests) + add_subdirectory(paddle/v2/reader/tests) + add_subdirectory(paddle/v2/plot/tests) + endif() endif() + add_subdirectory(paddle/fluid/tests) endif() install(DIRECTORY ${PADDLE_PYTHON_PACKAGE_DIR} DESTINATION opt/paddle/share/wheels diff --git a/python/setup.py.in b/python/setup.py.in index f830039a3a..4cb5409524 100644 --- a/python/setup.py.in +++ b/python/setup.py.in @@ -62,20 +62,22 @@ write_version_py(filename='@PADDLE_SOURCE_DIR@/python/paddle/version.py') packages=['paddle', - 'paddle.proto', - 'paddle.trainer', - 'paddle.trainer_config_helpers', 'paddle.utils', - 'paddle.v2', - 'paddle.v2.dataset', - 'paddle.v2.reader', - 'paddle.v2.master', - 'paddle.v2.plot', 'paddle.fluid', 'paddle.fluid.proto', 'paddle.fluid.proto.profiler', - 'paddle.fluid.layers', - 'py_paddle'] + 'paddle.fluid.layers'] + +if '${WITH_FLUID}'== 'OFF': + packages+=['paddle.proto', + 'paddle.trainer', + 'paddle.trainer_config_helpers', + 'paddle.v2', + 'paddle.v2.dataset', + 'paddle.v2.reader', + 'paddle.v2.master', + 'paddle.v2.plot', + 'py_paddle'] with open('@PADDLE_SOURCE_DIR@/python/requirements.txt') as f: setup_requires = f.read().splitlines() @@ -84,11 +86,29 @@ if '${CMAKE_SYSTEM_PROCESSOR}' not in ['arm', 'armv7-a', 'aarch64']: setup_requires+=['opencv-python'] # the prefix is sys.prefix which should always be usr -paddle_bin_dir = 'opt/paddle/bin' -paddle_bins = ['${PADDLE_BINARY_DIR}/paddle/trainer/paddle_trainer', - '${PADDLE_BINARY_DIR}/paddle/trainer/paddle_merge_model', - '${PADDLE_BINARY_DIR}/paddle/pserver/paddle_pserver_main', - '${PADDLE_BINARY_DIR}/paddle/scripts/paddle'] +paddle_bins = '' +if '${WITH_FLUID}'== 'OFF': + paddle_bin_dir = 'opt/paddle/bin' + paddle_bins = ['${PADDLE_BINARY_DIR}/paddle/trainer/paddle_trainer', + '${PADDLE_BINARY_DIR}/paddle/trainer/paddle_merge_model', + '${PADDLE_BINARY_DIR}/paddle/pserver/paddle_pserver_main', + '${PADDLE_BINARY_DIR}/paddle/scripts/paddle'] + +package_data={'paddle.fluid': ['core.so']} +if '${WITH_FLUID}'== 'OFF': + package_data['paddle.v2.master']=['libpaddle_master.so'] + package_data['py_paddle']=['*.py','_swig_paddle.so'] + +package_dir={ + '': '${CMAKE_CURRENT_SOURCE_DIR}', + # The paddle.fluid.proto will be generated while compiling. + # So that package points to other directory. + 'paddle.fluid.proto.profiler': '${PADDLE_BINARY_DIR}/paddle/fluid/platform', + 'paddle.fluid.proto': '${PADDLE_BINARY_DIR}/paddle/fluid/framework', +} +if '${WITH_FLUID}'== 'OFF': + package_dir['py_paddle']='${PADDLE_SOURCE_DIR}/paddle/py_paddle' + paddle_rt_lib_dir = 'lib' paddle_rt_libs = ['${WARPCTC_LIBRARIES}'] @@ -101,19 +121,8 @@ setup(name='${PACKAGE_NAME}', install_requires=setup_requires, packages=packages, ext_modules=[Extension('_foo', ['stub.cc'])], - package_data={ - 'paddle.v2.master': ['libpaddle_master.so'], - 'paddle.fluid': ['core.so'], - 'py_paddle':['*.py','_swig_paddle.so'] - }, - package_dir={ - '': '${CMAKE_CURRENT_SOURCE_DIR}', - # The paddle.fluid.proto will be generated while compiling. - # So that package points to other directory. - 'paddle.fluid.proto.profiler': '${PADDLE_BINARY_DIR}/paddle/fluid/platform', - 'paddle.fluid.proto': '${PADDLE_BINARY_DIR}/paddle/fluid/framework', - 'py_paddle': '${PADDLE_SOURCE_DIR}/paddle/py_paddle' - }, + package_data=package_data, + package_dir=package_dir, scripts=paddle_bins, data_files=[(paddle_rt_lib_dir, paddle_rt_libs)] ) From ef28e7deba4e9516815229e9c47e1f09b16a1f1e Mon Sep 17 00:00:00 2001 From: chengduoZH Date: Wed, 14 Mar 2018 14:21:01 +0800 Subject: [PATCH 21/75] refine parallel_do_grad --- paddle/fluid/operators/assign_op.cc | 1 + paddle/fluid/operators/nccl_op.cu.cc | 2 ++ python/paddle/fluid/backward.py | 9 ++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/operators/assign_op.cc b/paddle/fluid/operators/assign_op.cc index 39ae3c0040..d372213e1b 100644 --- a/paddle/fluid/operators/assign_op.cc +++ b/paddle/fluid/operators/assign_op.cc @@ -56,6 +56,7 @@ class AssignFunctor { private: void copy_tensor(const framework::LoDTensor &lod_tensor, framework::LoDTensor *out) const { + if (lod_tensor.numel() == 0) return; auto &out_tensor = *out; TensorCopy(lod_tensor, lod_tensor.place(), dev_ctx_, &out_tensor); out_tensor.set_lod(lod_tensor.lod()); diff --git a/paddle/fluid/operators/nccl_op.cu.cc b/paddle/fluid/operators/nccl_op.cu.cc index 4d83a70e73..ad623e1fe0 100644 --- a/paddle/fluid/operators/nccl_op.cu.cc +++ b/paddle/fluid/operators/nccl_op.cu.cc @@ -106,6 +106,8 @@ class NCCLReduceKernel : public framework::OpKernel { T* recvbuffer = nullptr; if (root == gpu_id) { recvbuffer = out->mutable_data(ctx.GetPlace()); + } else { + out->Resize(framework::make_ddim({0})); } VLOG(3) << "gpu : " << gpu_id << " invoke reduce. send " << x->numel() << " recv " << out->numel(); diff --git a/python/paddle/fluid/backward.py b/python/paddle/fluid/backward.py index b6f20daee3..7af6ed1463 100644 --- a/python/paddle/fluid/backward.py +++ b/python/paddle/fluid/backward.py @@ -248,12 +248,15 @@ def _callback_lookup_(op): if o_argu in self.param_grad_names: allreduce_out_name = o_argu + "__nccl_all_reduce__" op_desc = _create_op_desc_( - "ncclAllReduce", { + "ncclReduce", + { "X": [o_argu], "Communicator": ['nccl_com__do_not_change_'] - }, {"Out": [allreduce_out_name]}, - {"reduction": "ncclSum"}) + }, + {"Out": [allreduce_out_name]}, + {"reduction": "ncclSum", + "root": 0}, ) block.desc.append_op().copy_from(op_desc) op_desc = _create_op_desc_( From 8c67fff47b44f8e76a13530b571dd7dc58acb072 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Wed, 14 Mar 2018 19:43:15 +0800 Subject: [PATCH 22/75] update --- doc/design/distributed_lookup_table_design.md | 57 ++++++++++++++++++ doc/design/lookup_table.png | Bin 0 -> 24246 bytes doc/design/lookup_table_training.png | Bin 0 -> 90423 bytes 3 files changed, 57 insertions(+) create mode 100644 doc/design/distributed_lookup_table_design.md create mode 100644 doc/design/lookup_table.png create mode 100644 doc/design/lookup_table_training.png diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md new file mode 100644 index 0000000000..bf959bd097 --- /dev/null +++ b/doc/design/distributed_lookup_table_design.md @@ -0,0 +1,57 @@ +## Distributed lookup table design + +## Background + +Embeddings is a popular technique used in neural network to support applications such as search engines, advertising systems, and recommendation systems. + +Embeddings are stored in a lookup table (or hash table), that given a word id, returns the embedding (which is an array of numbers). + +It works as below: + +![lookup table](./lookup_table.png) + +## Problem +The column number of the lookup_table is proportional to the range of id. In internet scale, the range of id may be very large, say 100000000000, if the size of an embedding value is 40 Byte, then the whole memory the `lookup_table` will use can be 3725.29GB: + +```shell +3725.29GB = 100000000000 * 40 / 1024.0 / 1024.0 / 1024.0 +``` +This cannot be stored in the memory of a single machine, so we need to add a distributed lookup table that stores it in a cluster and provide the interface to get value and set value. + + +## Training Process +The training process with lookup table on a single machine is as follows: +![lookup table training](./lookup_table_training.png) + +1. In forward pass. `lookup_table_op` convert ids into a dense tensor `ids_embedding`. `ids_embedding` will be used by the following operators. +``` +lookup_table_op(lookup_table, ids) -> ids_embedding +``` +1. In backward pass. `lookup_table_grad_op` convert dense tensor `ids_embedding_grad` into a tensor with id information. +``` +lookup_table_grad_op(lookup_table, ids_embedding_grad) -> lookup_table_grad +``` +1. In optimization pass. optimize op apply gradient to `lookup_table`. +``` +optimize_op(lookup_table, lookup_table_grad) -> lookup_table +``` + +All the operators above access the `lookup_table` directly in memory. If we change `lookup_table` into a distributed service, all the op that will use lookup_table need to access it using some RPC calls. + +## TODO + +1. Implement `distributed lookup table`, with service part and client part. The client should provide four interfaces: + - `Pull(ids) -> embedding_values` pull embedding_values according to ids. + - `Push(grad, update_method)` push `grad` to the distributed lookup table and update it to the parameter using `update_method `, this interface use is asynchronous. + - `Save()` save the model to a persistent file system, such as HDFS. + - `Load()` load the model from a persistent file system, such as HDFS. + + The details will be proposed in another PR. + +1. Design and implement `lookup_table_op` and `lookup_table_grad_op ` with distributed lookup table client. +1. Implement the Python wrapper for above ops, users can choose and config to use these ops. +1. The distributed Fluid should support this `distributed lookup table service` on kubernetes. +1. Implement a `distributed transpiler` that can change the program into a distributed one which will use the `distributed lookup table service`. + +## Things need to be discussed +In the above design, the parameter update is done within `distributed lookup table service`, the interface is `Push(grad, update_method)`, this is different than the current design of PaddlePaddle Fluid, Currently, parameter update is done by Operators. So how should we impelement these update_method? diff --git a/doc/design/lookup_table.png b/doc/design/lookup_table.png new file mode 100644 index 0000000000000000000000000000000000000000..72dfe3547f731d0d090338afb206b0549dff472e GIT binary patch literal 24246 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 literal 0 HcmV?d00001 diff --git a/doc/design/lookup_table_training.png b/doc/design/lookup_table_training.png new file mode 100644 index 0000000000000000000000000000000000000000..cc7cc4aeb3b885850fe2f70f19fb84d5873bed1e GIT binary patch literal 90423 zcmd3ObySpF8?PctD4+s@NGhF53PUN~HFQZgNH>Ux2uRO>bhm(XgS0dZ4Bg$`dEfCI z>wM?jKkvG(dF|Tsz(7S!V?sq7-YQ$8C*<7< z=Bz$;nS2-&7~x8+NyU|(6BF!~5n}A4kC*iiH@iQzbw6jRx=4}{l68Bw8iUhRSN4XK z`T%Q;x0nfvPBA(_O3hn*>@B+-kiHfLVu>=TESNOdblZ#Dig(?tFxtAgT#>C35sGvD zL3ADi9`mfNZ}0~mx{!CiiFmh?l;w!%G_xd;*kx`zmZ(n&G`MPyz$Y#fa?6B?a7nF6 zbc+@?v51(^dwjP-#wVlm)9-BwYJ46;$*xUE%`NdK^H_Sv zzDGaH@S%resa>IdI43*2Ikw)Rsfd$gFv4nwV(uRnJ7 z=axDQCoII)-#Q%@Hy6_4<`}%F{>UPq9wRitSzML)>WYO{QbS?rGd*VM`zIYVXE!x# z&Ret#G*;+2 zu-zBc?AJ`RXT3A8j3w+5(H6Cozpu%yYQ=~t{5kUGsp*N*L+L=l&->o{zQy!4RPNLl zEj3;4?e1Of-R||8NTHyPxVhRH#@8ga+AW8sdjx7zt`D5?%Zyec%sz{gJu$~6eqhtU zJ|m~Yyi0WlRqv(TuvbLx+S!8yrg$DAOg)mtj5Cc|My2b1X9Y<6QkRN~;FZ@98X_et zspqvXus@Ou=zoN;gOAFU_mUn%WftU3?ka#3u(JvVUSRnar8^{AAf25P!Luw2P zlkP~W{alu77+tuI60mSxf_!$`i0IYj51IJyzexreEBKCDs6D#5HMt+WAH!UQg{{sg z5_@*%Yc1c-`WfSFQ1P`0!Z%*6Pb~3!+EFHNKHqycS~ylu6e{X=dwSq#{jlzo*~#N# zU}e0?_VW_Mn-UICT;0@`-5@XjRn9e|K+o%m32urvG;VJJz5?yFsH*L?Yk2n&|F0V* zzyMdme@#sA1=#8OdK}6pFnpq=M_%x*36k!M7kBU79vn`7HKd|@o-B;*8aQF>Pf7c% zPepgAiP7H=tst55P%HVZsGtzyAHSeK?8tR$X7Yf!bG^Gz!O`Pt$$2T(_4H(-s)*%^ z^Jx6;Q&j$INO#{{Lngg;{r}P9f<$7vn{UgvpF8q5W2;EBluN8C2(z5X>v8g*R)1`1 zlKuJp{}A`izB#e<&VgPx#vf#VF-KNoP-ioJ@#{qM{G|3AvaLZxjqXPikpepn4>%77 z6dFH0(;G)~q``f_mMie<$EE8RAq(%?hzwuxE1#@2~%*ORZkNTf;{t%5UJwRB1P_)PI zTmP|%Kh+z7l35ut?EjRcztA;b(*n_ctpB1^b_e-&rqVf${(q_ie*tPSt&+&^C+U5T z#A4Wqs@L)nEkz_4bFL-uc1~WUsftmYeS=|)#RHe4&580BYK;FnJAYy)+MV8G(<=Kl zr7?W<^4B^WH}N!N$Fdc3)P`h~J0cj&f_YDuM|=3Ls-JZYViK@YTbk7|FSTs{Co5>l zdyRcp@wDAS?c7>0dm#!+=c_?PTf+r<8?IY5kwpr)zNWZZUXl<0w9?p+wx=e@Zn<}qn8#%RI^r}JXtvZD6&{XQ@TMl`9o+v|P*F5d z4igT%T~jI)@PNk1B$83n^y;YY%D@idalX@9(v8;x$*Wk5{VSHY2d7Nf}K7i2ZuQfD>aU&{T>=glDq zV=ceV1OMqOeigkyHiFO04(r2}%z3`QnJ%FG&18U9KaX9x`STzHfbU4BHpqz(DaHo< zwm8DvP@jVe>P8#a4!x%?SC24HLs7zx2Q`> z)yphLAD65+v=TWElv<3H4qB*HZIr5Sa7?*{+ctXN!th_)jI=H$fBDM;{V@2yrB6-f zRs9^yceY+MijZpo3o9=1>#x^K_7=N3Mxs{VJ_k!UQS`F?7a_f*UX&oPRmDQYsB|0` zoKs<}%u3s}5rc!ZJ(K{iC24f}B>5+Merm>R6Y(m=BkcFWWa;x9=X{IUG(o z^v2@-aFG&-X`LCdEuLuhhpc})N8$^lj(J)4y)F(jWmN+xm&odBPQDgMx9Nj0NVcDD zTGnFQP42hf|M>`^w@ZF{l;o+)>53~Br~UUkz&LDo|u5VH@W^k&Tn3m8r^FxuZpqyU{F1) zRvNTX{Q7Xj2ro^W%j>^cg^6sVl~nnv{_QAKNsXq2s|1jCiMGdyL8(uAM{GAb+@_oy z|Hdyd@uy)ME3RO_I{$fwM9#b0?O;wh1%*C=%mzheP3T_n>HZ3K@sMfv0uAaDsK#=h;0IP%ZPJmH-XdAfjf5Y>q!3G;2IKC_ze%3ZsX%Ktsg>* zrtnhMa!yn24iNj(?tXi#0=ry8NJLnT;mA}~0#l;6Ok+@fAv|;s9UdF;iM`-1u+LJ% zEArpofJz|tIU0Xv^VdH76nB?%URV-f6iX4`sXgQeiA3w)|T*HLFolUd;n*=y^dFCqG zwLi7YSP8j&p-weUn({wGGfvnwI`D0=$kHGFcv~Q~QV?I5CRPC}Yync1RP2n?t#ll{ z|Ake`^y7ijjAp8qyt0WutJv-XWXqyVcE`=}r-0HYA4X*rG1Z+jD=?e<#;QLa`J?VS z@y}%j7Ax`SaS1t3nz1p)+}Tj!5!uD6e}Zigq0Buo2!4B}K}|6x+Ojb`Ax-<keT;BM_UR>>fP=`sn#i#-WjFFrBd z`Y(NiJoI|6l&O`!(~`rEM}4Vok~r@^xgmRi-jkD7-kB`O?GQpsW6-!y5b3J4BbAnV z!@-OQ#KX8(IqOq;eKir`GD{X-Azb59t#%TX^w}RA`pp3O=gQ||M1SbgA_591PKUIgH z1~oQCT3v)_Dt$ZN<<^YF_04Q5Poafef`u_Tg0dK`=Cfj#=C#|f0C_$%@85_49z$4w z;L4ejO!~vfohiSVCD*Lo-!bo#C^VpUPiLiQKO)|7_?q{CC%s?46$&tyo!|C;2d)wsT=d_K9LQ)~9wuPig)2ykl3GJM3AQRgKJMMz+A6 zp8@i_769AEaMdbb^OcGH~VYZrGIABe6-51FEniDI%ukMc%ED zOD1X3cmLq=ZD64a+2lJvczi;+T|f|v$5t89pmE4?uoS_T%vEtKA#0j1Ej-l&rX^o( z1K)_FQ-pNI^MD9#JD<&j2wHU5gERIPhJ$!a^6?~9`xzNX` z7k@4f)BvNg-ITU}2NCdt>syWlV^P+r@!NO@^Y-9LXsC2x+Y-$cyI>e<~KjBBBx6w&3o-G_)-&yi5EV`fANIWapEoHrkE6x6eG7tfjlZ zHM-I5RCYENn;;?GrM~91Hn7-~Il+KCNm~*W6#hbjX!wMSI_lE{PoY-ZWY(>KN+C6m z-QEqm;QN4cgLcvn9nZIgH-?H3tL8Q8Y5Z=6nFL6=*@o#*&c0fL!}Px1G4MB>QHqvx zC7+KKIE~}#afctch_jzgiaZr>H|u?o+dR~F+u69{etrkHWDF(gH7}&QUvBKvuduhd zW)f2#M820`64T;2bzc#ImBJpIlolsLEImkSgt)Y9F6Y9CijO1`M74Y>D~pTlDsjem ztW(DuQ-XQ9hO;U+E7#taO?gy}`*s}vZb`l72=y<`i134QdTE=ujS1?VM>f3V0(TJJ zYy=E9JNE0-t|@7Gkm8txR+gzj;caMn4$hS*M61O$GmmD2tRgr3G0it)W$J_3kDLY( z%RCAqAMx)gX*n;vZpKx9r|HOc>zA$|Y>fIQkZv;Fv_Ji!vZP{Pa|GQ3YDw_fD58?e zNr>5mxxlBn-~?x(wJR|Z(R?GCWyQQ;alTOL4*B%YVXeU=B+?*@9a*dLnfG5{;&f2> zG5$|QN3cIT5C}y%8y{J;|Bh+aXzNft$4N>`#xaQo1C8<)Wfobe8;}y0QqPDW<>@B+^N~In{O2X$5gUB7HI%~nji=Bu_?#;;5Q*&Gc zm+I0T7+%)!Y-AAnU~mwh!ZK8hJzs^H?x^VPe)hiqz89EUT^YmCk6&u=d_&*%W4|N|9nZ9l?DC|%4KC0a+qX|u}qTG$SxZi@0 z2G7h?-66W!eM(El*Ohi_OmKwE#9%6TS0kMaqeT~iV z_0ATAVzU|{-C(U4wVbGgv$q&_MJrYvj+$jmas=~T9#doo5pou8UhFsAX3}_^pXB|* z`&P5P?S)2fY!8O*?_ugI^F8AN$&ySkBeI$)sX!`K8e7_MwT-o*TjG}@R*lLRrgR2{ zZl%zy3;pQ2rimxbbh0vFw+~?BJs5HR{61~Za5~+rVt7Gr(l-{^J?oc#jb5u)&rI;L zD4#vpy7Byp_4tdOB$y1gNmO$4t7+?a8Xl?x={vgFvks}F8jHR#&(y=e*^h=)ciha> z0F>i+h$NS>_IOqhQ|?E6_+iSK!TbVr*L!3aoYMRnJwY(~Y70S&TWE36eLakBs z+7=esEpwNaJ-vNo;_7#yI}EER`qXo&FF(tc%nj%j6`eS>l_ig@_m0WAsQ9;TzQ&?S zFkH%14p7reE6;bozhXv1tZpV$E%icUbIX5=?jS^Wj6bv$$W)4~g&*5_T6^%~v)XAA zM=x*DH3x@OO0XA|+8#5|5Qh`xTaY6>0KYBy^i^}9S`rtKt-xJD%PLV~Anw827p#2Os4y3bAKXmm zQWT|pdK%#wdGG+OLrhG93%pmKSi4r3!gaVhQcjY8+@(*vhb_-t=go}!7z05)3u!O) z_g0DASdHt^fa}~tqu2rn3mgq-gVih6w9DS69NEl|ARUK1lTrTFtwQNblj6FYCt6aMBnTwEd zmig=CIZuk&6*;S&r?le5DK;hhNG7d5`rDv`5}Sd99_LPG3)CzWQ=+7%5xJJWm7CAs z18zw+5IG1a{GU4S&Od$i_07PItnAS1wuoReaSM+L*T32e);5Cx@2E4F;2SeH<#rSNUQ7lF@U2&kYpq}%Sy|rDU)}K@&2=;2g7UhDYPd(z94|rp>qQzp` zc^1-=gS}=pRi@)fdJtaCVPv(!Lz7^URgtzXBQD0}R-?NUmnM!&Rqtx=5iXz{Ow|s7 zwJmL+eU@CT5giJzcCT-fH=@C#Bfn9X&{VxnPXuXvvpyYYAtB@@rTaaAgneD^OHtU< z0-9{Y4(eBj!(Zau4@c??H-H$bbG$u+p`48TifL^s#H-CqaUz_)YMw?R*w;Jm(sH9Qu$r(kN_=`YeINah4K8D2No!tA z_$OpCK+&Mchm)>bUskho*qb!$!jAJrrmkdsLn zsrWyjBvyCo1L!w}VP=o;WcH4A~;8d;E zL28pVW1mtW$S+kpC$ACGQ^s4G{qZx`$fyK}t$i z+hNyvVLm#H$Z{|BJ$>!O)WW16x{U0n{L*B~wYM2KXIVHPsbIx%I$C8&Y1lc=F`tA~ z$s{Lxh*^b}-{GW8QvgwoDp5=KKoQQB0`V|3k>yQ@11l-8o}e?&j2mvrzL*&P|2eNg9WPg1}F&q@%jvm-C$qt>9}6}@dF z(&})^VHf9OSuyNDJFr~?amf=&F8E~oIE%V3Z#7M3AY3_FYn(sdj5UPB2rs(6Jo5?Y zw5mC75PLI`n<=+&cC9FWR{tNB2_o6K<^{WN{7p`Aw6D+A9obS$e{{sKRnL9Vmme;8 z(^63-hB~&V^nRD&$H_!+zDCJO>1mRD`r1>6V;8LgJ-NQLPC88#252;AeGZRITdZQ_ z>N6raN1TQ)g4Lho_?&17sE?9VWDhoF-2NV#>VoT#$8r(-d!wJyUh0Vgu*vs3z-dK)79^YW*f zCJFjJjZnvAH||Y5t{J)#`R9zRD~Mkph)!mhPKGaXmPvG^;UTT<7jVKtO0EV`HUn!2 zUYb+&m14EQ=yWv?e{2GSo2Y?<7$m1B$pzXz5lS7CE44Q+O`E!r(!z4UN8XpUR6;6I zQNGE&kid9Bnmca96~wS2+lAt-k=Nl4KVhXIHY$Bx+HU?33vw3`aahQKuK2@va60m@ zHjL~9^7=pnZOm6ag3I@?4Or{L^j#mAuxO0v&Sk_y|Fkef=FK~6m(R=dGWrpPlj6oh zId05#LLTW|_M2k16VG5K8VJtQh4#)`ZS}@E&5*c||CRh^aVe#ePchts>fC(k&CX(c=C~ z_nXY~xB>O#2NpX28k&-UDk*olzjZo5^edfaZu+o6Hg^RLhAbW+qu-K}zaJBefk+k+ z!B?Y<>9u8+S!X%>+Dh3Sh#2og?f;qhB3_pj2VAv;SVAqG-Hkv4HyNCJahlsYYI;Dtk`AAJnTD`*K%xC{5roV~)_VN{OT5zOkN^k4` z6p_F2LZ9@hpov3z%kHy3yKIn8`~mlmWR8AQoG3Iq2?=RF>5fH&&HvIT>RUjX(VQqr z^81IsegB5Ph!k)SskMBu)=~00$!h?)ZvELZ*=VLR1QhdnDjXzHK+m^-;0Ha|K=>JCkUn=3H z3s9)@ys+t_FzNaZMqAr&0LtZr9XGx=hfnX{tw*PGD zB1D@gi8|k3KcZ%P>Sgz)*t@v!ujVFyKk9J7>8E{;l{zUi|IvRD1uK-FmoPhy^+R}S zcv{}ho6!<8yjyqh@17p4;Z@qNJs2&sB2g=87jd-4dWU#D8qW(DHNOX{hW9xy0Jl>Svg$Sd_pUUZ4=+ ze9vN=AE>_@%&jrT{oV@jG9Y^j4C|wf;+-kS?T0jHHmkPs;&@z3%j7DgxFia_53K){ z4G@{TD8cmvjTy1kuxt4c3Qp?5U zcs77(Hr-08$r07<5!GFwA=>5twIsT0$M4~V&<^(fR>40KAFum&RUT|DNfRs?n{)&b zfd+vL))NDPDmdG!F|o{~jvqVA3jzG!MD`q)i7yB^?zGY2aUBQsj}?-Y=$J0_7swe^EM|_xy~Qik_TT83PXaHHYXN;pZ4fVL&MR;iRb{qfE2>mW0Ss&y=PVktY4~hAGMEioaso^`g15D`!nD)Cy ztfRpp8W4F9!aV*d(hw4)5yI@TtdqkUmjiU5O=;lalKl7H=w1ou^HkP+W3+|3|4w*6 zn!au3=5)H_s7Xfp5&!MK$N?i=KKpDnRl8XP)z6^)H`R_u1>UnYw zDk?go+2}skp03s}v|1;na7GbVciU^H=mh9ks5vp;=(*;R80 z^tdChGEYVi$E>v1oFC)A#(0f^GeULs9y(ALrG1Ibmm7p?cjWZN36!OIv}&e0|XWY;e~akzk1C8 zUd=esZl=f)=*^S%$dm&B1n(m~`m{K}!Rd5qMdmn&Ar679vX)W6W z3NlbT`b`bY%BKeH5FETcnzWPC1N-&0<{_ypi%3leG_8{j#pOp9#d2c4wo~p$K7j2q zA8;ss_9CCGbEZ}-Nc@2bOLRfi$jfRuE54H5k%@VJpp#u^InXkQzQk6*lkF)oZ775y z>^nvmd!nf%)V%8+I54DDo4@6c)b)z&n%6k0zD;InU{0yo5MvPg+Uu`xuIp@1*HgsJ zeYp2T{=#u}AZuPv?CtU7Q7v9)2E>q(eQHo^b#EVF@lX==feLrXG5eLr#VItl3xEd2 z>&_ho+PuQHQq(ar&1&5nRJVd_ay0t`B(F{O2f#Tle(9c>?eha=E1D%d?^T{3X2 z<1jYZ5UYeAd;d`8*_h*Sqt&-hyZ|9;I?d&+axOjesoJb=?lJpk<3gHOn6Zk28O)p)O zgnn6s7y0!qzfp-(Yvuy4P{s#}99Hntsdx$BcM@E1kMRf=9_#?0<5GB( z^*N^BPyN$dI+MvV`>uY`X?&Y7$qRtFK4Onplua~XaE#w|Ib4r=mLT}^pt3W_4~)+p zMUCclhz0g~Z%H9|_zn7oWVxS$mRo!#)`gZagWF2E@CQHwa?+8=T&QA|w)OZRtWsQo z{OajJ^*nokfye6zlEdPtc@$m-2yf^mLk%#?w`^a=GdRsk(-yMsF<28dJW1ZyHhB*z zUaA4fIGSy zfqaSJ`8`QTAjd1-IxEp9X&M%KxZ`4KQoBaT+CzijwnekM3r%cC*?PTbZ|rM&klV1Mdh##bQ+OyYUIGfmZ{_tRe|KD>{g%^BC%rEZ{ z4!7bdd17c-f=$%3bL%7=Hq*xp#PP{4!0q#&#-&!uBuZ<@K`(v9&Lmb0eWRD=oX4c0 zoy`4>cQ(L08Uze%`j$&>S(@+PUNU=l&+oDG33xDP(GZ4h%&!snjdhB+9%xRjEcNo; z8LrsDrs*$nj)Vn6)5S(QF~N~6{i$)pL>jr<`YTv44>>g{ocn+*DISNcVAUoHRGe*A zMZQjVfo5AB9f`wN`ZF>Jv)oUQJ#9oeRj~NZx1U-~R=*AMYx$YW@%y1xXL*RQ7i^s= zUgc1hzW83>o{+yXii-75 z8vb!v;keq>_r>mw@ULiP6=AJD11*dPjf{=A?1RmBBqVO~MaDyvv|@_~%xa&{?-A^f z?oCX}WA}u-(sBqPA#WZsJgqn>*d-3{WC+jAZ;DJ!Wq}X%EBiH2(RidmasvhBk^%iF zKyC8e7h18Ze|vML30vm#+S=ROjHp0Fa$cUQ^UTc3LfaTC!>Zb>G;`W%#%mlk%a5Zy z0=$KuREau#Ra+CiOx{#%WS=U%751O`l&AIU6hqcP?1Vsa7plY@Uy=mRm^v`F&&N|2h3nmgT=gKTZr z!leuW1zfzKCi7b!tV*uoJ^IFcXU0gM$x@U>Hmhu<(5|UqOkA`FQ|a8gSes!+YHLi_ z`nU6#;wpWS=!)TW2oJyil5y+kofTIYUs_aHSB~u!*~KJEsI$gFRNa;9I3HyFTi_UT zm08+Gs*`jK-KLG$TBf(#>u*PFVOxh`ws}moLCho(o$X5(W^IeM&ffcvNCXXA%_=Wm zq8XZ2i4?LNpwT#MF~WCvVcawoqw2nhoI)JQLx3SV5dT?nUOtfY(iWS-vp1jf*Z`Hr zt*so>M*t@E_}tc0`#11X(UYfAET@|S@^k4NlFfMRdFW{flf;31oOE1kQ!W?Qp#r=Q=P{{CfC{ivT)`f`Riw^I8+M#q?{d+C$V zxQwSO>)m+1fEy+@tsM(UpL%sSpD-|PW(D^$LUcLm187u;i(7ope$SRh9dxBMIh9g~ z{6jt9L4Cueqoz5}qn{NQ+3$5-2n2gX=j39f2%ppt{TgU@g?;Tch=msps<&)revgtb zkhB;G#_SQGnlP8$YI!Sh$QJzh?~p4k(H`^J0_D)r_40%4-qZCb2E6xh@jpL}3E$&g z7|Dw63ZwJCjL8jw)rroRNH(zubs4`%|0oz8Hyxg=mw&hs{;lJ$Luu8HNk~>qF88;) z=f~gYtz$_(-(MS~E3099(-k!2Wbm4ntTCX62p|h`&ud*m@b=ShK%Z`)gzNS6*Gi|- z4;|cx!+Kfk!MwXy6uLdrz@r@@^2^QBXIjWvNsy{w-656x8>?Q;WU8LE`V)7h!dk>d_ z$;0~@6x1|YldN`va%-6y+ia{)%#*H$SoO6iPGXC-!M(O5ObY=5wfUiLWq4AcjOhtN z@#Y+_NC~4^>g z(9$QVpat(Huca#z8f`)#E1j>ZX&QL+k$sUs#_F@i%v16Id8z9Xj6 zQ(|Gd5_&v+CdAzNo`?TN*V?LX$jlN@+Jft4hqBBIc}GU^lY0D$Px0chGIhVFN{st))6ng7Xue!U#>} zacSSF2!z`)K~QL~nQUrEw00~fLGseZ{q`oioUPd8h|9Krar_9g7~p~ZWfF}s6{mKm zaLi0E()Xn_e>iMXS#l%+xD3#Xh-^eC0OZkikRO0?VAwSib3kG%_U{R*WlL@O6!-S( z<2>(S$R#xfWPGwhzLqc>8y;a5sqqYU8=VgBVm4jz9PCO#dF+AH1DKumlM_p(X9sVE z!!cKDIrobr+Kbzg2!(*D&EtF9d@;$xHXSFPtGXTbB_=kCW^04FbF1HbYu|M+vEu&r zrKf}NfKdY7Uf(G?g4O(qg2)fDr-rXD)kq(;>kztTOPf&Qci^ZtihhRl*Dmq>nygq&IgiG%!> zy&+(9rvc^<#kZ(6AFd3zv~!we?<;~^wnC+^=MqfOUfk`P6ckJuEv9{8C)bB7 zUNlskuB6dC&8oZk@^LIi(%%fAtH6zwGNV!weV?C2f)_36(_$}9cE}XJec|8H#olzH z%y+C5VhLrQupE|Oad?LjRyab}{t4UQGNFN?5EooI=0|dkO?*f70AgVtu{6)4VbLnl znyMS6?U6EnU2d=j-PV0tc5!ewW>mV1hc-7lO*NnT5S-%FIR0_{pFBI{V zsT#-RVls-_*#ytVkO$3W=C5R=Lg$bhVo{GT3{GOjoh^FbyF<-rpZ^)?yCGFuZNnu$f4nFlLQZ70DJ zW#S%Br>Me|lkylh=;Iih4VS>YUFv8~CAmiyCAP;dZQZRXseLfXtb9AjzCath(5XAE z5-*chL2<$S6@@_BmG~S5Xty-H`YoG-2Ve4WxIApPnJi)GLu(`=qhQoO=VG&5bol6W zbEF7{4eJjh+To=FiA@^L-dQvY(=#@)#4=H&uhPa4U64Mm?I zpyd1&_qOqjKw?(m)qJbKU1E9zJX!-~lm0ZD2UM}2zvh^oPt%my%ah-HxPhLg75gm1 z#LoeB%*!==Ky{QQ>}}fmqqKDf_b*^+6Ks#qn>D5mY+1Frx7UkHu|eTL_~FgJ7tAuX zVG!+F+rOCo0u&hwS3IdE&tjj#(JxctIa;t!9SqS@3bA9HH>cUcpnjim8rWr7p*dhFM^Px;#DPP8JKM;=q~(vHyB ztED43i|@sn5bnWL=aNr*!C{>)L69y$gxW)* z+}%KUEmQy2%g0SfO~iO1aVlCk;(X+q{{`xBfHvzG0GUIK{p2qu?E0l|O^hg<59xxyNpG8U_3RwZ$+{je?jcC~hm z!5m5k5Y$CDDelc*=+S5EdiI4@19DhC@!@sKbxh8LZO$vN(Tc)b+naSQF`y-LMd|S` zr(`2$HZbJCMbf>Jj0w9O{Hc+)}H_;A2;M3%?Wnb>rQGNpdePcF(bR6UTPUe zlsk1ys#CjZ!K;lBt6k8Bo6sd8$=#QUvdI3cvJ=29yGG$h7C2g-7Y9#0FV7(Y2LLD; zjg3vB_Nwl5HD?BK^(AI+#`mn1;8!9A#`Q{ywt%%w>wQP*rQQFO=%p@IA_IS;h-qk) zr|4&BG{NFb;8gouve)Ue+Xyn7J~X9dAhA;9MiI7$nr_GnU1c1b=qdq}rYx5{SqIAc zA+C$K$(w=*ElwH3E13%{1rLHTlny_pSNTGU$mQzCuAQ$c*P*X{E|NY5?m9K}%kU9( z^Ie?}c;{$%98EZ4@tyd2@_&zq-|HG+7+tPVR3oV-eX6m$@fi`lfsT^&bi;UnA^pjF z`KyR$zJjQ%fp3(dCzd!{t!o=klp@_?JlR1{LU+KArR|=1&C}Mjd@g=Zf*cXW-$#@k zV_qm$4uF;#OfupgEOy5|s*W@*y#UuFAGAEO(pYShyZ5uh41Rh&U+E#)g~~3&``dpf zpf*(7Ylyv9co?iR4Fv^svC)Q|Peb-uObk}!SL|pevP=`Y6vIf~8t(BnT-M{>P6{S< z8pBYxG4qkKuNJ4Z-$7q6ryEt4eYoYfzJYWqp>+b{3M*^L>?xHuyxo=npOnVguk8bg z5l8l@SEG-dRgQYacd;wK_v9}Ngw{$oM|iAcrXHl|TiNb*!-V8%;(JPAt6{30q1=O^ zVV;RSi+0@xT1GjwOW~}+?gDLlub->CNV%xk)OEr9H)YwH6RysebbuZ*7FF!)mrk1% zOY&t`R4Wb}qihSW58B~Mx#G-C^RGYroOO7~-^0%i+K{#X@IAos&!G;_z;I&VkoEx| z{u{`Q3YWxT%31M*%^OW+-raPJ8~Ec|{zS$l{#Ww50>fXLvEsNWZ+w{XE1shEkeeOu zD-9c|%8N^mGJkhJIHa}{l2uHVwvdKGu~lJ)lHD_Llr~H(J0H6I)sY~Vz$n$nA?#Aw zzttvrb|@X{hlQmu@4rmiKVF+r%_j@4*w1ctmN@DU!D<0c_u)(FfQ2iN&o$bP0}U+y5E zchvF?P$~1#3$TC@cM$-rTlMT6Z~lt=__f*&WwtXa{QWqq@ zcCUDfuBE|0WzRuVhtVp^X7y4N#Ct>!qT;f6nat8~T?AUOQ?)WQ^6S?QIGkWsA#rtAhhXTv9cD@1>Qz!czG%*G-${LdvljKDBRDv^- zJ{GA9iWP*kqo1 z>51(X#06`G#QIj3-_y)jJhCtub}~ggUD*cODbo-qO1KtL&&plcaOP%5F`9{P(b%rCdK6Yb0V=Inq~=vF|hR!iETB!os=wC_0kp+YZ)co>go162X{;ke2_v zvj$U1NHmnK3XLtNs8RoW*8Nul=eNh`mtS+FWMo)hznv8`GJQ;Uz@M1{y$d4PpdY7K zCB0X+XX{m50@;+bFPKM{%l9~7*cLO(_m)a|cN^E^QS(NpRGB6=n%GiWI11J7tYVd4 zYUMIvv#^ke!-E(JN;6}vrA+y?%vlTc{?>5w{xKwd-Eew^P;20Nz4ItO>(6Qw81($4 zi60YrJ#oJ=)4Z1Las*6&7NA@{iEnUrc+69XhvBI_2~yp~qq(T1&JS!jj<_f#P~*yRYbyB5LBznXwQWQw52ixuhOerrKLb13B5>C4A#s(hib{)Vn^z#5Dz(~?|| z<48a%?p0Ud6&kAcY7G7kL{ro8X2BEI3kT20Pmf2?%)6jri;7>=MXAIm8%v5H0R}OV zV*zE-+n=;Mk_tj;_Y^S~XtPmWGnEEbbie$}5B`u*An6zBWb;yZs^8IKlCV%-jF-3M0XXowt6v*A~2#Wl1-FZBu^tTc}N1%P8ze zlH`)G`#|WV4S<1(h~7wPGQy3g9no1+OqyhV<+?&k<1kDc4PT8J^7T{ue(O!yB9lLD zVNN!;n5D((r_KL7KY}YZ6d~1Jb=pDDu!XRLa5xJmNBD{Lxtx%p2ugtfTv~PvpQfVy zpbcz_I;A|UHp=f$6nP}66CA!5EXA5!fIz_khh735XY+e^MRB)^RN1tZEm z*o+mN3ERza!Ge#Djt-m<0KG)x{&Xp^o(TYFk+A9s4C-{6P_Mqoss)T7un;=u$L8ur zI7S~0bP7GjHf{cn)xRJIGVy*y1#mW6`KB0WkoyhFt z+nOgq5utxqoVyaFD|aU}r4pVnIG`GAEur{*cEsK>@avXK^OQIf1BrV~gV$x<)pk;O zaEXeQmvPh8g<3C3h?j)KvJ!K&=G>(;7iaYi-#aM~#av42phT20ZI|A36~o{xI0QfJ z$rw@R=<3Cbs6FGbTI)*@F^%7GL&HmOeE!wTEb-|O|J5Zh?M*)gCald{R#vNSx_3Vy zQX=e?TP6@z1^;~9mnyF@z^!cC6_=X{VVBe=hjrOnuaZvw8Vt#vAXkf+oO8D1Q1*9q zSNEirclN+;rxIC(Q=jF|^7QYI;d)d%r^S;t%)W9rt{f*xjIOl-!ADFqlOa60NY)9Mkye>6Ddv?AP%?3q zRLJauxa^i?cX6|e47<>$JkBhPCo1ii5r4WQKaNJB+NgkiY<}V?HOp7X9`E zdQ<@R;-+FP#FR`M=S)Z(oU6`pbttQLw%ftfm@E|V^6YR!V661gI@4|uUI>iqF&WfL z?`T#I8!4y-NNcxochyyDn`5+qzjB`#hZUo>7} zo0+O4s!=Wl=XTdxq}h<|uKha2D(=c^#Kd*t}AZo}EYPPelYsV?gFso~+b*K|) zSSS}K0T?`J1 z_l|9bLg4ZXaUqdkzWB38AjXaLJ-5No_3CQb=qJqv>!Mx7*>pqD*zDSOJeeuw7QRm+ zzg=vSRv-;57)l)ECPrtTmrs=8@QJQ6F|ix@E%>*{*u{u1XOe zG&UR`^u%OF!K4*yZMeJJ+~FN_wMdTgyU`b?95fT>jVljfV=w`^#k)SO;vKtst54xY zDM##W>a@e5rUuNQY)2@27eqD7F!?$Cfnm1-%%1(b@7>|^E%>~p%Le}z9U^v7R( zTDUaSQh<(h$?24uZ8zuAfZfJu$=md=vH-=pcehKW`Ht(cfU-kPhI0Y34FKz0D7qEH z%FuW4+L~R7Xx>6Oyte92w!X~1DUsm%c7=Iqa=aR)+(6KJ#roNCBP1-yU~z1&aqotM zOrXxu=#esE*;uQ-ZV zO6A2+_7>3u8d^Qu<}>J4z7UL^&?`QdEcAx`AG)qPp33(Bm#9#LkgaqgGYKIhqRi~Q zvuD{Oq>LhaW$$t9y+_F2dy~yMW*mF`uA|iN>H9qYcvoeY;_vd|O@U4seC_{jo-(12<0P$uew{BrsN2-aZ%M6zAr3gq4Jv}!zd zZc!HMz0D6NM#Xsg6+7i{zsrTZc+vqLQMEHl_x48%^`-uE4PYaEL1-e=ZBI77UV@NaIS-9!zkJ0aK70V3 z2gnN%Xu4*Mg5tk@NW_UMBCZLTOVtS8?e(cC0VSCqJQkCYM1SD58#i1NawLzxf53hp zLrZ$^Weh1fpiUqKG2*CwEgqi7;EHT085t3~VrpyeE@53ovKG51p>2b>MaX}6hAOY& zgxDB<qGBPL+2&agsi(P zjUBy7VI!ku0Q2aLJ`9CbG#3wRd)vJn2nx1jeS7{C@A!)FG|@$iG%mJNoGlXC@UPRv zM>e3Ie`eSf%{X`q@sNY_=S8VLJ_X)!*N?q;D_Ks4S^dvN@bPHM1>`82>k19~LVH1_ zTcsh@75Xd4Bo^018z}8A0_(9d0u;R2%P-O*-)^(}S0KU^R*ulnRS0HmPR7#xb3w~{ zl2)EZ6*jB!ii?Yv{%EC} zZFEV$TJ!zequ&*+G!Ya*+cbHI?!8}hqh_Xyr>8sv;xYCM;qh`A3Fe<-rbfC!hmYhA zYURraxdG@L@Mq9>g9})nCjWtR9=KO^BL$i zjeb|Yo+4>-50bjkynOK&_T>5y0!ZItFR#`AQfBHG(Bxet1FA+(KBkkuK(=V@Lvq^~ zE8Ny5Dk^$Hl1;b9IJ5p#AX<@PPLLv8ez%YiS*Q8$4Z#fG1W64`E}?HB^BNlz^uNRNeN_b@t8-m!vf+r+p(`R-yEOcx43jQMUlLJDJV!?IXCxDaO`f zSI*U&NZq1Rz}-f2SI9aa&wkDY!bV=V*gs^(o-wbLOU%d!MXD$ouKd61nld2!XN9tK zJUL5e;>vCqtbZyrkHv^+i~92X5-Q+vlF&#wk09Oi9-wuT@$7y7(Eoi8C+?`TC*QYO zVxZZM%1ih+306`LRatJpB%J=&^7?_EbYfd#GLrv8UwWPesP_r&?alfDaf?2FKXPt< zAbbV_RMRc~hK#3E4)82l6+j6#vk=t!uU-g?xzdk*xY|s7z{Z z?PU@-&}^Sf-rt}1s_FGoyysxn(xVu>mrt01_hu!v>V9fnm<^1vY($?qAUc;@JqI7H z`ktEWh_?0B^^(jFqq=pcb;s!jLJie~OzgL!)nj?cQ1SKnn1bHy5Ds_byJu+`sV9|!Asuszh5=zUc1v>2)TmKDt8(4cQPv?`aL;J z9RnB~%P-uHJJOdnC(}T~ucIBHz-PsV3^2O zVrU+dR9wu5dMqw_V>5`EmcR8wopZPj*mPMkFtzd%_x0<3dQ(s$_WEkS7_G1<#tjxm zJz%Kf-jj&BHRCB^uR3}8`%9MtASY|%@4(di%8$F)tXZ8I_Q)9YNl-d^sjzwJqiyYlWQvHTY#BDspH7_YplaAE6Qy)MoGbrMu0%BvYGH|mfL!YRHA zDyBvK3_FgiMG9X)nZ6YY`y6dEdO!IJ#oGs};1xpiNz5zX7}34!f4Z%m3XP6o%i-fb z-tJ3`x}iD=s)Cpoavm4S>;j2iXqz9^A?%2AZ~k*bcOaj!LqE3c9LJE9ML}91H5cB49=|$ZKr~8VeVuaaIYy~)Ao-!9 zz!=s%VLKH~yKv*@iF<~?an0`!e5d#XMAsj$o4;}?=Y1eU77xw;be8HNE z8$}Q9z>v$a(QFVX((wJ|DJi=v(N$m9qCtG zm}Hu()!e)`{s+r&GwL9xll?`gPR`?F@HPaHu8pR+2h6j`Xa1bx$ywL{|Bb>^>?YIwE%CK5# zgwGaGjY)5_Q2`Y6jM9`O9y;UG8N7(w8WZUx}wx%iKM$BTVp2P6o1^66K7u!i0A+$_Rv;k!{m_nCHR2P<$CiX6Wm!e;?l3~ zEIxc3gRHX7oP>S7DB9SMEZVn!m2q-!x?+aphdvT>P)t9-#?gMq`u?mdu=LHWH0#lK zYA$}K$g24PsCgAa9(GYy9S!Cw;6uc655WiZC%Z-6FVKQ_H%G|fC8vV+atx*B z2>PDQzBv2DBe}2Gww$};mNHmk>%y=B=#ZMNTIuP@A)NTdWN56a)B%WjJ>msCFPmTA z0A!<-Rt=jGU8twZ{+U)(o@GCsym`&>&RIu-nKkSab;q3Ksp&Yc^keiCJmq zSCD~oow@T?WH|#W5ZDYhsxW)^49vY13Y=ydW%<=I&N83jGA|oM`==Ro#kiMC!)!CP zU!6Kv!CLKa7I;~7D(iChQ_DwY`{us-AslC08FV!2IO6(|K?UxN)H-<1Vc*mcxrG`^ ziIkf1G%X&vX9rmZMkqE=AvPuF7B{d3GAbzFLWaOz?oNFftNDCoZ*#UDnRK`QFg*fN zhu1+LgH7pNplBU5H73F$irjG}uU4c47#Z#;kjyT(Kxcu_1oac3)(OQg1mKaXHkxT9 zn`xcK>A_Gp@GhUNg+XUmDCKuSx{7B9%C}We=v_T8ojJC&*C;LS_gbJ<-L(M$N3#hv zgi7Y39i7Uo6-2Ds{4yzG!Xe}jbzYPL2!%w71nQW>YyHL3T+#s&^d&zZzr$9VFTvDo7A%gsyAjv%9NMGPriR(9L`4-z!6 zOcpvK!-%_DsAEaXt(F75!eH}#FP#Y8oU{8xm@^a5bq>G#NA=5d=4Sh!Q0-rGGj|QA z(z@|tH4NtY5~-~L^^_tKKH?qPl#^G2klK#FnQmw4+SZC@C>gh?rIR_!<&m1CfK@#- z-w+Ta!Fj(Z`76LN$QpggNT^f!*GC+HEpbOuK!=qgT6U&fPJ{7wa_g~FW{z7sN44rb z81l%TrW_!7{6y&AR8Z_xF1UQJ5ieI$KAPsk`IRO~YM}-#WwK~{cry#eV3vhU93S>!Z*Bt@!EXpBwED*OVu{w~U0F0$zm34F( z*z9Phii;Evs3oGlIM9Sf=j}f*XVuiYk*19TH&~m*{q6_a&Lx-CKT%AeUOcncu3oph zzpM+!1n;U8F@_vz4R*@$hG}n3%6Z8q$Q22&s^j#+3+n|^v)CAy_Yb#=9qWQUW3X1Q zY+rZsj8g5*E8QBx?!L7h0(5!xJ?0fOl9Oib&70-4c2s5shSX{(S79&qhjHV4o^z}b61vHg$y*ib zuxG5G$EK#C38ED4W08qr5u9+=wGXl- zQ*R$L2VaUD-QSX#wO=2n0~}vl2DHF(o*IW*%w_&BJMDD3wfD$}hZ8$77)Fy$`e&08 zJXzE;4wqnE#fsK=ii7KdJ5See3_bXnI5&3_yi~2E2e9O#3xh|(%Uhi*nmi%ssWp!{ z=Oxv$Rl)-O8ZM~w#tG#V-KU=Lx+DVs3nNfY z;RQyX;+KP?e4;yS(u!f-)pM_yBbj-*)N(Kd!fI9ALXxCMEANkrY%NIpzN_APMma{F z?qgV;igC)>3&&UowB}>gpAl2s!PU7}qVIMZ*$@GXZ61?RFL|(ok}UFsPk%5znb#_q zv}0GC*YvKA#%ul5q0m*WjHM|3>I?gRTfR1n{kI_9dZ9}rxlxzv6-D?prN|vt@oTss(FKC$22i3s7vFj-U6C$U29*l;v>K_HuJ>aFjG;09 z9>Ud#tqKS$=NWxlmgC|n?ZGRk8j;1VFN@4si92uU`YDoy%+YfZDK(g@WB7Ulj@esp zb=&8)4nA+jFVc>=TOX498yCF~jzn}UPB%yiLFd1YsjK+&5ce&yFrBisN3(NpuUi6b zVwbdq{;D>E&!k*_1ni;*Q&8c+$t$Cx6uCs=|A-`CJ^2c8`x|}dC0fC9{ zBh?;Mw(h0au=LfL?NfI!wGZOfUE__zE<(7c&HX51EYfUN^PPuvj%P(VL!lZ~YKxK# z2*qnN$wMc>7HOm5%CJp(#m7uw{W|Y6LMT9CY_rZ#E1opncz2RIvusq8I;5TFWMw2+ zpvbbR8tfIDG_&E;kKNg(C4q0=G|8k?5pl_ia{8uOa%~??B>T;+Q#nty-_#QkWm3@y zf81rAJ9A@Lc0$o5lsv>kcvo~vL{}HG|2iL-!`D56gzmtLQUj*ZHd(Oq!3xfE(f|iy zQ;_(!V%++GWN~zhq3=J;4y-1P49bT`*@160 z?o*LZ;(jd|Qhs&!bi)G~4y4(joZftAnoh>g5?gb6Y7VjQ(?30RRH3D#JGc@IvLsKC zLbyOv-`Rq6L=0qGXvl`kX+SBuhV-IT&wa0f#!H5)g{m<&D*nEPfMg9YCf$>mdi58{ zRkX+O8G&B$UYEP_DHtdKw36k%$eUER?k9NKDSdhF_(O!t3Mp+B)quW3Fg+5}0vT58 zv?cA7nwL$v_hi6nD);S)I}=nLA+5b$C)0BZH3xFhEJc=!ozsA1g@w#&k&Po81Q&KE z9nJST%$@P>iAUV5J~@B~Zy}J0Z#9HrYA{0~XJbG?W4=OZ^bEiYK-TtHQo@91rXKlf z1h**8XxSB5x@Z<0xpVq9X*oprsZn!t4;_q*`oIqd`=XQIjyf8(QxJHF1fA)=T|lj- z`W|vHCUQz`kLFS~Vn*DpY){%xS~PE};UO})({S2n!Mt9z8gj<#0to&swa*g7OZ8J~ zzQ%E49C}St>@({e%kf)%eQ#IR*=-&%8XxOawAeXlAm$r%)l$N&N`qe>KJ&RAVis`k zg|4}vb(%v>zgGQ`fbmteaw~KoN@X>ydC7%W&4i58>Z&KXg8}FUC96X+<&gQrs0IR5 zMlh(Oa_v|aN=$=VJoI+tg@GnrRIzMkIg3&{xTMOZLILRIstBWUTk zf>QB>(b(MIsj}=erQXvi~~G!C4^L<%Nc*Pm#S(7N7lDv`qP+ z0^NE`ZXogzFAXAeWl5CtaK^5tPD0#!9Q+4#vAxoVs3XCgZ9AE8wpowjRw=DcSe|kRlJb>;cm`-&>!D9UShmGa#Ml&f>#--H6QbMd;PZxL($FlCGuGdv9Jaf4+l z6;wLIY)-+7|F&uw&1qc+w}$hgAun*jl^*kMgyeumyER>nvtoDF@c~-IdvGyINoTac zs^prZ);9}hmoKC7Us@N09TE~8R2h71&>+xF(V+)w|B6eXj{F_yRIC?+utWQz%ZU=z zJ9fg==TDK3&PUmX(s2C!!O+2OrMt7{mx%dl3%j%Xu3)?tb+I|--~{)2$9I70by#H( zLw10Md9413!)c<~tc^%Cjo{|ZQf!_*%IN~9#pqLREULYkbT<-B0pt}fqDs@8?@PUKPzN^nt*)--Z0h zS3v^8Y#t^OLR$uGLzs?jvEa{VCPS&M`6f|xY3V8K1H+?-A?FiP3g$!Iv6B=GjK&Y8 zcFOw^id+rhvIMt}7y~1qPf5!1>@dK)l0Mr*`(@1KNrMB)K-tLts!(1Ny3p=tXWNlAH);N zryRC}vr*t=3CcxAW}vHGVt2Y#_ONAGJm$$rmSSGr)-dQ!-yg{lb9(rg=;tHd;EOZC z(BY0h7`N;y13+CbgIak%-lS1R);KsbW6npGA#yGXY>u;~yM)6FpsZa=K!km}3)sqf zWXa%B)hR}cO-Uqn^r~bGVPAp0ic-Io{z6c=QDVrYpN3nozKp|ip%nZ+B|)^%^=!mH zhdqi)o0K)LO&r5&9LfcBGR8r9g+wBS+`3=N3;=(3WxVrVvHrR>r6jSdJ0@W{K()Gx z4Eq|hl#`oKWPWbEv)#uRmxQ836n_9P&{A-!!SJ%YO9;sKDnN~XoXlyv2eQgLM)h;P z!QJoD#PRAGTRk|R%(DxLF!^udqyrJwL@rPR7qKJg$?B1E^}+sv^9V%yxX*4CF<_Rj;o98b+|AD?q}^ zKH*V2V1dI3f-3G$IW8ZA1Q;GO0(M^Q|z}E z%Cbr(M~loRMh7yLSf)L;En`poCzFKn*3FXKY(MA4kM^la&>oN`Z8apfIGb54b2fh0 zVLqR|cYL@gL}c*?pvTqC<;L1j4n<4atZ`}>+5JyLP#J2b?H{d- zYUQN>(_mX$rYw zl=M%ngBIG?8gDn8#liCSE#&cWZ-OAEd09*< zF}+CK&T?N9SjFA&zLUdsisC5%GDexqh9KZWT+uRs@=|4-yd^1J*Q~6k*%_perx*8mfTB!#y^VsFjR7)^iAUKhr-Sz z0Qju|s=36NaL_II#IS$QnsXOSt;Y@FFQeVhysE`EA|PiAln4F40-EIm#@7BjrCvH0Zz7F z0RZ_)(QG8Yf6_pLJ92`lWd&Y>6IH!Yhq(q!i?zrzqohoscyb`SQY#*q4N5#?#` z3Md+TPXH)&)+fPdM3I?Jdb3P;*P4FerlQYpd*=Vt^)p14)$1!$xwUBGO7<#*(|$0A?P-cg)|=}=p^9UIvWmUN86G(fQhIQ9F=dW_QI!gpi&a8$eD6}oh}s$ zxOVYje3>$-zK)>Vpz532>qyywkkU#}39IWcluZ}XgDJ%m`#^h2%dcycRD~5T?d$gJRa=c&*AysTN5_b#C#?w*s?7yI_Epfyw_27q$1`;qkW+AHp8_fp zl{y*Z7vuD+U}Z;nmQ6a6)*NS_aWBJ7KX#!IG;a zlJ3wl7^0wFCa40yyR9XRNP+5{g&g$P>MiZW$Fl*#ytYbJkfg zi}w_=UsYP_lKrtDMo0@XfC=3m&+Yy8oWdzMq97Un*Y0RGbOkou<1lqGsgc(CjyU|7 zy$0CLjmIMQV4*gr_NnD+&Hz-tZWh>Eu8x&F_9GGB=j*n&3tcsDZ09m~tQDU-1BnEW z@(Yy;^d>Pgts<*5wvUFJ6ME7d!sQBk0rtG1J&|=Y2ic$!MJX33FTAY=Flg^?78^OM ztVc%0k05ffk*bxx$(x!K=dS&N>kQgMn>LqCH7(5ZZM=?BoAkw{!v0YZ5*w~mM3)TF z*}2ZH7xG;+w@@|lIpRHi6_kezB99{7gpnNyYO|bJ8cE_+PefWod8L$ebWvDp;kae? z8>*n1h*wtLd<66}aAJn2u$@5#Xya|BmwHX7aXrx1Cp{hz1m z$MBaF&!Wz{{VV>#MIoMEBJ`2|EEl}D<$X%prL%(=`;jWrzRYIL9VWxX)4K|z68ikw zp+!2qtT?86W4JPFx|Y>vDJLrPzKM2OpV6*TwamAcN9y^x zUA*za?*jV3c4;r|&ts`$?FKr_K)*{BP|7Ze zvMU@vXEDewwUqjyXqv_V>GI=PxRt73DMa97rB-H{S2y_sa)k?@N~J!yME=-iV7j)z0H#N zRaap^OKBHY%cRU^G55keKz+PFTa61j?%EwzVwsl82v%bUDp}T?A0TY10EsM3sbOi3 z@*XIf5GbXFgUZ6-awx)1(C=1v*kYUClIkhr0mWY&(de+7$g`-b=6|g8CbtocJ!9;CMIiggVh03} z-m0s?D}!5V_zqf%hNsQ`>0RRYa%Kr`5vkwUJCR|l!Oymxz;n*3tHLGPbiw`o4{HomT;{YN9v-X;O0Wk00EPZ* z)Py0FPT*1NBLQ)vMJ_FOzX=L5ijnK2kGl<%5`-)!L1*6@vV?6;l9S*D17}!`&op>f z;e^G${qYGI9YvqcqynKNL9$xnoDKu{`^3kGyX)>d}95NZ&nH2x7l!HJ!DZ$0CV1 zh^0$qz&UYNif6WVuurX!+kL;t^eO!WE`{z;`^AM3$;jx($qZP%Z@Vk5=Wn%pGl#YsRy+bL?{8KDuAQr}H~ zZuk8AQ06(~%fS;yRX?@@uB538tfqpeUCvrPg+*+o!Vf`LSLuA{_gpf%chP)S{l z>Lvn(j(ba{rKMuMdW?h{&O6IGte2a;_z5|GYha<+UMGIE5$NOKj6A!ss^gJz|L)Z_ zg@}W^CUTO=RZzmRNsV=O*b7es3omWAQr0x?Ieww(*dTPB80rWZn|7bXxL>iV_q2sQ zlHQIm&fbjKPY)<^c>C_uUhWt)T7DdQW~T-!S>pgBTZd#KIJ&6_`>V;X#C3ghL&vK$ z9Y_U5GuBECLt5zGxXusG&;?SNB0m>~EN+NQSW3Fu=+Dd!SdSmVajMj^)GuSAUJiLx z-+9LugZY_)m#3@i-P+>EcVR6u`C0VT%ONiSfn>K1y*jQc@Cz{{-82E%VxPg7P^43y z4#;!JPK{Y!_QM^d83CCu;fP$Kd`RUHh+8Y~Y6gVhu!txcJ%a)2$Q%Uwcu~ga+dL#p zb%wi(buV-9yHCLJ=b@yv3U>Uq}=l z5y=}bT)$EbHljGn>r!zS$RrYO|Ht?z}fW*(_AG>T?$V#8;N&La{xqrjsc(SoVK`l` z@u{$HOQWb}R0>74ivvO7^L>5xrMDv^9MsiUt8R(;33OvtZy!k%rRuLX8ugi1B=z;a zHGALG+;4r2oTU!|R6pB!=L~Ai2jJk_0-F%*zBNrMLMhq%oM2f{Vm?_jXp)ZGW<_xqgugIK2d;M0p+?8GRGFPmw%R07{lFvDA95@iDv5Xwd>2lC`e*;d))aKxV(eX@o z7RIWy-gW?Kt9vqX(w;`;4t&`0NUpZrpebASQ5#$|zUm?up-E-uaM<;>{L^)nAXTgTTdY?q@rEXP5| zHD;D48iC)u*~>QbF8Lg_l@sM-eff)QrlUuehaT563MRt@^rwWdN~`rrHP3?v z?L{%tpjSGoab;wi?B28vO1*%@8@`G4nh#)IyeLTSbBN>sx?lcM3I;?Ub-O~v0{eAm zxJ*3NRZ9OWD92fTC5umam+zn$;-~o!4q8^efymwm>ya-76(p1XP=Pm5KW;y0li1RV zPFLqlVvj{aEUs2p!NEeU6w&FoZH7{2Zxx0Ie{D|MkvQ%oZV~&$=r77v)=y|SFYRIh zW$NJ-9#KiZT{)$*zClXlI*!w9#BUAAjcXtRumRefsTE5J-s4EK`>Sx>?aR0jyJAv+o*>CnH`-f-iK0UAOizaui@OIS<}%_(z+l^ zMJ|VACS;CX1FjY>3c6YfCJEJoXywxFj)|DHpA8-+!V`N_#7WFs2~nkKUV9d?z8Wnw zoZM}`Su838#{7;t*P!Q)?LxSIdNu_X;>JKvMEqRv*OoyNwOCd3W8ZK(rk4@aMadg9yC_Qb9xy=bo6jzX(e8qD{#n%pWMaG+>r!0-s_SY% z6Dz^2p8r?e`|h!8XWv;Hb{T{qiv0{YILB7 zA?ms1Xtum~JP%3K-B}sQ1_%O3mhfq1U;7ZVV(bd=R&pOKB}$kltL146+HstxBg6dP zF;y(0Lq{jD+(AZsL_m^@+^aOuuMUp)mq2K`W|it0GEYFQv|)l{DETwuNOal;3v3(&^2;5j3(|}I^ga{J=D~k6SR3i1vf(+wIdB5r@H;*symXKU$n13^o7qdrvwA^byD_sl z+vIs(J>a9v{>p2*dXb=}BZ{MM`E(30P1~wKdyE+v$QxT72+Gx9URQt)m4cR{Qm~sQ zks)(uOmsTC2weSCg5XtK>{b2G=NA7alO%LcT)M+Zex%parTyjqzt0}DhoD&Dor-(ka-sbV0HS`dWvQ0s1NW|Sry}nh z3q5+N=_6-euovczd$($_BXVd1*s?bm_{Xj?Odn;n7em zLH555d;2RsbH&9xGISg_c$3jEO~B3Ipja5rWt%Mn_Cee@dS(d=x#{Mo1~|c~BV$;{ z`Q`x2cm@*y<>`wRXNy#$9dKEe0HM*TM63R?LXnZ&E;`uv24CAtOBfu zG8qYu1{Q!#_`pH`1VCFC^9{e{{Q(gFJUjBcmy~eyfo6Djv8l?g%jvF5wgzvNznx_n zSj`g$h$jmzyPCg4lRxhc`P~RkbD3Lu7dR2>!VrMD&20ewZ3Y6f6WWwN=HegU@yR1$ z8Bi@tN3Kai(9g)YqeG{Vy#mhpjoq*rjs55R{JEWu3?(Qrfr?}=vOJ&;7{Hk5(U!pF z){lWqh*355KR+md{2&mbaPKk)5$d!ae>wC&Hv`g5b7-}zs6&Acm%q-H6M zGaTWGY+c_w*8-rHumb4Vju?1pb0F|9G1+@9_8TlY_X0m(6eYcXo|_TK{3n1!%siQ5 z$vQyu#u(HqACCuU>H=ha4J;H}!1vrFpa3UiW&@nNRy^%@==P790~|BLW<`EE{T)Er ztpKRLBQ=LnKTQef)+hz=RzEZwCu6yy)<8?W_;A*bH%cf$9Y9vh72Tk~!47a<1;8%;GM0<-j}QM@ zkj=q-LeJA+Nmx%d_)-@Wky7v3APtr3Dgd2zYk*_9Ap}Jx2QW7JXa9VF-`9A^aAxIO zmhIC3UC)yclaSF0>9@dJwiHP!Hk*jRf%4px`Tr09`?EKi?<3#X2NaNWzQ#Cr1^@F} z;V48k^Snb(mnhCN=HGkq=l|XiedlIGPZauJF98STt}GSbm!CDw{~d=mfGB(*^%npB zjC_>*;OeMX3;ueu=Rfk%gTOyeN747(FZ}iV&#r>2U(h-?SO4!Np3TEYh~y1jK>?Lw zzBWuu%*0GaE^kgyaB1|TScie+1DsA3Fo36$uk%Tz$S5QOn0RBbA>&vHAX+NrR#4F1?Rf}X)WhDe0IKKZpnC_d zSfjWS74X60#@`dw>dIFpkw)8tWZzi44(AXAp*5N-(t!dg@raDV^ z8Ue2+c1$f9i9h6(A73!k;DwDvj*nW4s#VCR0@Y#;%GD-s+jq+aJk~)j6fh%s^O+s^ zThU5!mi)CuCdLA(9TK%gHAa9Q7IrijN|af)*r(pO(k;#22BYV!*5BXE!0^b92`1Ux}^s~N7lMLeBhOCMny)5{7FJ5 zP2T z5WaG7OhbISeoFQ6&R8};B-a4EBr#Oh%lKbU5sdVlAU?MSJzrZA+TC$ak=9B$`Ucm3 z?fhk2WO4+e+BLuIq;+O=mWOk+VC>}|>=77kJ0s2doKP^O`52V9?ndzTD@_C@r>MlK=Ts;PCI9q%= zc`Hy@N}{8uw*o$OWM%`DcCRz3)HplYk*q3|S+3;rr@mo&J9x8G5sMnBf$( zJ$)Y2i!}9GJp>0yO@PiAn5iwuU@E{7v-SuuL--X;B>z6(3nXQE&pX18Eubt+Pe2wZNAxk4G0Qt=ZT#TNMk)K7@|Gi!FmkU&~EJ7Ww zf6eW$A1SBMUZgD?;wPQ{`+M|f1`d=cae?nY{=5#n_tr5+ugiZt=@&4P&r+6@|M6#A zaP@s>v}N9ZpJ*L1;N2V3IBxv=pXVyT)!){<-~Nw{{P3RS{a4RhYcH9Om-fI1V!f$L zVFSc^MV@U6o!h=O4jp%Pn^pppR@)Xn5IO{LU{%B(8*yXru?T$Mv{wOB0A1Za@a$Oc;^+psTX1m*mEi`Mv*~J9g>xkG0{_F zdQ74LAPf1!+S>m~k0`lOh~v}ap`qS1W65A!PTFG;J-iF29tB}h4$~EKJI%qv1gx7k zZ`vJ)KhWYIJfy;NB4+~RgUsCq+zxdOi}@+fW9F~$F2IfnwT^VXbj86b@0lg?L$Xlm z26z`Zn}N&_n9|AwwfFW!YoCtnTJ`+G)zZo{}0On*s+!=W!M z{~lMn-b4?EyBUF;OZwXj7O*k+HjzOxjWbp8Kld@XylWHz%@F#4s@=YfgbU{qDazF( z**Fk*-8c1X{GYp1ZXs(;5%y-jAOGC}?9&6g5t~Eq^ru4m|L^Gf85EW~XxOj(M5h0a z0$kq`P{v1eDfm_YyGP~|0=7UeIP$}<^59?3z{dlorDHMU`PBcs*t0uPCIVZ)(%Mn` zk8uI4;aVYgqg#T~r(MSK`V-e;Muu{)vb$(I*M`-jbyP+sj~l+0$qMJQG&n6t@9#_G zXRO2sxym}H^bU(h2vIV-ihMF{l>f{8DB&8IHce1jt)vU@#M{JW`30GHPk3YWV+=bh zS;YroevxZEu1(5QW<^`1dgqm(f zt-^*k{$WjDK)(_Wj>06p>10M9`rP(+y2vv%QgeA5j9r8Vn0q%(lYeFzI*OWn9)3;J zH=2_!#IB1OS<(aQ+@}jAN2zWBLjRbf-}i}oa`gd!(GykOPMqJr1K0nd#K&X_CFFF? zV^hOh)QK1^XN)({>?0y@*zdpP&F}rp+gahsxVFAG0Raj9f|6K?-PoNVKk{zAI5GxK zm8E%A5(YixN@M1cJMuln1N8kvZ{mGuN39gRoft-yjtt@nUx?>_+%`09!zvu^(}p%s z5OCUZ1SgpoldPM?pY#{*b!rzjJn{|py2sBja^Is&H=#n7vyBE{r8=iT0F>G`6EM|B#m=Vw(uqSn? zaEd-WHq;|CCW1vBte=i$>LP*|l$FGC?ON{S%NC(MS2T!RAb@%DTq?rF;qeEReh0 zX1bv6ZB*+Xf1trerWxNQdIzvm%Isp-n~l@%!XgQ-Cs;|g^z+0cq~tvb)$~}S69dNr zbh8;AKQ7$x?%uYE+`%5`V-_yv)mKin5|`WN7+O?29V{|2#teB%z+_+4p+P$`r|0cW zPi(4Q*r4Dv_*^kcGf&66=v2kOwX6SBIoX5H7jub8^$!Spww_#%@E?CG&%P`2AUwS% zl-O{A5HcsEY_(1J?aQQg+o|p}wG6wGlWRjP!O2w#A8oktW|W|-Ag9-;ob;}x_v)o9 ziU!sQVZku~V8^&0+{__;MK@KHMlwn>>`QPT2k~A|6qBs)WlDB&xlrnX;HPF|`h$H; zZ877qAJ`1kZZ_~DE(;_136nvd)XneXTk`5+5~$&oMuxHdXzai zE&X9QA?@9bmvQb{q-N99;nfA@xFQh>?}ddcWEfIZ`t$cZ1v3+Ra%|n?v-6-rG0^Bn z0+GtJsto!g)bVh61%4K?dGolHElq6Tasx%(JnPDPf)XMh8))@MyjB_Hm6yJ( z()UY{d4FKw$(59fjm>*3!XhP-PI_5+47A}5?N6HYwD2GIENW|byC|hay~>NEWfr03 zwPeQ1YnWLmo^!(FUCuC0hg0{FG4K>`h`Q9^GCK_~SXaqy6AkK*)G!)77oK4PThp=U z&IE+)c-bJjny!CSkj<%S<|3w3%yI7!t-hyTFke-j_Df7Bf?&zehJ6BK23by}mDvF= zXW@DMbc43`+n~O7(DmsrAi+Ntr9`ydBH|4ns&8Nk%aC!Ry?WBeW-i!o!txsL? zU#c7je636ur6X3)=e4t+qW~)Iql3X_+zLG}db#QK4DQKVIa4UFn8mwEVFLq0 zt%!>EoDGf-nUq%|HDDf8$=~-Dn!A5LX)Yc&jut^**#5H8Fx<=6rLw`q`+z`2sWAVG z5l)tDt~=~7fM5!ZO>&Ai@0Q_aDHsSX&<3n4mSl+!r1d1rtg7)GmAxbNX@H%7D}v_D zjx|l=$hI&hf>$04lW~ywP8eMa)U7nIhw6^JMDe~l0Uo`w;*tZc)Io;3MuhTwUH4}m zOl}4tj|J8qYbog+IxvADs^a=!X|5GW&~ z7OBymedOgJXzeWYq_6=VfO%;PdeV*-!B~9o-V`TX3}M@=|DD05F=gyBEL~ks3R1Wt z9O-*)fQniqpKi1KzJ;LIV&4D-)YJ) zBv43FW9Y=pej%lnxF9R9auloJeLRn?f)F;aW{+$XvEU&Yy*H|3raApmUO}2cUP^nE z3IA9mcv)K|1y!>$e^Q?3*6{aIKD7Z^4pIVx-A{bn@`w{fIurYJUduOFMGdq*5uX)O zuE?`t_RArjFTt=ePCqLWa&UDJEKSL9ik2TFK0980!&%)jxN6kXI`j4MnBl;rD+0~6 zJRN!@Citj>9%cXb_tV8limK#)zTXQd)$fEb4JkShAJny?@|2;4ONP#w4PCASfJn|3u87yffwGMfXR!$;`n+ z!KTj&@5dU))+|+sn3&<~hj|)#P?t&NU|P?t%&dDx-L3rI>s87}Os`B3xZdSbY@!H# z#@5@~j1i=k9Sis(_YN8;eA4%`7>;ndL}Ho_=?xt5odz8piuzrI^<8)h*Cc%Ubcyb3 zk!H~tj`nI3daD!YD?Ouwo`?x@U2eP4Y=6-yDCMv88yq(Gpp2EScCAVD7Gnupx#G3r zC9U}U#0J**?j@dyJDEuxbOf^u(rUr7+d*2ZnI}@{*xfX(JH#Pj20a`p3EwQSicc## zmcEGSq2Z-NExKPks{sK*&koGx4ImwliT2m6>lZ@FOXA#K8;Z1jmH4y+2}m-I8^M+9 z8;P}R>2H>RO|=FP94f77#k;^iJ*lG_h`rB6kLG%Wm*(%HmeTZ(J$C`+Ufd$&0Mer) z^Jc80@G^Gsb})S-e1?3< zjpKCUy>P$CRgInsg?Q+RKG`G_*&^zx)pn8)=~K@v7O{|Sxm$kR1LcgV#Jdj>uA}Z% ze;sMH^ZeA=n@(lq@@f7TGvJBMF^?GZk2FC`|?8TRy zNgDFuFR0`$U0jdPp(n9ngyyTUySdSU3a99Tx{)@;OGfdp$jst(MY3VVnh;N{{1=a; zbR!!XYR3>RxeQD`6^Kx}Mbk1GI?)J-oh(Eu!@c;pFU8q{RSxUm^B$z9>tnGWfQf~&=yX=eaoGUKKQCa z-4pd5Yo8Fw_HX)(>Qf>G66kyo^boP}L4JaVpA<%$RKn-Vt#(pN1Bz0WrjB)BcQfEq zW)Gf5G((dQSVEeaM}WQuUN^hQU&$oj3Az}T)qXG^x4Im9h+?u|R%!dpks`_P4-Nu$ z#V5GKLWv48O3v3=2kTO<;~A8Cnp&#S1V3nVw|HmG-?BKcLO6?m?AejrEn|#49--^reJa1J zhT>g6peT$0Zlmr>(tAE0B&jnsLr~)%X&Rv0Tq}T$cW1`9+6|w|3uajtB#$!60~Zxb z@KTv3oG1qs&lo;qs_13SpSfo4=+!lh2Q(K;UTX3vPSopppb|cV zx)3PZ_zloqUicu#z9D)lK{!;*B3V_JOv-{$ zS*mW$)Vnc0BzA1OUUDKfsrBjV5)KNjqskNg_`9Y$J=SswD_@)OUH4^O7Er`fi_*g$ z7+MvH*m~>JZ}0sdU0)p*_13k0L{JnJ0T~n&5TqGVIwT~O5D*w*DCtI0dPG5D1f)Sa zq?>`EN0dgoTj@qR2fjVV^FGh}J?|gqy3RSk%rEv{d#!t|`@Y|{*atu>=_pj1TpU6AYDj-Zu z2qb?8iqMGFgWhRVWCC=rbkVRlvXK)x3h8M>SiKM>n%MIA*mwl;LXeV%C8(>P6rdCMm*U&qfJ2&9r1lA2+KcR z%` z|5s2w=j{ZW8k#mn(nE7JwMj0=-C&UwoHR)Bu|#n;LiS1yKBwk@Dz4~hKWA6eUXjKv zCu@76$W@ipO><-wL|EcQIJ8Z#eD)?0LUjc~W%R0B6xs)^f-@_-xiVWlPiJoR$nnkFLk-tY3n7WvFKA|g#ZXo$ zRY&(h2Jfi-%KvH((;^6>w1#-zY%?NhpmbznL{_oV8C^ttZ9*z z_GMoKW4vMwqUd-6ttI zpDSA&f%Dx~aiTK+_* z03ArDbvO)>F5i9+RY8>v_lO4!Zb07*HJBiwt^D{@LuI?7iqQP~iVQto<%C+!<%iR< zIU){Th}1hAJ(gLXG?%1M&TraJi(=WtiFP!fZ*gxCUmbflXqnoj2^`|FxAYTK?rB90 zzdJ&E=K6|6L)jx})x|xFrHU4b*(9KQ<=v)6RZ>PE`)4h&o+oM11ZAUuyZPeH|A3^G zSkDEqV@p)sArnv6m^D*dd{dQu0zKHn^ZNo-BUA(t0R3v zif10NHg)U#-#?qu3MYAk*)BfADOH*GH-8`yV_fwMIFi{!hJxFUoHOzWjDv{&nlJ+lDTw363MiRJ2L>RP>FW?5lb4M01Za{L@b?*FJIKaZ@*R_ z`@G*Nt~T1X*qrr9CGdU`5kQ{BaYOkk=bli3Ff4W-hZQ&GiYNUK6j{QYeBx(wj2TZA zkN2`dIh}{vly;ZC=u@-L7hMum9F>_0L%Z^&>T zfiPW{cJje~KTQziKN6XLov!}?Mj^nnn<+vH{trCc1czr2#-;stpjV67j31!nhjppUK>>t}VcU2J*(L0fYmFEngvfAXD(Xk|(G|1|=B{REe1lNQVrN zBapAq49$C5%cJj>6-|**5DN(`<*l5td)cXVIo25Vk~UJJ+J0H%>_+@T2v&{)uFZg2 zHjTTFtc&eKCKv%E#UKoT9CAW%6vlV_qgGz=hl!g=V(1{KMmwxtw08&E@#@^l87f(7 zg;YTVL!#N~kilu&O58;;FH)ivmtuS&EKo2h-}cn-_dU+mh>@+lASSB4s%9%S(P?0b zq=XRQCR@QMDAiiT4pD$t>_>~u+{Wk>4QrJ@wSlqJ_sc?|)$BW^Ai+HId&_eSXw2PD$84_1+R6gj^h$itZGH|FjQ=x&Xx3E$$lO0Jb#|)>FB7Q0#@) zuvxiZ*6k`2#bsSzo8p^bEjTzm-OY*ZOii`CDWA2xAA1+#t|=K+ZSCEuV4aQvWJDIG zpx>M1Lpa`Up8C;`S#~0MD`^UpkJi@JAv-VFA9f;yg) zuT(;JNg%IUm?H&}3_1^&WK$gbQc4dyG2WKN=Pml_U_Oz5n%!6j={Xh4K6j-MjzSSe ziCRksz{=8;Q);2tN`{;1U`bYL{i*lTPKiZnQLr>YVss3}$0VD+Cx@>~#h?E(49fbNyhhIP*rKT5RwEOBIRU#bl2DYKmww843m+lNU zdd1yNn@H(2*4F$fZ`Hl>o91>&Qf+}}cb{m!<;KMy+;$b9Po`ntk?{9=IWAkv%FN6> z4qA+ttDM)C0Ud_v*UTR{Pb3T_^kY#4Cq;l&2NaFkhS+#}Z#Dp9W*+-NYM zjJ~rW?r))Nyn(ESMrbn>TM+&_y1Z-1DtP*5URmXkq*KOb`B=b-7$zf>R16d^HN1dO zD%{fK76jlqD~U^CqdG)X%S<)bD?_AXTA2tdI@&58pu_-sE7kf4x*hH>s#%NiJ>qT_ zKdi8UEStI`*P#7O3}>WRgvQg6edx*d!T7QaoW1lXQo3M|sN=Rt9~eA3j}4Mg=~$sS z&%pThQ((uz*r}BhcJ+I78_c!qi|EvuhEA)|NUO3`z^XSymO2+p#6HcS8kt<%E^Zv^ zyUM7=?48&9McipuZcYe^(C{!X9yS1XQ0;UTu4SgvcKOmkgmUknM!f(-ce7g>4RsCX zn=_yV?t&RjoHi=~kTdAY4(#->XbSJwifwo0?vF;;NyW&P)5F7rk zGNyAuB_4y*9z;Q2JMBif%n={lhf+g*6H8t58sU(7dwKnN!d$jcN_IBuc@`uPwP3`maD;xGKIZFIP*~=a@|_>ES;w5O(4?ekpElJViFO)6!-22@Mru~Xny5>T;ds9B+LiK||6Pruy6aUG7)2wz4xf8)1w~GzOiQcQ98nhKIWs6)?;!8rmaGyf<-; zpo?%U*mOoYP*zTHM?~BZ;e>vV|Cq2i5%*0)r>seO?yJwP5q)D;redGK<0>Rr4prM# z9(w%gqZAh|HhaQP!hAcel^YoItxs)JjH@PdE{12Ps7*><8h2pdad`Hh3r3Too7kah zU~Vx-Ef;bP5L$q=YttP&pVNwGxDlIFqQy`ebseWj>WfM*ffaxyJy!hibz^%zzp`-afLIit*_2>i}+epVUg2r)C;ha(2A*LI#> z^4o=|I3#l%p;5KI(rNh}_6Y7G3krZLl$MTD+|i})r_?wxN|{yUMUp-P$k+p|_>N$o z;CyA5Bl@9++l$Dmz^_(0_X_o{T~XVq zeL6)Zt--A6`dUhgC^n0`(f3rz?wV5l&OPnn`a&y-ULVYAfGAEi5KQZ0c?eD{(2l1E;>{F` zzD@)un?hO#Y0vU0 z(fDLJr872~C6N-=+aF1)A6ai7d9WijsN?ULbIGwswCu>lY7MY?i8~pY>0VNc9EDWF zJu+{xU4%1d=aJgt=M1vl8tX6sjiKjp@PlJ5o*$%au{jsCE^5V+XEo7@ma6G@?anw;lE*Z#xe5YtvTA3BPXD;Xi*7{+Kj zX9jtXEoy0dmFJF>8^eydR$_-HwlrlGke0t7YLb^F5qn z=*q&nl_-z-xj}oLkaW?bMmg3C^-&j0K7t041^1^@C8q)@CnOHlkYx_J);Mp=Sr6qM zLKCrnq{(7}5BQ0t`S1u1p8lwChRDK1jO-FYo7RiC^dQbxdfn1zMV=@j>FjE&V)`;& zA?ky~E253mv3|vd&eEeHNKc?N=33F>P2;(wa;rDK(r9Yao{rRtRFNiDx4IlX$Wf$0 zMu3gFJXf6h!m_B3k6@SdpXB#D_Md?s>2wHCr8y?Jr*bF>a)KOuFs`)@rZ}}<0yX;F zRw}5pmWRRP*2mr%nY)f~^pIHYYGkFvd$~^vX%3GTy5$m; zXv*lxIGN7CyZRI5`2g6nm}MqaF2v7Uo-1=mFu){h+6APi+wV*o0hmNb1T+Yy2Q&o zB{ZY{-ril_q$ir!P1B~VCr(p#>sM}>QlJ%TA{lg;T>iD9GsVl>*=NnIpTf^&UF)VlPaclom*bsCh zTFcCFftyG))?%PSDoq31`=ziU7FO;gERoV+l-Ju1V~)*9RZb0Y0fQ8YB>^^lA!-pf zbjh`{eR2X3d3G?pRp`jcT%VE-#xl#cTI1lUT+o9cSYolS7w4{YZtfaF>wPgHqlz`} z4^pVz%EoPOn>h}4lhKlxT?Q=$@iIwmtKU2{u};Dp8j94V%>2NBhv*t`iHKjic?Trb zB@94di?{;l$iSG&-ZqvQudMR_ifZ1R_mUSpDb$yTFVxe-^SJeL)ZgtrqMzP44P@?H zOJ(1tP}pPR9q{j+4kV419cAqdD&2hV@5DD!Lt4w)!A`wr(Syk=ZrpeWyJOTB2>BIp zDn)ORyxKLdfWOs|DrW_hzQ?H(FS&Z>b5(}0OJJnx_(#%>cM~J56_-wdA z-!ltcoM+PTG}IR<8Eu8!SRkoXM7i!7+n6=l@b1b?NRPqVt2E83Bgjc}Sklt({ysK1 zSzjguJ0H$PQ}pNOCI#T~2cYZs?9rwqAOcKo$T_VtFJx{!LH&7!*#r^H*lvTkn@}^9 z*~@!hpd@1i;kjO<4-LpRNccf@T7T7RlMHowawQkvwwcCa8;Xr2=}WVkJVU6Z35oh^ z=#A%vrM$(X5;k_i>fOn&F(krDZsfy;3_W-?Jxoa0W&MLMLzT`z31>L5PUEQZ1*L3u z-15{Co^0BG!67u%IrO;UqnKXpR@d|FNY?hI) zfGJtDO`+g4KP4n$5S=P#E>aTc5`Q`n7G-JW7n_n0ArHf(MUt2Qoaw%t5E3YzCM}d9 zYN7U2HrAYb^%yii*x~#_sMHJv8LbxWJ<1@rFyEt{Qr}LUp;iti4Pz!mhL6gj!j-kY z?u@F$^U!Cg?&5(x2?#wDCE}tTr%(VY*UpgI-*86DyU*r=W&o-q0>W8IK{F13L&off z$CTh02IgKrdbxsIDZWkmvh7y{uY@K`j>;lUAbgrvN|nB>83PQT6`u9Tw5L6n9LqUu zf|X1Si;sqTSU>C#Zw26C#3QxmPOp#~?5fU1N?45!pTMw)W6k$hJNU|$tRXa7@+Cl( zvKAT<-FKG%3Vwi|g_lVh`&#F3Z?})YlsN^ol%ES|NMA6;bDFBxOE=1q_HANa7`+^1 zrKbEwb-v`R6?FHFvmI(j#am&R9dsMhsr;qP6{}-Us8M!m!v;B|P;+s(5WZ77+%~O< zTw#9>bL9Msh_-NeOY~371Pk5AxGC6z6rhj*IA>YDYPsuokY;wRb0s`w``29?D~q+t zVe1vqk%dA0j~S*=x=-a9&IUCkqpp^J$47#??;8-#Y4GS44|qN?f12mJw~0(r+F6L? zpJ*0uea>JU$sfe7H~dBz8u8Dwj2crRQ5rM-4+AR~=CL`_4Hu4Y#q#f>sca*qPTwm` zUFlC#6GizpYnVB{Gz#72gB-(K6w{367NYeLC&mHKA}d5j#l1we@C*Gqst6!w#Y%J@ zvh=DLt6t0&|$Uch7w0M|KBM}vw0@n74)x!z8 zk~}nl>>f*b`EX-ufG=sF3KXWc%c4p1e}om7rX9~DAQ8oD!JRlf8p4c3f!cBxC0Pkz>Oq_k#?6x z$Ln5`z$N4*cZ&vKZkh$^2hy{05B|*Zc-u38sab6un`gh+cga@>UC_g@>@NxB#^1H< zFB8sw68nBkJmtT&b-CC4_lI780t0-2k~jYqVFW17oHY1xWo3Un^WWyohdbV2*t!xo z)Q$xN;E|<&Wd3cGh}IV%qALDRRsO8D*J6VB5g*vu+2v*W%&oUeyF?s-lZq423bMzI zak@{Uj6Iz2kB(@4vp-=QHq(odAwj3jq1YRd|t-a6TFq3XCdh+uv6|YsyF}UFgAe1$Z%bvVW zHf7MegEj0Tp6YL-{s#bl4*g6xpo;9J{?~=md3)4!AiyzFpoj5F6!X1I{;R;i8Rfm| zeacjc6DI999bzFZ5v}PTF8;B!t zzl-GCas+J<7Ej(B-J|q!z-Cf1u->%><_tD~K4}98VGNT~Q;*RHxV}rAFyMoY<78(F zFDnARUjIv-G#E~@<1ffO8;&D^RB7#y|9Mbb&-FpcWApj-IU7JGb^`w-0J%J@cJzH6 zZ9sn227LY+)4(I93?ECN4OP><_S4I}C)F1%-=%UD5@Z0hIox$X_E{4xlD*ahSi##s zb)&Mcm>!wfzDy(Ww4aEhrn`Er4%nql<{wrOV1RDGGx{fTT3#Th_<7&$t{Mu+??nQ+ zx+BGZqX*F@;k&%E5Yd4i{iS}pG8LKkF}?y6sD_#{PoSJI3E$w!*#T1IJJQAXwNPfr z?f&+7x^|qz#)RzIdi92Mfjv%8Amq`O|1nTO8V7O`KNvKyL8v6e`$S>)Dqy^EoLjSm zqiX^t#5j-#`GHdz0p;Kax|Nv@X7h2ht)4AeZ3L@U4>Jt23K(i$kt~1TJb0q6cfo3? zsgQRh{rfD{zJvEo#H7Nr1q8>Y9D(1V-~Jm$hDU6$yv2l3;QTSoAh7aBsFEWhey1HL z9R=+(Q^hQfqix8Ci#U!`!Q<^oT}V5^hD5OsWU1$?_f$sT(~L8t`J*TK>k7RcFFz3H zNvJ~o)m5C+72|lZg-pCN3VL_8F!bq4$G)tV#f>Z+M}33gCYB`e?M33f#L66}Dkvg1 zzx??Co2)#}zfHFmry9K2oiYhM(@G{O4g|UG5HJLDSO>zhTZuuV#fCDr$KRuYbxj4} zq|nvaf`zIBoSte;t3`m;0<%obs`u8$qI00m;$Ua| zX(7?V@!l(SL_KQ$S2VnvoSv+*vjGc*e<(=7_uZP_YTSxzknzyY-Zly_YroC_HL zT}qo_RuFqH4RfS9;oVR$>h%W+3na-hUm&h`)-vg1GxOU^_0moOjA zL;(hn@J?|4v|pPAtN z@feWu6Ql?KP2u5s3m=X_hh~#TkcgFawGRB%0{HcWfS>Z^%a_M7XIR@;pU+*aXr^}m z=KeH7SM}3E)-_7*7NUvM!iDUkE@6dP{4$K5NoV{mFYebEc6-XhX%rD;KX3JNRHcK32;Af{dH>2EY!SDGY#EY&Q@6MdS{h+k)%Zfwrmb9SIa*5B{n;KEx82|a`c@pg zHsgyp9(%+i>=5R3&I>4_0`D|YTSU-5o&aT?DJRz+!3nik)$-}u@@KY7!+MaT0!GVjSZsHRuj&IArii-nno#{UTDj{79;GSieUu z;RGjJX2pMaYh3zFeGT;GbtS3Crk;h|`6&~6)XwdBV&{qCi++1eu%(cZ8|R}6#|ccX z#hNBA^<%(uWI}OJ-Tfeb&ePUw)F8MK19e6ZpXlr7{#j&%m$-|U${=o*iwlqi4OLV! z?RAyc@KeLyqEvRm#r&pvQUMxUof_*hy_dC#zCf7X+nz;fsPiaQNglPNkEDRQ+`;~}})$MQq$UxpMj?l!Hg(@}gJ^DKBfz(Mu z0RZ9hWhCxB+cPJ7#3YtF>Y7o;($J@9T@$^*ATZZLEdO-R7>;kRo9w>7zK+u?#;Nok z`R=8MKMNc&#lCR^;H?Y2=I(95v!HK1&RKADK_ACQ5XCY3$l^quU(bi5DE!iuqKdI; z31mIQRx__GIl|Bz*h{q~0K?$PGbvdQRu;QZ3Wib(Etb3em+UbOphG2C+44#)UKPeP7@ryR825i!I193FM2)5{DRIY6U5dE^Xk9i6MBl=)<*!tLaZ!1Gw zPSWOwVQa@1uqe>or;F-ltB!Z00>V+i`Q%_c{0@Ms`KloGVy>EJ?)7&v9ImZOse z*1U4HIRA_9_gLB+&QYv>`4SfXnvPak>{6h>^&8je?U@i)VhH-OZ$8_(68|HDOCOJH z`LZ8AS!z5jojWb9W;X-No1)pGmXe~+UrwjcuPpKs)?$}pmzI{-UF)VcCJG9UmXGV) za!j4)6AE)uxA&!H&z$CBq}@H863!>4*U?aa-3*yGbYDqgfaPT@o9egfxiKwKjo#y_ zmPH+B_?Oaa3EQs7_iAvDG2xkH?X?Ct-oz)oPTL)cXLG4LGV{~++m8YcCL~Y4O@F01 zeK}J%iL-{@1j9xYIOqFf;1+o!G}%HhtESmvJ^Z1zCh$?yM-=zIFAG#Nu^FChY91b?4|$|9 z?yyl7R6D4dyFQLk{#L#4ak{4w8K?%EOx7^}bOIOiob$f8&bqGW0)J?Ic&qWFrIqfK z*af#bOWjExbGzaui#SMMW>=omqwS42_@kYlwT*#nd0^CiS-LEkK?q|x8KzlnSy<^b z&R09h)=e>vkSqRK?<$Ztu$4s3(iLboZ`F^bhuxWp=}@{uKdhQN86v7AU*@pra_Ks) zSTY}edB6*5$d9OhYVGP6jU!@DzPV?apsHu*j^@s1HI3~786kD>1gey1&z66_^RLN6 z zDDB%C!ji_dhF=7#waWR9D%-o&Po57&%!`T`z#0fhE`#4AJW-)N6Lotm$*8;^pz+Wk z_0ye81Gm*rsUxkg2AQnDHDB4HoMaoqsH~gbh`;{l93GTtwrhwZu;t#e9R28Kt;kq> z8^c*)`xG%(uR;2pAbNr9OIJ_@V``d|cv;%GAidaYv7yUGZ#EEg%e5EsEnOL{^=&Ra zFh@}`iY5CI@cI{HSf=wy;>r&BCrQ?7*;6&cxDe-T%e@w>T8|ixrx(v+Nsx3mz=Z-w zA$?@l*1Uhsn;*q#>NF}rLo#cJBom2B@p+rZ;$`ZxlX4z~{#-%=-+>e0T`}Cn>RrWa z?ROKs==!wx1&OQNYdx77q3I2h%iiTg4d?R$)zo$D*@~C?u>8Z$`d5QxXc2eExu&g2 zI6`9bi07~MI7{!zbfz%Y2LZ?1wq5+K*t|r zhJcraF2|5wVVs}YK_5C0X`?m)g zW)iNRC}s7nimP9T8jOf$JEq8SOOsYie+z#r?9^7uNL)Y8|0~@%4bOGlqJ2;M0rCA< zx}lVgH{`%Ya?;c-m4QY(<<}P=2xomh)GV)DC2>_;m(QD5BNR|^Of?>rq$)xnh@NEa z?H@Wh;yzp{MC|nXD~pCx5-RB$`souwU$C_Co9_Qa56^Ltj7dLYm`0K~&^M`Qr|?np z9OIVXF~NGs-FdZZ?oy9Lrr(l8%e+UoL`#T_@WWM*B%}bEPNv=ZdR2ypiVaQuK`LfwE;14FrD;VA-5+9A-H8}P^kr>w~ zydKU$#BJ)f1U5)zPoC*pByedDPFw)`^;^sYTQD6x{}%WB^&6XW z{&0HjEgHhMpLmJ(0yROh(qqP9+jqMCuaGv+YKqfl~Xm4pdC_F@XJzGRh(UnitX}ll^ z-*3Xd8Ch7f)i!;4yj}lg6F&S*h`b$mq=}zTJ3c+Myt1S+!N*Qdhg&E2Ne>L)Gtisn z9i?O;pULxGYgF`@aDl!5^#TaxQ$GU}4AoUI`5bhxYAPxeAY3-MgT`Rj>Nn%TNLT(^ z|JO2V*YpwVJIx5Oxyo^HFU{jEU{HzQ3;`sUf?W|p4MD@#`1QMs{^ciG z&Ks2vIe+iXWJUaE0&@`tp#J0VI+>xN07eKelWs?T1#9Z>2l5cyQ_Y-rebxWxBQ6p^ zICRJBCmp5!{t8%sM&NUw0qQy~!FVkeLWFZ>ZUln*@YxlOcFDavmU?Sh2;gBs4(>|V z4%A-gw8~3mb^u-^M}Y4|f{L=b0?6JXiy4h5pjxW4we|oU5=ya)5HfWK5TYwRqx(DS z;6qS$(0FvK2)u*oZGakc8o*+AoEd*gT5bO@2jaLdHoGN=%LL;u4aBt!DNW|S!X

0X#q*mX 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 literal 0 HcmV?d00001 From 0baf4e1b249ff03333da152022db18cf2ca05452 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Wed, 14 Mar 2018 19:48:05 +0800 Subject: [PATCH 23/75] update format --- doc/design/distributed_lookup_table_design.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md index bf959bd097..695a9831e2 100644 --- a/doc/design/distributed_lookup_table_design.md +++ b/doc/design/distributed_lookup_table_design.md @@ -41,17 +41,16 @@ All the operators above access the `lookup_table` directly in memory. If we chan ## TODO 1. Implement `distributed lookup table`, with service part and client part. The client should provide four interfaces: - - `Pull(ids) -> embedding_values` pull embedding_values according to ids. - - `Push(grad, update_method)` push `grad` to the distributed lookup table and update it to the parameter using `update_method `, this interface use is asynchronous. - - `Save()` save the model to a persistent file system, such as HDFS. - - `Load()` load the model from a persistent file system, such as HDFS. - - The details will be proposed in another PR. + - `Pull(ids) -> embedding_values` pull embedding_values according to ids. + - `Push(grad, update_method)` push `grad` to the distributed lookup table and update it to the parameter using `update_method `, this interface use is asynchronous. + - `Save()` save the model to a persistent file system, such as HDFS. + - `Load()` load the model from a persistent file system, such as HDFS. + The details will be proposed in another PR. 1. Design and implement `lookup_table_op` and `lookup_table_grad_op ` with distributed lookup table client. 1. Implement the Python wrapper for above ops, users can choose and config to use these ops. 1. The distributed Fluid should support this `distributed lookup table service` on kubernetes. 1. Implement a `distributed transpiler` that can change the program into a distributed one which will use the `distributed lookup table service`. ## Things need to be discussed -In the above design, the parameter update is done within `distributed lookup table service`, the interface is `Push(grad, update_method)`, this is different than the current design of PaddlePaddle Fluid, Currently, parameter update is done by Operators. So how should we impelement these update_method? +In the above design, the parameter update is done within `distributed lookup table service`, the interface is `Push(grad, update_method)`, this is different than the current design of PaddlePaddle Fluid. Currently, parameter update is done by Operators. How should we impelement these update_method? From 267ffc288f2ca44b6ea6b00aa7d93645daa725a4 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Wed, 14 Mar 2018 19:51:56 +0800 Subject: [PATCH 24/75] typo --- doc/design/distributed_lookup_table_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md index 695a9831e2..461b27a798 100644 --- a/doc/design/distributed_lookup_table_design.md +++ b/doc/design/distributed_lookup_table_design.md @@ -2,7 +2,7 @@ ## Background -Embeddings is a popular technique used in neural network to support applications such as search engines, advertising systems, and recommendation systems. +Embedding is a popular technique used in neural network to support applications such as search engines, advertising systems, and recommendation systems. Embeddings are stored in a lookup table (or hash table), that given a word id, returns the embedding (which is an array of numbers). From 4840c49b27276c0a54c9289e0bfe655c166224f5 Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Wed, 14 Mar 2018 01:08:09 -0700 Subject: [PATCH 25/75] Better timeline --- paddle/fluid/framework/executor.cc | 8 ++ paddle/fluid/operators/parallel_do_op.cc | 27 ++++--- paddle/fluid/platform/device_tracer.cc | 74 +++++++++++++------ paddle/fluid/platform/device_tracer.h | 37 ++++++---- paddle/fluid/platform/profiler.cc | 33 ++++++++- paddle/fluid/platform/profiler.h | 18 +++++ paddle/fluid/platform/profiler.proto | 7 +- .../fluid/tests/unittests/test_profiler.py | 18 ++++- tools/timeline.py | 33 +++++---- 9 files changed, 190 insertions(+), 65 deletions(-) diff --git a/paddle/fluid/framework/executor.cc b/paddle/fluid/framework/executor.cc index 5cae38b2a8..fb7c13d36d 100644 --- a/paddle/fluid/framework/executor.cc +++ b/paddle/fluid/framework/executor.cc @@ -25,6 +25,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/framework/reader.h" #include "paddle/fluid/platform/place.h" +#include "paddle/fluid/platform/profiler.h" DECLARE_bool(benchmark); DEFINE_bool(check_nan_inf, false, @@ -33,6 +34,11 @@ DEFINE_bool(check_nan_inf, false, namespace paddle { namespace framework { +namespace { +// block id starts from 0. This id is used to represent the codeblock +// wrapping the first block 0. +int kProgramId = -1; +} // namespace struct ExecutorPrepareContext { ExecutorPrepareContext(const framework::ProgramDesc& prog, size_t block_id) @@ -94,6 +100,7 @@ static void CheckTensorNANOrInf(const std::string& name, void Executor::Run(const ProgramDesc& pdesc, Scope* scope, int block_id, bool create_local_scope, bool create_vars) { + platform::RecordBlock b(block_id); auto* ctx = Prepare(pdesc, block_id); RunPreparedContext(ctx, scope, create_local_scope, create_vars); delete ctx; @@ -184,6 +191,7 @@ void Executor::Run(const ProgramDesc& program, Scope* scope, std::map& fetch_targets, const std::string& feed_holder_name, const std::string& fetch_holder_name) { + platform::RecordBlock b(kProgramId); auto* copy_program = new ProgramDesc(program); auto* global_block = copy_program->MutableBlock(0); diff --git a/paddle/fluid/operators/parallel_do_op.cc b/paddle/fluid/operators/parallel_do_op.cc index bf4d0476df..4001b9a130 100644 --- a/paddle/fluid/operators/parallel_do_op.cc +++ b/paddle/fluid/operators/parallel_do_op.cc @@ -18,6 +18,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/framework/threadpool.h" #include "paddle/fluid/operators/detail/safe_ref.h" +#include "paddle/fluid/platform/profiler.h" namespace paddle { namespace operators { @@ -158,11 +159,14 @@ class ParallelDoOp : public framework::OperatorBase { auto &place = places[place_idx]; auto *cur_scope = sub_scopes[place_idx]; - workers.emplace_back(framework::Async([program, cur_scope, place, block] { - framework::Executor executor(place); - executor.Run(*program, cur_scope, block->ID(), - false /*create_local_scope*/); - })); + workers.emplace_back( + framework::Async([program, cur_scope, place, block, place_idx] { + // Give the thread an id to distinguish parallel block with same id. + platform::RecordThread rt(static_cast(place_idx) + 1); + framework::Executor executor(place); + executor.Run(*program, cur_scope, block->ID(), + false /*create_local_scope*/); + })); } for (auto &worker : workers) { worker.wait(); @@ -234,11 +238,14 @@ class ParallelDoGradOp : public framework::OperatorBase { auto *cur_scope = sub_scopes[i]; // execute - workers.emplace_back(framework::Async([program, cur_scope, place, block] { - framework::Executor executor(place); - executor.Run(*program, cur_scope, block->ID(), - false /*create_local_scope*/); - })); + workers.emplace_back( + framework::Async([program, cur_scope, place, block, i] { + // Give the thread an id to distinguish parallel block with same id. + platform::RecordThread rt(static_cast(i) + 1); + framework::Executor executor(place); + executor.Run(*program, cur_scope, block->ID(), + false /*create_local_scope*/); + })); } for (auto &worker : workers) { worker.wait(); diff --git a/paddle/fluid/platform/device_tracer.cc b/paddle/fluid/platform/device_tracer.cc index 78e00d5420..3b4437f576 100644 --- a/paddle/fluid/platform/device_tracer.cc +++ b/paddle/fluid/platform/device_tracer.cc @@ -26,8 +26,14 @@ limitations under the License. */ namespace paddle { namespace platform { namespace { +// Current thread's id. Note, we don't distinguish nested threads +// for now. +thread_local int cur_thread_id = 0; +// Tracking the nested block stacks of each thread. +thread_local std::deque block_id_stack; +// Tracking the nested event stacks. +thread_local std::deque annotation_stack; -thread_local const char *cur_annotation = nullptr; std::once_flag tracer_once_flag; DeviceTracer *tracer = nullptr; } // namespace @@ -191,19 +197,19 @@ class DeviceTracerImpl : public DeviceTracer { correlations_[id] = anno; } - void AddCPURecords(const char *anno, uint64_t start_ns, uint64_t end_ns) { - if (!anno) { - // TODO(panyx0718): Currently, it doesn't support nested situation - // Up-level can be cleared by low-level and therefore get nullptr - // here. + void AddCPURecords(const std::string &anno, uint64_t start_ns, + uint64_t end_ns, int64_t device_id, int64_t thread_id) { + if (anno.empty()) { + VLOG(1) << "Empty timeline annotation."; return; } std::lock_guard l(trace_mu_); - cpu_records_.push_back(CPURecord{anno, start_ns, end_ns, 0}); + cpu_records_.push_back( + CPURecord{anno, start_ns, end_ns, device_id, thread_id}); } void AddMemRecords(const std::string &name, uint64_t start_ns, - uint64_t end_ns, uint32_t device_id, uint32_t stream_id, + uint64_t end_ns, int64_t device_id, int64_t stream_id, uint32_t correlation_id, uint64_t bytes) { // 0 means timestamp information could not be collected for the kernel. if (start_ns == 0 || end_ns == 0) { @@ -215,8 +221,8 @@ class DeviceTracerImpl : public DeviceTracer { stream_id, correlation_id, bytes}); } - void AddKernelRecords(uint64_t start, uint64_t end, uint32_t device_id, - uint32_t stream_id, uint32_t correlation_id) { + void AddKernelRecords(uint64_t start, uint64_t end, int64_t device_id, + int64_t stream_id, uint32_t correlation_id) { // 0 means timestamp information could not be collected for the kernel. if (start == 0 || end == 0) { VLOG(3) << correlation_id << " cannot be traced"; @@ -270,27 +276,30 @@ class DeviceTracerImpl : public DeviceTracer { continue; } auto *event = profile_pb.add_events(); + event->set_type(proto::Event::GPUKernel); event->set_name(correlations_.at(r.correlation_id)); event->set_start_ns(r.start_ns); event->set_end_ns(r.end_ns); - event->set_stream_id(r.stream_id); + event->set_sub_device_id(r.stream_id); event->set_device_id(r.device_id); } for (const CPURecord &r : cpu_records_) { auto *event = profile_pb.add_events(); + event->set_type(proto::Event::CPU); event->set_name(r.name); event->set_start_ns(r.start_ns); event->set_end_ns(r.end_ns); - event->set_stream_id(r.thread_id); - event->set_device_id(-1); + event->set_sub_device_id(r.thread_id); + event->set_device_id(r.device_id); } for (const MemRecord &r : mem_records_) { auto *event = profile_pb.add_events(); + event->set_type(proto::Event::GPUKernel); event->set_name(r.name); event->set_start_ns(r.start_ns); event->set_end_ns(r.end_ns); - event->set_stream_id(r.stream_id); + event->set_sub_device_id(r.stream_id); event->set_device_id(r.device_id); event->mutable_memcopy()->set_bytes(r.bytes); } @@ -323,8 +332,9 @@ class DeviceTracerImpl : public DeviceTracer { if ((domain == CUPTI_CB_DOMAIN_DRIVER_API) && (cbid == CUPTI_DRIVER_TRACE_CBID_cuLaunchKernel)) { if (cbInfo->callbackSite == CUPTI_API_ENTER) { - const std::string anno = - cur_annotation ? cur_annotation : cbInfo->symbolName; + const std::string anno = !annotation_stack.empty() + ? annotation_stack.back() + : cbInfo->symbolName; tracer->AddAnnotation(cbInfo->correlationId, anno); } } else { @@ -351,14 +361,15 @@ class DeviceTracerDummy : public DeviceTracer { void AddAnnotation(uint64_t id, const std::string &anno) {} - void AddCPURecords(const char *anno, uint64_t start_ns, uint64_t end_ns) {} + void AddCPURecords(const std::string &anno, uint64_t start_ns, + uint64_t end_ns, int64_t device_id, int64_t thread_id) {} void AddMemRecords(const std::string &name, uint64_t start_ns, - uint64_t end_ns, uint32_t device_id, uint32_t stream_id, + uint64_t end_ns, int64_t device_id, int64_t stream_id, uint32_t correlation_id, uint64_t bytes) {} - void AddKernelRecords(uint64_t start, uint64_t end, uint32_t device_id, - uint32_t stream_id, uint32_t correlation_id) {} + void AddKernelRecords(uint64_t start, uint64_t end, int64_t device_id, + int64_t stream_id, uint32_t correlation_id) {} bool IsEnabled() { return false; } @@ -384,11 +395,28 @@ DeviceTracer *GetDeviceTracer() { return tracer; } -void SetCurAnnotation(const char *anno) { cur_annotation = anno; } +void SetCurAnnotation(const std::string &anno) { + annotation_stack.push_back(anno); +} + +void ClearCurAnnotation() { annotation_stack.pop_back(); } + +std::string CurAnnotation() { + if (annotation_stack.empty()) return ""; + return annotation_stack.back(); +} + +void SetCurBlock(int block_id) { block_id_stack.push_back(block_id); } + +void ClearCurBlock() { block_id_stack.pop_back(); } + +int BlockDepth() { return block_id_stack.size(); } + +void SetCurThread(int thread_id) { cur_thread_id = thread_id; } -void ClearCurAnnotation() { cur_annotation = nullptr; } +void ClearCurThread() { cur_thread_id = 0; } -const char *CurAnnotation() { return cur_annotation; } +int CurThread() { return cur_thread_id; } } // namespace platform } // namespace paddle diff --git a/paddle/fluid/platform/device_tracer.h b/paddle/fluid/platform/device_tracer.h index 23f7cdbdff..deb3d23f78 100644 --- a/paddle/fluid/platform/device_tracer.h +++ b/paddle/fluid/platform/device_tracer.h @@ -32,22 +32,23 @@ class DeviceTracer { struct KernelRecord { uint64_t start_ns; uint64_t end_ns; - uint32_t device_id; - uint32_t stream_id; + int64_t device_id; + int64_t stream_id; uint32_t correlation_id; }; struct CPURecord { std::string name; uint64_t start_ns; uint64_t end_ns; - uint64_t thread_id; + int64_t device_id; + int64_t thread_id; }; struct MemRecord { std::string name; uint64_t start_ns; uint64_t end_ns; - uint32_t device_id; - uint32_t stream_id; + int64_t device_id; + int64_t stream_id; uint32_t correlation_id; uint64_t bytes; }; @@ -64,18 +65,18 @@ class DeviceTracer { virtual void AddAnnotation(uint64_t id, const std::string& anno) = 0; virtual void AddMemRecords(const std::string& name, uint64_t start_ns, - uint64_t end_ns, uint32_t device_id, - uint32_t stream_id, uint32_t correlation_id, + uint64_t end_ns, int64_t device_id, + int64_t stream_id, uint32_t correlation_id, uint64_t bytes) = 0; - virtual void AddCPURecords(const char* anno, uint64_t start_ns, - uint64_t end_ns) = 0; + virtual void AddCPURecords(const std::string& anno, uint64_t start_ns, + uint64_t end_ns, int64_t device_id, + int64_t thread_id) = 0; // Add a cuda kernel stats. `correlation_id` will be mapped to annotation // added before for human readability. - virtual void AddKernelRecords(uint64_t start, uint64_t end, - uint32_t device_id, uint32_t stream_id, - uint32_t correlation_id) = 0; + virtual void AddKernelRecords(uint64_t start, uint64_t end, int64_t device_id, + int64_t stream_id, uint32_t correlation_id) = 0; // Generate a proto after done (Disabled). virtual proto::Profile GenProfile(const std::string& profile_path) = 0; @@ -87,10 +88,18 @@ class DeviceTracer { DeviceTracer* GetDeviceTracer(); // Set a name for the cuda kernel operation being launched by the thread. -void SetCurAnnotation(const char* anno); +void SetCurAnnotation(const std::string& anno); // Clear the name after the operation is done. void ClearCurAnnotation(); // Current name of the operation being run in the thread. -const char* CurAnnotation(); +std::string CurAnnotation(); + +void SetCurBlock(int block_id); +void ClearCurBlock(); +int BlockDepth(); + +void SetCurThread(int thread_id); +void ClearCurThread(); +int CurThread(); } // namespace platform } // namespace paddle diff --git a/paddle/fluid/platform/profiler.cc b/paddle/fluid/platform/profiler.cc index 28ef3e04b1..b25206ff35 100644 --- a/paddle/fluid/platform/profiler.cc +++ b/paddle/fluid/platform/profiler.cc @@ -147,19 +147,48 @@ RecordEvent::RecordEvent(const std::string& name, const DeviceContext* dev_ctx) name_ = name; PushEvent(name_, dev_ctx_); // Maybe need the same push/pop behavior. - SetCurAnnotation(name_.c_str()); + SetCurAnnotation(name_); } RecordEvent::~RecordEvent() { if (g_state == ProfilerState::kDisabled) return; DeviceTracer* tracer = GetDeviceTracer(); if (tracer) { - tracer->AddCPURecords(CurAnnotation(), start_ns_, PosixInNsec()); + tracer->AddCPURecords(CurAnnotation(), start_ns_, PosixInNsec(), + BlockDepth(), CurThread()); } ClearCurAnnotation(); PopEvent(name_, dev_ctx_); } +RecordBlock::RecordBlock(int block_id) : start_ns_(PosixInNsec()) { + if (g_state == ProfilerState::kDisabled) return; + SetCurBlock(block_id); + name_ = string::Sprintf("block_%d", block_id); +} + +RecordBlock::~RecordBlock() { + if (g_state == ProfilerState::kDisabled) return; + DeviceTracer* tracer = GetDeviceTracer(); + if (tracer) { + // We try to put all blocks at the same nested depth in the + // same timeline lane. and distinguish the using thread_id. + tracer->AddCPURecords(name_, start_ns_, PosixInNsec(), BlockDepth(), + CurThread()); + } + ClearCurBlock(); +} + +RecordThread::RecordThread(int thread_id) { + if (g_state == ProfilerState::kDisabled) return; + SetCurThread(thread_id); +} + +RecordThread::~RecordThread() { + if (g_state == ProfilerState::kDisabled) return; + ClearCurThread(); +} + void EnableProfiler(ProfilerState state) { PADDLE_ENFORCE(state != ProfilerState::kDisabled, "Can't enbale profling, since the input state is ", diff --git a/paddle/fluid/platform/profiler.h b/paddle/fluid/platform/profiler.h index 3542ce6cda..030458f70a 100644 --- a/paddle/fluid/platform/profiler.h +++ b/paddle/fluid/platform/profiler.h @@ -118,6 +118,24 @@ struct RecordEvent { std::string full_name_; }; +struct RecordBlock { + explicit RecordBlock(int block_id); + ~RecordBlock(); + + private: + std::string name_; + uint64_t start_ns_; + int block_id_; +}; + +struct RecordThread { + explicit RecordThread(int thread_id); + ~RecordThread(); + + private: + uint64_t start_ns_; +}; + // Return the event list of all threads. Assumed the returned value calls // event_lists, event_lists[i][j] represents the j-th Event of i-th thread. std::vector> GetAllEvents(); diff --git a/paddle/fluid/platform/profiler.proto b/paddle/fluid/platform/profiler.proto index 71b5a9b12e..7b42aa785e 100644 --- a/paddle/fluid/platform/profiler.proto +++ b/paddle/fluid/platform/profiler.proto @@ -18,12 +18,17 @@ package paddle.platform.proto; message MemCopy { optional uint64 bytes = 1; } message Event { + enum EventType { + CPU = 0; + GPUKernel = 1; + } + optional EventType type = 8; optional string name = 1; optional uint64 start_ns = 2; optional uint64 end_ns = 3; // When positive, it represents gpu id. When -1, it represents CPU. optional int64 device_id = 5; - optional uint32 stream_id = 6; + optional int64 sub_device_id = 6; optional MemCopy memcopy = 7; } diff --git a/python/paddle/fluid/tests/unittests/test_profiler.py b/python/paddle/fluid/tests/unittests/test_profiler.py index 1da6b94eea..cf6fe14a86 100644 --- a/python/paddle/fluid/tests/unittests/test_profiler.py +++ b/python/paddle/fluid/tests/unittests/test_profiler.py @@ -31,8 +31,22 @@ class TestProfiler(unittest.TestCase): with fluid.program_guard(main_program, startup_program): image = fluid.layers.data(name='x', shape=[784], dtype='float32') - hidden1 = fluid.layers.fc(input=image, size=128, act='relu') - hidden2 = fluid.layers.fc(input=hidden1, size=64, act='relu') + hidden1 = fluid.layers.fc(input=image, size=64, act='relu') + i = layers.zeros(shape=[1], dtype='int64') + counter = fluid.layers.zeros( + shape=[1], dtype='int64', force_cpu=True) + until = layers.fill_constant([1], dtype='int64', value=10) + data_arr = layers.array_write(hidden1, i) + cond = fluid.layers.less_than(x=counter, y=until) + while_op = fluid.layers.While(cond=cond) + with while_op.block(): + hidden_n = fluid.layers.fc(input=hidden1, size=64, act='relu') + layers.array_write(hidden_n, i, data_arr) + fluid.layers.increment(x=counter, value=1, in_place=True) + layers.less_than(x=counter, y=until, cond=cond) + + hidden_n = layers.array_read(data_arr, i) + hidden2 = fluid.layers.fc(input=hidden_n, size=64, act='relu') predict = fluid.layers.fc(input=hidden2, size=10, act='softmax') label = fluid.layers.data(name='y', shape=[1], dtype='int64') cost = fluid.layers.cross_entropy(input=predict, label=label) diff --git a/tools/timeline.py b/tools/timeline.py index ee83a1baec..f4083c824e 100644 --- a/tools/timeline.py +++ b/tools/timeline.py @@ -121,27 +121,34 @@ class Timeline(object): def _allocate_pids(self): for event in self._profile_pb.events: - if event.device_id not in self._devices: - pid = self._allocate_pid() - self._devices[event.device_id] = pid - if event.device_id >= 0: - self._chrome_trace.emit_pid("gpu:%s:stream:%d" % - (pid, event.stream_id), pid) - elif event.device_id == -1: - self._chrome_trace.emit_pid("cpu:thread_hash:%d" % - event.stream_id, pid) + if event.type == profiler_pb2.Event.CPU: + if (event.device_id, "CPU") not in self._devices: + pid = self._allocate_pid() + self._devices[(event.device_id, "CPU")] = pid + self._chrome_trace.emit_pid("cpu:block:%d" % + (event.device_id), pid) + elif event.type == profiler_pb2.Event.GPUKernel: + if (event.device_id, "GPUKernel") not in self._devices: + pid = self._allocate_pid() + self._devices[(event.device_id, "GPUKernel")] = pid + self._chrome_trace.emit_pid("gpu:%d" % (event.device_id), + pid) def _allocate_events(self): for event in self._profile_pb.events: - pid = self._devices[event.device_id] + if event.type == profiler_pb2.Event.CPU: + type = "CPU" + elif event.type == profiler_pb2.Event.GPUKernel: + type = "GPUKernel" + pid = self._devices[(event.device_id, type)] args = {'name': event.name} if event.memcopy.bytes > 0: args = {'mem_bytes': event.memcopy.bytes} # TODO(panyx0718): Chrome tracing only handles ms. However, some # ops takes micro-seconds. Hence, we keep the ns here. - self._chrome_trace.emit_region(event.start_ns, - (event.end_ns - event.start_ns) / - 1.0, pid, 0, 'Op', event.name, args) + self._chrome_trace.emit_region( + event.start_ns, (event.end_ns - event.start_ns) / 1.0, pid, + event.sub_device_id, 'Op', event.name, args) def generate_chrome_trace(self): self._allocate_pids() From 90afbd28564d599b8fbd24b729137caa23f22b63 Mon Sep 17 00:00:00 2001 From: Yibing Liu Date: Wed, 14 Mar 2018 05:39:12 -0700 Subject: [PATCH 26/75] Move back operator's event to RunImpl() --- paddle/fluid/framework/operator.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/framework/operator.cc b/paddle/fluid/framework/operator.cc index 1dddfcdd2e..b39a1164db 100644 --- a/paddle/fluid/framework/operator.cc +++ b/paddle/fluid/framework/operator.cc @@ -74,9 +74,6 @@ void OperatorBase::Run(const Scope& scope, const platform::Place& place) { platform::SetDeviceId(dev_id); #endif } - // profile - auto* dev_ctx = platform::DeviceContextPool::Instance().Get(place); - platform::RecordEvent record_event(Type(), dev_ctx); RunImpl(scope, place); } @@ -485,6 +482,10 @@ void OperatorWithKernel::RunImpl(const Scope& scope, this->InferShape(&infer_shape_ctx); platform::DeviceContextPool& pool = platform::DeviceContextPool::Instance(); auto* dev_ctx = pool.Get(place); + + // For profiling, don't move out of this function because that will result + // in the failure of multi-GPU profiling. + platform::RecordEvent record_event(Type(), dev_ctx); // check if op[type] has kernel registered. auto& all_op_kernels = AllOpKernels(); auto kernels_iter = all_op_kernels.find(type_); From 1a9f4e55e7f771757ea6e4dcf7b0c88d38567577 Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Wed, 14 Mar 2018 21:09:20 +0800 Subject: [PATCH 27/75] update reader doc --- doc/design/cpp_data_feeding.md | 97 +++++++++++++++++++++----- doc/design/images/multiple_reader.pdf | Bin 0 -> 38906 bytes doc/design/images/readers.pdf | Bin 0 -> 270095 bytes 3 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 doc/design/images/multiple_reader.pdf create mode 100644 doc/design/images/readers.pdf diff --git a/doc/design/cpp_data_feeding.md b/doc/design/cpp_data_feeding.md index c6e59c264c..0d2b571d1e 100644 --- a/doc/design/cpp_data_feeding.md +++ b/doc/design/cpp_data_feeding.md @@ -2,11 +2,15 @@ While using Paddle V2 API for training, data feeding completely depends on the Python code. To get rid of the Python environment and achieve the goal of "wrapping the whole training by a while loop op" in Paddle Fluid, a C++ data feeding mechanism is required. -In this document we show the fundamental design of a C++ data feeding process, which includes data reading, shuffling and batching. +In this document, we show the fundamental design of a C++ data feeding process, which includes data reading, shuffling and batching. + +## Overview + +![](images/readers.pdf) ## Reader -In order to handle the above mentioned problem, a new concept called 'Reader' is introduced. `Reader` is a series of inherited classes which can be held by our `Variable` and they are used to read or process file data. +In order to handle the above-mentioned problem, a new concept called 'Reader' is introduced. `Reader` is a series of inherited classes which can be held by our `Variable` and they are used to read or process file data. ### `ReaderBase` @@ -26,7 +30,7 @@ class ReaderBase { // Reinitializes the reader and read the file from the beginning. virtual void ReInit() = 0; - virtual ~ReaderBase() {} + virtual ~ReaderBase(); }; ``` @@ -37,24 +41,21 @@ class ReaderBase { ```cpp class FileReader : public ReaderBase { public: - explicit FileReader(const std::vector& shapes) : shapes_(shapes) {} - - void ReadNext(std::vector* out) override final { - ReadNextImpl(out); - CheckShapes(out); - } + explicit FileReader(const std::vector& dims); - virtual void ReadNextImpl(std::vector* out) = 0; + void ReadNext(std::vector* out) override; protected: - // Checks whether the out shapes is consistent with shapes_ - CheckShape(const std::vector* out); + virtual void ReadNextImpl(std::vector* out) = 0; - std::vector shapes_; + private: + std::vector dims_; }; ``` -A file reader binds with a single file, and reads one instance of data from the file at a time. Each type of file reader shall implement its own `ReadNextImpl()`, `HasNext()` and `ReInit()`. +A file reader binds with a single file and reads one instance of data from the file at a time. Each type of file reader shall implement its own `ReadNextImpl()`, `HasNext()` and `ReInit()`. + +The `ReadNextImpl()` is invoked by `ReadNext()`. Besides invoking `ReadNextImpl()`, `ReadNext()` is also in charge of checking the output, making sure that each shape of `LoDTensor` in `*out` is consistent with the one in `dims_`. ### DecoratedReader @@ -63,12 +64,14 @@ A decorated reader takes another reader(both file reader and decorated reader ar ```cpp class DecoratedReader : public ReaderBase { public: - explicit DecoratedReader(ReaderBase* reader) : reader_(reader) { + explicit DecoratedReader(ReaderBase* reader) : ReaderBase(), reader_(reader) { PADDLE_ENFORCE_NOT_NULL(reader_); } void ReInit() override { reader_->ReInit(); } + bool HasNext() const override { return reader_->HasNext(); } + protected: ReaderBase* reader_; }; @@ -76,10 +79,19 @@ class DecoratedReader : public ReaderBase { All the `FileReader` and `DecoratedReader` share exactly the same interfaces as defined in `ReaderBase`. So they can be decorated for more than one time: We can **shuffle** a reader's outputs and then **batch** the shuffle outputs. The interface consistency also allows related ops use readers without knowing what they are exactly. -### ThreadedReader +### MultipleReader +All `FileReader` binds with a single file and are single-threaded. However, sometimes we need to read data from more than one file. In this case, it's not enough to only have `FileReader` and `DecoratedReader`. -### `ReaderHolder` +So `MultipleReader` is introduced. It is also derived from `ReaderBase`. A `MultipleReader` holds several prefetching `FileReaders` and these readers run concurrently. Another pivotal part of a `MultipleReader` is a buffer channel. The channel collects data yield by all prefetching readers and makes subsequent OPs or decorated readers be able to fetch data without concerning about multiple readers scheduling. + +![](images/multiple_reader.pdf) + +This graph shows how a `MultipleReader` works with three prefetching file readers and two GPUs. There is a queue of files which are going to be read. Each time when a prefetching file reader is free(complete reading from one file), it fetches a new file from the queue. Each prefetching file reader runs in a separated prefetch thread and dumps their outputs to the same channel. + +To the subsequent two decorated readers, the `MultipleReader` is **a single reader**. They don't need to concern about how prefetch readers are scheduled. They only need to invoke `MultipleReader::ReadNext()` to get the next data from the buffer channel. + +### ReaderHolder Different readers belong to different class types. This leads to a problem: How can we drop them into `Variable`s and fetch them out by a unified method? For example, if a Variable holds a `BatchReader`, we can not get it by the following code: @@ -101,10 +113,57 @@ To solve this problem, we introduce `ReaderHolder` as a wrapper. It acts as an e To create and invoke readers, some new ops are introduced: -### `CreateReaderOp` +### CreateReaderOp Each reader has its creation op. File readers' creation ops have no input and yield the created file reader as its output. Decorated readers' creation ops take the underlying readers as inputs and then yield new decorated readers. -### `ReadOp` +However, direct usage of file readers' creation ops is not recommended because a file reader can only read one file via a single thread. Using `OpenFilesOp` is a better choice. + +### OpenFilesOp + +The `OpenFilesOp` is the creation op of `MultipleReader`. It takes no input but requires a list of file names as one of its attributes. The newly created `MultipleReader` then creates corresponding prefetching readers according to file formats. + +### HasNextOp + +`HasNextOp` is used to check whether the next data batch exists via the reader's `HasNext()` interface. + +### ResetOp + +`ResetOp` is used to reset a reader via its `ReInit()` interface. + +### ReadOp A reader is only a Variable. It cannot trigger the reading process by itself. So we add the `ReadOp` to execute it. A `ReadOp` takes a reader Variable as its input. Each time it runs, it invokes the reader‘s `ReadNext()` function and gets a new batch of data(or only one instance of data, if we use file reader directly). The output data of a reader are in the form of `std::vector`, so the `ReadOp` also needs to split the vector and move LoDTensors to their respective output Variables. + +## Program with Readers + +A `Program` holds readers as its persistable variables. These variables are created by `CreateReaderOp` or `OpenFilesOp`. Obviously, these ops shall run only once. So they shall be settled in the `startup_program`. `HasNextOp`, `ResetOp` and `ReadOp` are required by training loop, so they shall be in the `main_program`. + +The ops of a `startup_program` with readers would be like this: + +``` +multiple_reader = open_files_op(...) +batch_reader = create_batch_reader_op(multiple_reader) +double_buffer_reader = create_double_buffer_op(batch_reader) +... (other initializers) +``` + +The forwarding ops of the corresponding `main_program` would be like this: + +``` +while_op { + has_next = has_next_op(double_buffer_reader) + if_else_op(has_next) { + batch_data = read_op(double_buffer_reader) + ... (subsequent training ops) + } else { + reset_op(double_buffer_reader) + } +} +``` + +Two things are worth mentioning when considering these two programs: + +1. The multiple\_reader is the batch\_reader's underlying reader, and the batch\_reader is the double\_buffer\_reader's underlying reader. `read_op`, `has_next_op` and other reader related ops will only invoke the top-most reader. In this case, it's the double\_buffer\_reader. + +2. All readers exist in both `startup_program` and `main_program`. And they are persistable. diff --git a/doc/design/images/multiple_reader.pdf b/doc/design/images/multiple_reader.pdf new file mode 100644 index 0000000000000000000000000000000000000000..61d01617cbb30505fe3da4136f50d3ee13acd61d GIT binary patch literal 38906 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

$ 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 literal 0 HcmV?d00001 diff --git a/doc/design/images/readers.pdf b/doc/design/images/readers.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e2c1988cbd15765cc62605b2b2a7038f2d995178 GIT binary patch literal 270095 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 _Pe4>rO|@sS%=u^b?)CEl7hte|5;=`g&I9 zDYAie$IfqMJ<-yjdegFAy8FR7Cphjh@Ee3^sxztMq|11?!{Bk;HLfsGv4eKwrjy@} zHQ79h2sb%hf9wFMe85%Y?xPBcKhSbO6LT<-J-_VS*zuc1Ks`Ye3sy{b0;h$wG2GsA%Wy6u2z-w7lRA_!oL>-FF*wEY;9{i!xE((rEo_PsA|J&>)`Uh zY<{s;e>j%+4Ca?dtj9y2yIYuK1sEzb#}*b{QDgYAA5aLC5~)Iz+3(ZxE1O68$IOL1 zCRgFA30%WjSmx90$`7KSJNcYt$-m0@l{bAc`cX?JIqt}u!*>P#l#j`%#EH@)kO1+8 zB^1_KcQ0i2c%FG32~u~`ClIw2osb!1jXkv&D?XBVdq8T+ zR_H5Re!l1*>ONm&9{?=c&>PCCZw+7(&4=0N?x%ad{Cq3kxnnR2QUG^7sR@7PKd2*5 z-Qk$aeO;&ScE5rZ;6_4&7iZPW>Qf7SaP2M5xXunY6ixJebWQm;$F286YHManbA80Z z|0)AB^f~-igXT77<5yd2A@^r!G51n!++L3J@cL?;-rp_#otN-iT;&9H?#JJHPQ;r> z@QU$~qi=c!{#rUyhLpYh+`DgT32|*=K}4=Tt^Z1{rdO|NtkfEDsPG_0C@0AR_A1CM~56(LDKdpV!0+O?Eq+9yOdnf)?t7Y(3SSMpZ zxGRhcC4i14(Aic5*1TnXN1px&W}mhN8C~-mxG(G*oL4`Y6T1Iv#TenXAk^IaYSL2{ z{e_Cw*I#dNAm{cDk%&o8_?;o>(Lg!6Adr{kOXUI&D3GD7P#H>FMjG4 z9q@x4=`R?j<=TL46oe4HV+7FoxR-@^J zJ8SA2<%rO<9=3#a$%vPU%TU!`x7Qqk`s)_HM?(_3RHXWaw(8X7pSK6XIKTBl4*|FO z7G2N&$b;*z0x<@68B%;%{oRPKTWVvIU)wpljk`DpJ?8l>A`Pt1DfGQQScQ396&Z@v zoT2p(GI$GE76c`OTvt&VhcDiHO{~G`jLFVea>thkT0Z(p!I|nipQqIQsa)T)in2vD zM6RSfN$lj4jsim+j0_U5SH+81G8AkZ%0DhGyt`wha^6e` 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

nAW_ZcX&!rb-q>kQ55 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%0A*VWRAp~>m`d;2U&ZvctE7#OU-qfVV$ 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 f#LWM>hv~-A$+KbnCtWanfBkduqbivj*GWKZr6 literal 0 HcmV?d00001 From ebde3b1a0a6ffeb8c8898e69c240a7895b1f01fd Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Tue, 13 Mar 2018 23:01:44 -0700 Subject: [PATCH 28/75] Reproduce profiler failure on multi-gpu. --- .../fluid/tests/unittests/test_parallel_op.py | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/python/paddle/fluid/tests/unittests/test_parallel_op.py b/python/paddle/fluid/tests/unittests/test_parallel_op.py index 1a7551c57b..79bea148f9 100644 --- a/python/paddle/fluid/tests/unittests/test_parallel_op.py +++ b/python/paddle/fluid/tests/unittests/test_parallel_op.py @@ -15,6 +15,7 @@ import unittest import paddle.fluid as fluid +import paddle.fluid.profiler as profiler import numpy @@ -60,20 +61,23 @@ class BaseParallelForTest(unittest.TestCase): feed=feed, fetch=fetch, place=gpu, - use_parallel=False) + use_parallel=False, + use_gpu=True) result_gpu_parallel = self._run_test_impl_( callback=callback, feed=feed, fetch=fetch, place=gpu, - use_parallel=True) + use_parallel=True, + use_gpu=True) result_gpu_nccl = self._run_test_impl_( callback=callback, feed=feed, fetch=fetch, place=gpu, use_parallel=True, - use_nccl=True) + use_nccl=True, + use_gpu=True) self._assert_same_(fetch, result_cpu, result_cpu_parallel, result_gpu, result_gpu_parallel, result_gpu_nccl) else: @@ -85,7 +89,8 @@ class BaseParallelForTest(unittest.TestCase): fetch, place, use_parallel=False, - use_nccl=False): + use_nccl=False, + use_gpu=False): """ Run a single test, returns the fetch values Args: @@ -132,7 +137,12 @@ class BaseParallelForTest(unittest.TestCase): exe = fluid.Executor(place) exe.run(startup) - return exe.run(main, feed=feed, fetch_list=fetch) + if use_gpu: + profile_type = 'GPU' + else: + profile_type = 'CPU' + with profiler.profiler(profile_type, 'total', '/tmp/profiler'): + return exe.run(main, feed=feed, fetch_list=fetch) def _assert_same_(self, fetch, *args): """ From c1234c8de52a25d17c44d602a80f29caff7dcf48 Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Wed, 14 Mar 2018 23:25:52 +0800 Subject: [PATCH 29/75] replace pdf images with png images --- doc/design/cpp_data_feeding.md | 4 ++-- doc/design/images/multiple_reader.pdf | Bin 38906 -> 0 bytes doc/design/images/multiple_reader.png | Bin 0 -> 163789 bytes doc/design/images/readers.pdf | Bin 270095 -> 0 bytes doc/design/images/readers.png | Bin 0 -> 355687 bytes 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 doc/design/images/multiple_reader.pdf create mode 100644 doc/design/images/multiple_reader.png delete mode 100644 doc/design/images/readers.pdf create mode 100644 doc/design/images/readers.png diff --git a/doc/design/cpp_data_feeding.md b/doc/design/cpp_data_feeding.md index 0d2b571d1e..6f7713d949 100644 --- a/doc/design/cpp_data_feeding.md +++ b/doc/design/cpp_data_feeding.md @@ -6,7 +6,7 @@ In this document, we show the fundamental design of a C++ data feeding process, ## Overview -![](images/readers.pdf) +![](images/readers.png) ## Reader @@ -85,7 +85,7 @@ All `FileReader` binds with a single file and are single-threaded. However, some So `MultipleReader` is introduced. It is also derived from `ReaderBase`. A `MultipleReader` holds several prefetching `FileReaders` and these readers run concurrently. Another pivotal part of a `MultipleReader` is a buffer channel. The channel collects data yield by all prefetching readers and makes subsequent OPs or decorated readers be able to fetch data without concerning about multiple readers scheduling. -![](images/multiple_reader.pdf) +![](images/multiple_reader.png) This graph shows how a `MultipleReader` works with three prefetching file readers and two GPUs. There is a queue of files which are going to be read. Each time when a prefetching file reader is free(complete reading from one file), it fetches a new file from the queue. Each prefetching file reader runs in a separated prefetch thread and dumps their outputs to the same channel. diff --git a/doc/design/images/multiple_reader.pdf b/doc/design/images/multiple_reader.pdf deleted file mode 100644 index 61d01617cbb30505fe3da4136f50d3ee13acd61d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38906 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

$ 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 diff --git a/doc/design/images/multiple_reader.png b/doc/design/images/multiple_reader.png new file mode 100644 index 0000000000000000000000000000000000000000..b22126b31db4982c13fc3a0827805e6aaf955046 GIT binary patch literal 163789 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

VxLpoUfvc?smW>4NZ$7Ay%H|MaN#Ww7D0 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,SW$`RxT~O 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 _Pe4>rO|@sS%=u^b?)CEl7hte|5;=`g&I9 zDYAie$IfqMJ<-yjdegFAy8FR7Cphjh@Ee3^sxztMq|11?!{Bk;HLfsGv4eKwrjy@} zHQ79h2sb%hf9wFMe85%Y?xPBcKhSbO6LT<-J-_VS*zuc1Ks`Ye3sy{b0;h$wG2GsA%Wy6u2z-w7lRA_!oL>-FF*wEY;9{i!xE((rEo_PsA|J&>)`Uh zY<{s;e>j%+4Ca?dtj9y2yIYuK1sEzb#}*b{QDgYAA5aLC5~)Iz+3(ZxE1O68$IOL1 zCRgFA30%WjSmx90$`7KSJNcYt$-m0@l{bAc`cX?JIqt}u!*>P#l#j`%#EH@)kO1+8 zB^1_KcQ0i2c%FG32~u~`ClIw2osb!1jXkv&D?XBVdq8T+ zR_H5Re!l1*>ONm&9{?=c&>PCCZw+7(&4=0N?x%ad{Cq3kxnnR2QUG^7sR@7PKd2*5 z-Qk$aeO;&ScE5rZ;6_4&7iZPW>Qf7SaP2M5xXunY6ixJebWQm;$F286YHManbA80Z z|0)AB^f~-igXT77<5yd2A@^r!G51n!++L3J@cL?;-rp_#otN-iT;&9H?#JJHPQ;r> z@QU$~qi=c!{#rUyhLpYh+`DgT32|*=K}4=Tt^Z1{rdO|NtkfEDsPG_0C@0AR_A1CM~56(LDKdpV!0+O?Eq+9yOdnf)?t7Y(3SSMpZ zxGRhcC4i14(Aic5*1TnXN1px&W}mhN8C~-mxG(G*oL4`Y6T1Iv#TenXAk^IaYSL2{ z{e_Cw*I#dNAm{cDk%&o8_?;o>(Lg!6Adr{kOXUI&D3GD7P#H>FMjG4 z9q@x4=`R?j<=TL46oe4HV+7FoxR-@^J zJ8SA2<%rO<9=3#a$%vPU%TU!`x7Qqk`s)_HM?(_3RHXWaw(8X7pSK6XIKTBl4*|FO z7G2N&$b;*z0x<@68B%;%{oRPKTWVvIU)wpljk`DpJ?8l>A`Pt1DfGQQScQ396&Z@v zoT2p(GI$GE76c`OTvt&VhcDiHO{~G`jLFVea>thkT0Z(p!I|nipQqIQsa)T)in2vD zM6RSfN$lj4jsim+j0_U5SH+81G8AkZ%0DhGyt`wha^6e` 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

nAW_ZcX&!rb-q>kQ55 z&#Ct)_+H1DQVm$T4I6jS6sZRu9|5(6x6U=3B z9i}zuDZ+1;4I}unIP`he<8E&lTMZ_+wmdENSK$Z(?iXBzp^3sAgBsX0I`Dw>I|rw3w#zR@{CjT0bVw-Qm6L0dvQw^94Fd9-@JP184!ixIeJF(qs5QqLbvbQpu&+RQG?&lg-V~jT9+x`UZ zugch^E(Y3JdnMw2m)=?>lC8ioMoZHlIE}e*r8?f+dLhJc?VwVtWADQ_-judMC+O$7GO4}tN z?$4CS^B`O%!W0LHxGowW+3T0~CrTrF5Nh4LaR6qCSwGEe3vWBBw>aDuTYulQx03$8 zED&W~AHgUPb^4PEa1K*7TI}+Q2dJ(zgB#Lcg+=at&BJBQAO|>OgiwN7MVT*q&toOq ze|aHa&qpiSv+cHOJF@+^G@{YZgOE#Wyl4p}+DMP?MUA+>U493-EiFiVD z8#x#@8L$8q!bSj8ixnHM08h%jk}h}z*Y~30n)yGTe2+Nn`hY=EXyv8U+^e7h}`ZH*5!4XSW4iFwgXG(T{Uepi@K1{4PMDjUnz zu(>7YT8lGPn~Pp(Sd7Xhl+xO|rX&|7zaM;bOK1Gk-|x0?UD9fDJ=z z-l}CRjy*}0p4`9sb3=ie1XQ|=6xm7Ru%T8%V$8w_>)e#C#Mbz!>YS>C;q}W<@+=;m zx}+0Y9UF$0d;cS_@tXzS<-43bak^dQlDa_MO$-2$Am%N)&2_PkP&yX+ z{u0Y{H5{qk{5hhJ;pqb*`$6w5ti`J@E2iRPXpD;^6*+k|FlU;1EzqkU&E+{2RVOi= zV#(*&B!Ap_A3OQ~Wr~1)I0EN-YI1(~hKpdLG5k9Np8P%2)}Nplv|Hu~7K}g2U(FeLz{YMLeNA5TL$GNg+X=?^ka~+}GP1sZ=mHhNKyrg=Gc0C)t1o035UQcYXN4z%n4jR}5L{5! zjU3tiVN`L_TI1HM)M;iawn^cygvBkj2>h9CA}fuDIgK>aFPFC;4R$AEp{z^l^n>x| zX%G_+p&6iXKrs{Vdk3J4H9YAq@fpSp1F;b56$~Q=jv>oH5>o^Q zQ#L(6xnh#{Ynk0w<&`fY!qf>mOM<+=I7OS|y91lK%kB{7YxjPx+~|Yzhxu*f28X?J zz*70H3-A1I009v+_Q^F*rGA#AKaB9YKMYnG2MMBH6cmzr(G8aRUx(z1zfjoigwWW+ z>bpehm34~xB4JWD93)?<*8nhe0L*IspSpxU41@!b!S8c7P31cy7DR@3uOAs2Cq?w% z_jzHe|K+_xWLPLv)PKJt07yQhy6ShjL_#6iIN_=blO}@n-+#3N@X%WEV6cVl07HIT zDFC}uTmZfw05sP9A2q$+xILrcivNvN?(EZ7zQZ5|1j`~nAWanh)4+$pM!qLl{}u8- zK7WB_jo2sC0K*o*?lLF9Vu`2nUA5FdSwg_rk@5et`zv_!k>TAJLZ75gCoS#6%+?}2}Q&6q+Mhc-#o_crKZ0E={3PFOo$EGiVRt_ zEg)m}5&8|@xIuCQEfWW1VVmk(%r-H9bqPcl|0^`#eFrr)jqTry`$VMxZSLizIKZ zJzsE{;!@kP8#@+8-VX7kv(x=VMBLPM^z|vXyUa9EGHA%oLX)&>LZ7}VtK%0*W-0oE z%g9-GGLc~E#x@-z#UJwBR}oY~MzK3xJn zz_LDt5;NJhkq&JZ`P($;}@Ydq{p!Uu^m+BxBiim5s0=^GQo%<$oZe5Sv0xg*+NSahw8 zsX=w1vo+Nd2iH_=&HmRB-SOaXM`V3+!Z!wt>Rr3siPZlGQB{K~if?O5GUU^d;oZ*) zKtKi-;drAPYAXKBF3xY~NBY;;@?@1xxDoI{Cf03D*C!>$1S56^{)0U?BRAEHE~u&K zUp4T%cLP{xvN_y|OzfYYh|!)l)SwzSNRA1X769LJUjgj?g+(}nMBulB<;74uKs2ZJ z0YI`MH(jraPWMjcB{wBmhwPqod-(!b1ndrX2D@z;-nbPFHRp|eW9{4cypSl%ofDZ_ z*E`kLFA%!SF~Mwr{R9w+KDaSKl{g?0W9ERHg+Ncb#8|r{J|Dyna1G7g<9{PyH|IM= zsbjzf1VG;BaJkEoTpJU-SzBIo)iyF+w~zeC;(lDDLbU3#_#uv2IxbiAto7>TX{ zN&tj0m|1@FLTdmDQXl{>|4#sp2mtyw1HL@JSpx9z@H^gITmA=Nmk9{~`g!9>;3mF4 zu1%8_&=H;O*Y`bY0IZYrC6bESDQ+V25o7Xwi$pwur6oO~lx9W!{X@j~n0Lm%*dxYl!|$9B)NmS)UlvT zpC~b37PW&;ZwLzZoo;i!>{7l|eABu%!*t!w>`)%vX2flttbhTF&Yw&DQA+Dh;~nckeuQRetTDrQfQY zj8U6hGWo0`n%QQl5{yNY8%FR|kDauXQ89N<(OokFjNYU+Y+aMei6ln-8sELww>6A} z(Wis!J^@giW7C;N0pYDLtaFudR5=#QtA|1@GH=#Lox+vj*l$mojDD4FP6cYq>&9-%IY83Y@ZZv2yrF2iso|cN~rk%ORD0S=ank#hBN`cT+_xHLg zvl`<6qMQDfT^{{zjT(loMmx(cIZ83ILA03TGp<2UL|a>c+XngsYmO~_*R+6l{_k%Y zeX~=j3-oL%{ZptLWgj}gQ>gdl^jT~tdv;MqK4k^XWnfJi))4#8Yndy8KiU@Ym>44R9}5w-Bvcz3df ziz!pKSXNxGn$%4Ne=Axw1e?>n9b5F`QUPxV z*NIVdkE?I^+j42KhQn*EhwP-CcFydjZT1u8En|@dgl(m%7WOm6;Ai64)q1nSNB}iy zgoBd|&<#|G-Enyeb*A;~V2|u3@pz|nd+Ht+#Xpn-`|u&!TCiBQSgIwpL1=bknU!*k z;9k(iJg6WL!sVs&iMT10Q3Z=YSr-}04mCty+X1=@-fKmqn~(n7G9V6I518nB@u@oC zi_2y8YvcJ=F}cWVZ|Ydxv^{dkw1T(Hb5m^uHn%lG7^%~c`tE42Ft^NcC-a2gOHvf}f4*6FYmW+s1vn;7r_ z$tB2uzwfR`iF;C@-oqulwGEGZ+K+f_P7V!~4ICZ6Cy$Zk6I*Q6F3$fc%xqUw5`{b9 zHUqQC5NWgfu`n4UH@m=0yuCLw|I&7pE}`=|M@h^Re^AQ0<+7w?-tKNQXJm;WRE)+I z+<#TEw=z)nv$E93J7P49FWEhnFY@!c&^BS)QX1$A-BB~UYig|AFlgXYY^}uB@Lz5i z5o$IvuKCW6OJXyX6h0I)WBoc20)vUkfeo{-bQn}NuUFFqN0_sy%z$9ZKKs)gX|`f6 zm3x_iOIQ!a579pGr37XZ{w9C8;<|oRqy3D}JC=*{o-J|YE z=M{f$|NCBQ#o((2uijlUIbS3Xp;g0sclBh>iL?BI;*L5aP!=C~xo)nzu8ZnOOAFBK z$vf~=%=?|4CsFtYqpzj029Kx?i_LaBVtQrDxc0dXoH-0UwtoS21M47H6uiECF^?p-9qLwW00 zn9p6{B#R#U{8-0Znm1`S$hQAO$YRDKyVrds13Cit!!{3tjng$ZO5wlr!hrt&m=w zv&5v$-7QswZK=hy$YsNU>D zx>is21o0` zy0D8Q<&?3Zi$soIKgyF1?ioKyeCDp7v(&hAkpZ~3cwPEKMV6tftKF(u`eL zA1>Q1YC~8}?Ns%NOMJ1)2iF@S#nJhKf1q|L>E2o|%({Zjt+O+#9!Aepz{z{_R%@V? zPOR+weN-L1NM7xy%$CF0#;cI!t(HxNhYTovw=W0`{B!DSBvmU zbi&7m>xthj-Hw>$iz_5q-D7iJc?Vz`CfSYnn4{genGl&rbO6zhSui__(cg;ft(t0A zE`vf4Q(eq2JH{pOB&di{KvE#-x$hc>vI0EE%JSB4?(-HNGCTD z$n~WxmuVnoF+zgl7sUA$!V1@(sCQoZARhW`x~Qc}KFQ>DYePNx*?;;^x6d*v7SRbM zbB|_^BoLMlO2-)2?Dv^yifNTPNmg z#GkaKF_|uN>L@i684fQU?3mj&wSA4C@C)@(g)j%7AKUZHTJ%$@CGqvWf)b=tEd^PI zfl$g5hKJ8r;rkO!^cwT-MI|CNvp#w=6!Ta?n>^hmB2dYp>P{k+GZauK?1;<akeaOUZRQ zA|sIW+-hGg9~9}4P`aHOSLO|<@ts61F>(%gT)2%~bGRuoj%{sbWwckyjq@jOzI&)# zoVaeb7SSg4p(UG%GrB`Q?Mm1W?%Et?rKk^{(|cuQ7>_GM?+6@pAd5F%SXleZ;`~T+ z>_EVr5|Vkt!~SVmy6WcE3DTMc3{W@y@ospW1$to^Zg_gXZ+#@c;ZbS61HYV1ehZ-1 zWI7uB766Mm!hCdU5~H~BEnv-Z^>mH8~+ zcr^Ah;OWI;)!40?!&`A()2-vJ>tnUJMx-Zo>v3~C<(yh|!*kYR6#5+Fq=DsJ+fB@I z+HO+Y%_oDmn{>kiQD4UFeUbhg$Cdlu9vV0Hy$ldO*eZ{NZM<}iM`iyJo?WRH^po5#`4$j&OESNfmh7a! z0>Gu8AX``qV`O)|x!r&drMTfqz>aRvH;%mzwf3wpomrq{XiH;wnX z-8O{IWYhKB!^dW!6_b%B*H$>pzl=&_m->269T z6b2;wm6g+bz?r*yxjF2=Z+SlyJ9`iR7|ZO3&;1N6G;{9fI}Lu)yU22hr5Wy8^&15` z0g04876+5>Rxc&H|zk};A>TUArV^-7Q34^$=~J+^o@r|}`w z#ss$Cl5D%{@&j=H8ZO|*ytilg4fG~*QncS)%1I1r?h@l>QTx}2H~QFz)Q%YBgJ?`P zgQ8R{Muw*>tryhl~sP zK1m$<^mzi$2C&vAL?2m@g2@EtKHDPaV`RMPzv88b{uk0*Bi@C{R2B)Xf=|XVRpaGS zcnFnKLcGu+$QljOUtK*VzdB|mZD*?z&4W>K$y5>3Saam!Rf&xCH?tyIP(JB~owCrN zYzaoWWhzssF&=|HVI{BgiF2WBEmNzONq)^Tv}uj%-J8S-Q9Y0D6&<-G5Ud1!vcGaZ z)r{%ojT7wTK-prt{T*E{8gM66Ed8|y2ZhyWJ-%pC>TC2aVud_h9b&UO=+l=GgDFhn zkg1e!&ysl3VJURckrsH;dd@4RcnEsn&JyXb#uJw)T*M(kE1VS<;pOZ4H_x4tU*Go# zRV?{F%s6EA` z)afiP{WYsHTJ(?RdbA5SNc!u0uHIeQO~Z%=9)d^%wGI5V@3)Yk^Z z$UVUGPe=9}%MquiStHE)PWU|DEkvR*y*;-Iu;s#juaOp^W_Sou_PMntl6VO69_^=` z1)o^{u6jj_OMZ2=jOg71yk(g_uLt_n(z~o|0Q&UF+QOM<^8vQGDEqR@yj%uB8qpOIT+K zQ)HAEC4FJ_hRsyJ@R9lZP@X9*bd3kqrxcydC|`$mCMX9;%V27GLoZvH0L(MqvuYOM z-Yk#5T7;6FZH`2=D&9U6X9J>g&8bCKBQrxDRnd6}j=<^UKBK7$gZ~7(S83qz>h?P> zdE`^d_SE`CviF`gw?Jn+#+FS~w^^8jImNoNhFuivOKCXy+pEp}7SZHNp;ZUti|iJP zD2i7C z+qPc6h_no!yP!PAVG}`e`^~P8%%r5!29$Lnu6dAtYS(BGIPy+FJ+D{gm^z==Q034@ zj@w;1m*rq+ipv?gfNlY$;>V;9!pZ17Y28E?GJhrHr{BpW)#LJpfB+rsHfma1U;=J4 z-F;RO4vb?$;s?eb)hb9m$RtZtZoGudaOfNYL-Stt{fO0x_5=p=kR*9&zR>AVE1I>o^Y1vB0fmx##nVLj@ifVsZk% z4iC)Qxg?;*ug08C8}KnSNIk@+1~xMTZm$wJK8izquEWso2n&OP(k6oTFynX^Xf1aE zJWIuM=(7l6Vz8aw7krm|V?OSppM$vI(5-E<5O!gAj8AZZCiV%sf-XXEJ&^F)zb^U( zLEajJq?AyeBBi|0F<4OkF?JsWp)YM**S8eGUA}6%QpFm`&`{*XmOr4fOwWf#=UlKW zVkUlgM{?gvUMVXl;5Dny0B9b(Vu|!H0pr2dSGX#wxTMgnSd6;jQ2c`8P!(oT=IPXM zfu~=8yq_Szgy#Lu3VzsyM6+t-NeV&#rLf7KyA1ZTcEWlFpH$~k!5Md~Jxzc9Rr$R= zGYo3pwsFNH77J<|Ug~8O8>UCoc%1g6jvS_k@0%%#2VFbj7P=;4sNc6MM(t9s2^8ys zlb7)qtB9Tpv>L3y#H_aL1s7y!;Gx)SAS|d8iA<(xAP8l939Ub%q92EDE;v3{x6*xv zU2|TW+JMuLv8X*g$&{0va@C^nd@tZguB?!>stbwBW#0Ba5?a1qWl0s=Ts1R?RWYcs zjoVxSNknbBh7tDfCn`?vchdA*JxY1+wm92@y4wFOAc;1&Ch`s*U0Y?owF6dD-LR(^T+7lua_eJmZz3=G6~{+?kR}j z*o=XwWRXwM>XmDMF?LbSG7lJW&XRD-Ffp0K&tuo)OMuuyDljdC9G5l&6`USAihTQ2 zvi$S%0d6jSUrebLyb-k1(ND}etSyCmLjU@x9zLdK4S=7@ALsPcAB?2zN?6u#M!@7+ z4w)hSa*i!yhzM8CZW@RFc2JaD=&t{YxRkw2bL7+OPMk`u(3c?8?>ZR*R`o>67O2u$%9Inp=xDVKya<*MRcdfPU0jfar^ii#{=ID3 zDuLY)38Te2WBs`yc*4dVb$|ugntG~LR>{LNKI7!p)r5!)3>wwc3;f7lG?+Qc%Lv#G(&P*p#nL_w)uroz;MZDHQ0=t@?Dgy3OO2|~pc)4DF> z?f1^&*nUt$Rta|YCE5Y4)M{P+9n?uVo?c|YS6L-o<{wE4N-hW!_YKF%q8@80;@0m< zB2}jxU0I z{qqQ^@_q3j0)FqF8_T(_i8`B0Z!Y-Plk?#Nee9r14ntC30|AkB-hAp$HG^DAf$}0T zBuU4$q9zHp#EwwQ7h;?SZjtuCJ$44*Iqf4>+}*436{@`i$#Ajg417iL)lKMFL;p!D z*r-8EhzgBkmGpm_eK}0|((mCmxifHm;@3}TVnJMXC+169zB&6mY-p=pgX?(7Ubn=w zIiOPTZfc02SXHF~dqaN(Ts|RPbpif7f-0t1`#l#`SlRAJX)}DXQ4vF1?}ul8SLRwl zw{IS}w&&D`79E*Ah1t1hb)q%DSVVFJ)JpRi!r`az)sRbYPvsaIhrnSzYNfRaa{A}X zVIykdVEQt-UpT5!^9Qmt>j~?Ozi_4`2tn_Y`5O}C=Qi9jebkU!Y*WP<3@i*fJ~QM8 zr%jXdt08NST)^!7!eNloxzI0+$lJ4|R2C|Q!~e=SFe&86*R3l@6P>EA6ry3RQ(5>^ zK1Mtjv>mJg^G;8JGT9bQG7wKK;?BL5L<}9qAdTjl{uj>Ra$9t z>O>8gveMOfd1f;O#?n79OwRrvN+rqM5wfp;;XEu7n9wBWHMd1A%V!`(Rtn=Xl)BPL z8RZK5;gnxG zGpv-P7#BvA$d;sSx`T1sLIK z1n9Q)327gYD`bq!*2q9IO24iAkX%LQKP%*?l^T~QU!g;^t(qX8M$O#S4=9qw;gTyX z*MCJVcZ;!>lO z&u+tmqwCTfv5qDQ{K1O<9D1@3q2&fa4OutuyH0c;6H-Y9ramh#z@ZDvMp13*J(AMz zQO&|PO>Jbrh?-cWWw-X8a;-g@uT=mQcSR&@nSGLIZNVpQtuv}3*CycTp4>%CMAC>* zyF!LvIcM>X&EL3oRj;#xz$#g@$jF3VZYBC-bH*axH9BvY-z;9kHble`onFsog!(}u>x-D(Y8sKuE9Ym!c37pb)VTF|7L??c z*YtBLZb*y(?wam`g57W;A@1SiFkQ)YQ}mh3zJx zCd@wwm_ZG%(;7nCCFq_CekR|eb#jEC^<~Ka_;LkN$Pr^Aa9#ZJ-O5?}d4tC%HkE~b z4_jejcUhtM*B3CNx95$2n9L4cQ`TeI0r7A(B0xbLd@_h(Rm+us=s( zd#=x4a@zc0ysikI=74o|zA-I^_TFu8gqSV|9RzjAf>Z1l2J*Rv+rK;S4u3TfR<;GR z7;Y>rBKame6ip?V^Cx~4H8J$%dH&ugWVr_nbvrt zEavGwp7N=q1op6&3opw3$%VL8qm^j&!JQ;OXt%0w?gjJN3+G&PrJMDPW3`3B)!1`_ zsY}BLhK6~IOtPx|>HLFYMx@eqC-$JI-9N^T?rX?DsH%%x3Le14$|%Of5Qg)R8w+k_8cnY;bd0imDnS|E2x08u3iM zZR=*V6L`6_eB9~fi}@%vzRw3@ub6XR)Be7Ja4>GQtibGsDO7D57reMfrhakpaz*UH zxEvSr8M;hS^pd8e4f$*=*AV}DqPP&;$03)cBxL|Qy@a)TedZ{w7rIUmM9KT>2;()g zC3gsIdyA`{x&5&^h#{khSrxuKZ*QTG(LpHZCh^@~seWxqu-RUfXTZ9@I^4Jbtcs?} z2kRx4$+14n&0HOlARjjL@f_+7dauq6*6F{vkqX~e9oF!@JI+oDn=I-ey`|QYGvBEV z2FU;T_<2t}^8aON5k$K-w*BGCE<3e&CJG;_xJ4{{EC3U;GbU4;XHoS$ zt;{u1w8=Gra2%fcj68R-(t-0pviG|44thXjb0ss`-M_aWwE2u+i;9dfua>oSV8o(> z{cki=aXTM{O%dPVYGpbkwa*@3-|NQB1|px+?4!FNyOMzn`&?_zf{c1?0~zLMsYq7{ zHl5&7KeHb*{UU3?kvcbb@DFWu!ngA|1KI!VQQuA|EU2|- zEvOY8r?$FBKd+!ifBh8r4ZJ|#|9cIp?pelQ7EWri@B6=t|07&(FBLOpnN&5l*Nc0* z@Gxc>FvCkjeIiR+qN}+_8-?db88v%FhjHQKeiILfjlF;WX%6z2<5P2`9adV@EeSm2 z!p1PD6}S_ub+1#^nB@!*@*hDq{}mLKeugm$ys-j=y#1a*nc`-$em^0 z?L!v_HKRu}`r`i6-aKeBpu)Lq81IGxbM58#eaBV@SO(TthThe&D@`@8#fFUtL&D_ z?OlsWz@F_z_b9(plMS&(A9;m%jyTG*nd(!8Xb+D1j#v==^X=DMROP5y+Cyz`zB;A< zImVUmVV`=(BNm49=o)2QKqKhRW4QVHWEzU+T*qb+8)zviu#rVm*3vn@@vH_V)iwS# z0gL&VSf_vLY-Xl%JhF4(nT|E3B&@-1I)`J%M2{PjXi9j)0&l~sqt#EOJSDpNIU&tlfZ|`qX2VDa)B#6FF0)w-;>(xEfBCHqMm>F@tAs{O zo#>s_EcmK+dqURL+9cjaecIrKNuHA_wEoal?Fsf0?yIi;`{jkno)r{D67RV1PHPG6 zhQ-OH9W|*=boAwdKyc`)e4sxtgFkhUjozv3Z&k&8B@BE4xiRu~Ayvyk;?(6%=Mb!* zJ7OhqsxTm=N%Ao8oTFvC=jY^M)tK)=xa~7P`Is`LJ{!8)J`dNN&lZa|x@Wsb#>$o6 zU9mWsMg1{B-*%5=#hIoJz-pzgLGtdjQqQ6`e~LQCG6%pXi*WT-;Z}E zG;JX;FyLuF14M=t#{*1ol<5IN{$Gc<6E#JQ`qxv4YBB(qnD ztbO}#9j+`*D|!k0qP(+SSju)22J4Vr4}P9n!qQz7r-v}GcDhTgleiQZ=0OY0akZhE z1I+yn>G@3nG%GuXr1MibQkMqSU6%jE=!Ig}t%mCbui?fRr5f3EN&P%W{+f9g7QyZ+h zC%SU>ea)UfY?bV{Z1Z}@ia#_%YtktX>GtiV+*SQ`+OodLt`+n%ebL@-fks!&N!T(k z_^HYrsWXqs!=eyNqAKM)OWOQs*>x*Y8%{GA<9Pu;>;&u09(1DaygYfM=)3{mX<6{e ztnh%eY>ZHUqoZb?R32tO*kr$%Y}m``3f>wec|Tbo8Q~SH7e$4Uo3MqT0aHvfSP9}9 ztn5>W)eDmWl;9dyc$C8CD?#Wht56I*^7QhjjZ6xvsi7X0@Qx2Oe$U?#g-U$ zqR!aljNd|7E_h}ij42uXCK;~_WZ|a*4P75@l6kt4?E{6)6)rB zz|QrE%Sz$fCee3s>y#V@PxJ;!^fcECOeYinPuuMl&>}&3_-MK8=l{N!o}rfpZou&{ zW^>XC{pvox)YpzQ=nv&Z{S!NTc!9lm{Jit<<ugp4npCh*`PY{ zZ}8mkQ3@uy+2t>{J^ir=3{2vMcC&|+<6tYQ5KqkK7GhUUCOiK|xw5d^(RIk5^aegY za(B!J6E{RJ)jMld?ZN=>YI&1)pmX4UZ!@9TzCOYP$oFrVVfHk@Bj1VVQ#mO#sH3PE zEQM!czfj)~T6MW7^)gurmpt90m2$4>Xv8K!U=PHS@k&-pgHz z8GsXc6CvMW3c!|fm$l?F`pt=uEuwIka!v}zV!1>}A8(abW!|Lkq?zE3H88mwP9K7o zfq7XvdDd2uCocD{UheYT##Qrk1||x~KlI}m;D&GMZ?7Md?)YWg*wI!b@ zWF?$u@28pJFt6O85imJzD`IKYMA5*xq@qxd-pILxsheR}Qn(PRn{kZDJjOjUZ7ab% zcJn>OoW$CyDL=*hQB0x!IqyFNZ*=~E1c2a;?oALt@J9Flmv>xRxR9fpu|+)Gii+=v zIbIrK{eJs{fXlErmxhJ5vob*${hmJRtcD=!tO~3YPa~5CIMx;UpEwuR*M&Zm8*#46 z7Ap=_RQ|*q20d`wm+w;cWfxaT)|RRzMP{1JIG+tmit-nK;Bf8IX@I|2apFz85}!<} zl@x8NZ~x%YdXD7E7v~Z+;IQYn2~ZS!R8}oPFe0KAOUa>c%hVKWX;joHQ$EF}<1x$6 z*m$aOrhe?yP_nVD3bB57(%+6uYMTEJY5P}Z4*;+MKzf%HVm*0bUPq@+P-cZR%7eJ8 zfjXP#4J|Vp?C)ydppl*qxMKUQ8GD>2OD_! zi#Ytob~&v{nu>J)=hEs`qE6`!d5832pdz^DPFrikx)AGsE!j#yv<>u%h^6y0FqlKE`8)8+ zS_v<4#<%G-U>Cms+!_M#B*={bel9mRAfI;Fi(8>VVPyUs-%F4Wez{7@Czb=+t+APz z2j>jZnKQ$%YQTnkzTVFYv0l_%XkgM%KiBI%T48A+!4;3}Kj&NQrAz(cRG$ z4&BT19Swn@`+mXJv$kUr*flZ;MV1UKLLM}QA(6pLxoTJt7&Cr4fORR)7j4qxJ`MH9 z3BUwD4NxHLwfibc+1#gL#A$dmJuy)9-4Z3mLBFt2e0T6ljr$saHawVjySiiY3Fh>I zO;iTZ&^EhrVKsPu z;Po=D*7+s!CcRMJ^=BcJRdV5Ce*d+5KHbH81^hb!1^m6Y7u|oZuf^F`v{M)+ zRZ|Y!a=tTZ=AANWMvwe&jeiMX00@(xdH$;H%y-mjuo4LPnU^|`BI=ZJ%jD>k5z6&g zq%f>HBoz)cOWCL;<33;FC4xlGA+HRG}0-%>jl`nt&$3@{T`wRcc1*sN@H&`jTR%M0i}9? z{4CUJCe5l~v6O>ksrIPDW6;PZz^}>w_dnL}=zE%#g0yA+hj2N}P^U~1z`NzYX}Fs5 z^`2<`Eqj32vLr#s{+nO0R|dim@%UP?|GUWFAUW^h8Bv1>q@PLm9TNqttA;S-TSU3V zJ(2%dx$kKI1q6_ztrrI5#}aTws8A;IzkL6a^`avT32xug6fTlb`0)%I$DJZ}pLXuM zscW}X~D& zkg!qs6S+V}E>~Z$k)8lh4_^Q*d4Out9$+6hI9EcnNK~-mLLUjcfhV zvuhxXa0l$6x5c+z^~dP{Ztndv9Nmc~VB*dn!1Xi$Ai4PqDDpW4Z1fYNqxjx>#zN7T z4p{4Ac74mzK>jAFIq83TvVH?x{|UxF72njjjg1GuE3goNH|!q3>=6afRqT1(6IHzc z9z?}w|DS5XNu%YfMOK2bCm;_7CSts?}{iiGKl4u z90v_J%SCh7`oFb8{jpl_8~)m?*eOt4Y5{Qm%K%J(m&knyuv)+i2&4EyF|hC!hX1cd z&6M)X0A-DN$D}P{MXAQ+3xMMguIl*dhX;^`co)P;ajjKv8Sw3Qka6MN!-LDOZYuu|bSILD|0?{1@TNKLN?V}x$N9UYxZgw_ z|Bd9EB_<|7G$fw>TWrw=eF5*eYy;lD+<%)Y@s0KytM^6o-UcH6=9I^`vP^x+@}KNS zFah>LpVwO?Yem=Ffh_>?26PgdZ~#twJN>~|R*PT;(&kJED4J*g-e9a@FJ^TE`Sh=t z6$NFd6G-fVM|9S*v}9lo*vmjV69RMp@%S7!9Yr7C1rYygU{}1A{l3;SAW?yR_aBT1 zCIF7U6(Hc|%gXa3yU2~1Iqb*X=*kzWcQGtR>1r(GF_uMz3be0t6n`f2c1*2suf+*c zAG7#5iNqS?ThOdP?v?~oEIybcapIOeRFw4osM>+8L^1s|!>EaT2X^(e{OLPC>AXMf zP~*IwoE^P=-HprJ*Jyb)rE2L^iSj*1%t52TOq-WDegIo2#_Ct%may0x8N`n=Rt(puNQTV zT?bc=)nR=be zjTz%D;bilS7vtTzR@R1`uj;@%{Z&M&V71H1!LV_(?rxSMtb6cXCKcq$>=}5H@7U2B zEy&Jg>m#7IefI>ky+ne|8ZL{lPFx*r)MOsZIyDi;<>I^FyIh&x_Xmc&e7!+2 zY%U}I?&)x!K-IC;{Cyano8oW=Uw4w|Y9%r9Z^3_x9G~|a&2diW6zc_-1~d4WM;>d< zKPxPIRTASl>(S<(cA1Z}&IOf~i-zzU*+8BW?uNFk>f8V|i#boa9J{H--)6a7{0sNQ ztI{L?aV0*_O!WMDOs`O!&vi1Q3M&L-1`c-rFm9z~jyr!Ds{>A*{l`e9w}k(Ve)YnS zRe^9H={!{3Ux0F_a-zZ_@ zt?HyDMW>bcf+PbnC1u>OG>L6jQRZDF4I0u%mdRAk*ZJ5RUs8OE*Q;u@wVI;!FjTM) zD3%|nr6sMb9#fO=ji=s3dwu5#>mF%Ci`uWisvEt6D!Be*B))j^z)R9$<(EK7Ma}_kr${7yuaA?taCJ(zlSl zQ@c05#WlXYxR@95yWf~a z5krjbrt9Xo;8aWRO`UG_mn0G)<|K$ZXg?wYdP)k6n_8hG4PLXnJl{8$e`IJB9_g?) zN@(yFwtM$VtmIHaH;AL8yc~%Ou!D#_N`ap&85*E{feuNq9%FIX1l@;8m6jn9nvB&| zST|S^1J2Hk`Jcix8HQ_~bdIv;=aOy#RZ~|-hZ<+2#S?X#_+gSWv&RaYLW9dT|D-uP z$KbG2u$9*GX)?O{#yE$O?_qLoSKPQ5POZW!TSNc|W(JZocR zWWnrm!-)*;NRh=%RSmjFSOoLu^HVhvTF4YP?y_P60;btr?Cs_Als!BqqLF0I1)rnw z-{z{Ye$u)BkA9Y@hTCC`DovPIZ(i;Fa% zZjRMspweJOo0mO`EVwJ>dS-$0&~SXTM&eWKe438{+>ZUvht~!PUYQe}nI%da-SmEp zb1L39fzJrK$3NZB6FTN8%dh-%-2b+H`C;x5w!B9kr0`XzB2vnGk@9x0$W=>N2)~K# z=%?F*TBwObSl*Sm){J!*lD?P4Yy8oj($%0o46ynlZMc_yCYeY*QWMkh+#8kPxoW|W{{;7 zU8F3>sqq%r_IL2G#2fi$&`UqPKv~YaG6=4}1kGaTScug72$-Um7XpN3TUYK#DmzWC z?te>i8&bcM(GsfCXh-DELDOI>ngmi=ur)!$*Gfs<-a4JBgJ2|3hT!~6$A?=k z(>nZ@eYp4G)kN}3GK$g(CF9FU`p1)0tq(o;-zrl4xWlJvZo~c2k#T)&cHl#|%lz`c zEHN60@5NDjq7vfJupGAdyrchctDrM7-fOInC3d&}K|6x=@9{m}kS54pA#D2q7JX@4BF{AFB zgtJnF&paQ{y47W?R`;-%9pm+Ba;QBYbagaS_SHXV3pB`92|ErUd>MJ)BrN5eya%1w zf5VolzoR!Xx!IKdHKF__BykPiw6CjLjE?xfn(Nl@6_r9GcZ zjmb^^OmxWQY^3`igTH(Xi~Fc6sqv>y4}J|=4Sn1e<<*;OWI4}Q&l25>UUij5IHAYi z(auJ&E%bxY&Tdq-`GV0Vcgu81@sGn7H`X*8OjsEX*%=pC%wMl|>a1vZi}DIV24ON% z0w5+U3l70?;+3gzX(@qCCaYU|D?&+a1)lT*kim0Gt42e8am;R70f0|AW-&3d{8+lg9K{5JnZ}f=MHEbNpi8T zDyzA};|Q$%FQ0z|Y41Z?^8p2G3-{d!e-W%WL~(y4)ZC~1h9_D&d@Drko zk5KrkQFP0YJ-NO@3QeNa(xRoygMQbvKEXX#ZED>8irLc!A7lZ#pm%Y zDH5Z4nmNx>%ejq%$uEnn>%`ANz0lO5P}i`lXwXpy9YipAT*Pc}k8IzNR3>-Eu#R@q zD4|}=k#1c6VBs~GAbq*A?ZG-438xgDs^pQVVKoUgHj+VuMrr9J4)!DAfP3WrhIHfi z2WxrnC#5KH20(HONZ$kKjpB%4)*V6vL%a-u-aTwFL@?v=gc3Crz_MAYG#d2k;}}++ z%qrUN7>qYj00uym3YF6ztURo>OiEF{Mjna4UVG|Lpa}`uZ{awi;9z$&vEQf?Jt;~C2AZ@LZL2i$FPiFx`=~;@<6ce4=j)WBb0C~fDMHzH~xcF^9vkB zIp6$0VtD>FG-&Sw0Kn05IOTjQwnU)c-WV1X85>-I|Fofh|8eW~60V5J8nVrO2@kE= zB(A2hC+KcgVzDW%c(gYy!sG0VFUpw9bsPk*U2iGp4bH0nC zBnOA?5&@^}rORi|1g^ClUWG+J`L0gC7^#nDT|!e*zkdNIWU;0`@?AnsBH&cuapp!j zXax5++=f%`fOg=Ss8x4&3|Lz!}-~%fqN!w69N0jrP4} zS7%Jj2MOx69Ls+c4ptN73bp0Q4h|)&j>DhkF=Bilfm5b5DPfg`1u?Lc*pb{g$V*%+9I>e#SgJ)Z1$ME-h8 zZ*Z}*v!T}X3Ak`&&GXUud^N${!Sk*q$z3^#=6H0te(a}R{jcm=sT}v}TYLE+7d`Gr%@(9i~Pu1`U1V2yEptHm!+nUFja1%03sd0>N&BV^)szToMmk7)jYmWKF zHuy+<2gfw{Y?7Y=nnDe8MzJ5k`Ol94SPxIR_U5$?L5vSAmK}}OPse76214YGMJsx7 zUwkcf?GHMeJR+{RVd}CJ7KL`hKi{0}?~Ihkq|95OJa~B($+pwxfEsG$#mkLvF7iS<(=0$R z$Nnuwt=f6L$ZXRSeVs64pO1`k$2*<%#ZK{W<;4VU<--P5#ko|vi^6<%R2J`cHw=I4 zO|bmUSn_jmF5_36q|i&7mTM42*8JKCd}5JbygtEam|7J81B7B$E$K<_Zq+sKjki5o zeF`O_diikd|uIKR^XYBne?buNk@(Fuc z_AA~q?L28=0-wj11z}m+`R=b`@_ukDY*8Orj^eDtnQwFn8HrJ=+E-m~!` zJo}&RSxPX|DMG;X@31FcP!Ob5Xt6PWogpM0mZm>^OD2E}Zh&K_{vf z25oP^#Z39bM0E5lJ6u3%EyY)396TWWQBb}iW5po{Mb+kEBmOI0;*O2ENvvh~8%N$h{hyuZl?Ac4PE6>nXFoEgLDGiQ)KwH?JuBlC~!f z|He128c3Z)k^jfJ)F@70t112}^@njKl#Lxb4!!cl`Q8<4@K%;>P+2-My`(O@tco{K zB0Fm+oKO{?aY*{O;nCZVqMk9jQ|UVDPfx7p^@e{PUY?&wiI@JaUVi|@OptXo^?HUhn;)Ro zBqDi{dzym`VI2yuP@B-DkRk-N=f*?qdcWQfm=MiWHsxl#|cFRmHQvNCod1R z<)2+1F-pG)}t#wFSDWTR3QF8 zoA(QWsET1M&izerv+yZC_)(s0=K1FYd7TsU$+4=0jPYW?9d$_?fm9=e>B4Y(Q0-93 ztw09jktvD?xbH-$6h9j7PAdYhu70isfX+Ik0Hk_zEH$W1Dx!AG7}Y1EEy>cAqgtq! zm$pO`!`)K?jdY0KWE*zYKCi0ZaBwX}tpQfFUYh|hSX;!|7ThdLEir#K`ZaZMpGNL(u8GfRXO)+bovvz`X8mR)rq_?3(hH4x=C9qi7eizfcNKS(+S)p=D;O7l^o z-OnJ`wkX^^qo;5rLaUx3%UYt$5|m#I6*+w7EGYj$9_WpjaCckbhTxClyW!IZ|AnI} z@@@(iwAI$Np8|-Ne_QEQY8rlyFwzSgn<<7r8D$QkB46$%;qzhoQf(Z4}!DyLJjs@g_J%Ek4=ExmFM1( zqPzv;cYAAwbM!*b?H(g(G>+`NM*}+^c6~;I5U7TatdISK+?U9UFOAe(Zs_liPCI=) zZl^bPPMzA{idx*W&kAGuojhE%?>6G@kz98pJmW74oT$IvfM495?JOMc@)wOSNZ`|G zXW!r4Z`NK7>t%noGb;aw8jyrHTFkjF9*TF4uAGyd=G|N4-&cX}Z}cyzy&o5k8BL3B zTYt!=8TH-~Y6nG=Ext(_^t;_dT&oQqB5qyoH_QHMtswmzzWX70@9S=kl;~&gx1U~h z5>9t|OZ>BQbKIevf3jVtLvqsn4dRK>{+2MYs8CKG^b4aStZv#D#e>rUZJ|d-mWOd3 zUwyrnuD)^WBe9=;*Oz7v3flljRt3M``mu6`qF;%B%eZ2BivuS#n&>z3w?wRwXGr>V z3ID_H^^EEGewKBCGw`-4-u07Xc{e!?7{LJ9cd``82gm%qN{*ig3vkr5XAAfgL}6tFWF#atTGNESAya zIQ`aN7$dGa)wDC`cPaB=7v)iLmBzIpi#ym(G9FRHSl25oaZ(y97Dd^D2TjaEBad0) zsD~oNQ{KeTm{7YmjTjENHwZl6bG?3Yn5Tb-3NZ-gzKDM_9H=)jSn=rLH^RJa!3@%9 zH;OX7i;CmE9=}Dfg&b-M79pk+uADm4dJ>FNR`cHC_S7m~u?X`)kv7LYs6Qhm;CJ_~ zAR6CjfV92i>rb3^ZwgVn(}CI53TNTTV5LWc&|I7M_^F`B?%IW4!UO_m{r-9d7YH5` zqxER=%~kC_*(v&iG+#^Sk#z(-Xmb5B&TM2$HBHs2^IYft<~!{?o+y*c{j$w?xGsBS zL)IFZp{)Y$Kf7k(=k#oZj9!(sy$?GvkHUz;>r_SK&%)_0*XG0OwCY5$L+%fWZ=ZPY zsb1h-w2bb%RNLiun1{7kp37Vk1(}T=*opt~_?lB@ETt}Uqr-TA+m@EIW#~o0%ILk;_k(gp**91o}JgvWWrDuNA*LQgwMV4@z0b)ho38`?Jp(Jm_mKfuYxWv21) zMqAfIE@u~$$>j2EO|;&5+@Fb)9yTwL4)9TznPw|fQ;GhYHL=B1{zr^`eQPlLI# zO=t*%KK|g>A5g#kn)T1XiG06UT(eyCYOc8PlCY24O2TdkNL%4i3GhVDhCC{@aK+-^ zf(KZSXw4Iy@AWAm4V=EU=8{b9ke7|jbBQtnX(JSqs3^Owj~Wfk+D@B_;Bdt?2}|() zdyU(n_z3YDDdoHLSUT!*p(5B#Pad?Pbx&+Q0lKVX$L<~R(|gXNxa9Lc7Eq^@Ea@ z1i$&#Rg683ZZ|H~`A=oR9Q#XVzl9CdW}%_ak?te6oSLc8I@RnB^50RY0__s{x)|e* zCGqr-_a<-8&+C5V)=SnXV`G#EAsgQsygy$IRMB65^@e7@iMjclp0I%tB3(#mtgQOF z#(9~e&D=)Civ315V55{TfI0}vFWpdzX{NLbcvAb-J0V}*%EO}DKfaB*7iEcL$Q|=j z$7(n%a?PpfjRjb*pxc9mL=Ka)?X{Y`)Eb}F=;_QtGPGD7zo*JP9cNcv867tz-nLfpUO4a48R2|&3iR5Lj%tD;mvX%7AyI3^bs6`1cBog_H8wfLk zmswGYbdo9lp*siJ=c<#8ifrjBJ|M?HaDv4Ru=f)GVA2Xh9`VCKbVd?y~TreI`ul* zRAF`EiJE?G@FLf2L3^wy1>=ul-t>D!V=Hs)#s{#3ATS=d5?_>KvGmhJT_duz9@2;W z%=W@z#2OXzkm<7?Ww4dA0}a-ZU%i_6Ul&;wrFVT3bcu#9C+08u&xbvw>YWtI{JYCE z1`oI&#m*ZdH9sid_Y&$_IH$tB^WLKU1_d_zC$w8SHg|g^nErTjI$8K9p7tn zZ2gv2azwx0NpQng#p}kl#GZ+Bo$rPn{ZrMeHLJ0@-P8SKN?FEkRL;SujevA6)gNUZJEDRTZM z=a3EVUCL2WTwkjrWGAcWZ?<~Gcu8jM2PM}z^!7!9&gOz9>A#c;I*d^oh9A!48@0Aj(aLFS868-s zmMpwjyz^LCH$=NTQ4bi(w&KuaiLr^OY{twTu(qq1*Zvw#8D~>W@Mv_-NI|tFk9d3J zgz7H6(N(-Dy&^|;5#C($oP4OMuN$MZi~5|Q@kwikkM=zN<4WxHnK8MdiGCqOTJMFk zo=@v^X+B42`3t3oRU(hnMWerQE@ry3aIQW&u={X+u3Pa$yLuY-=WE(5VfPBCVrK@^ z6(&*}DtghK>b?@kZ`P|WG%i6`h)=yoU#>3N*;tAYN&y;%vqc)uu2n^y?Y941$Kuo`Bk@Wy+sOD=qYo zC9jO;bi}LIj&>}j#MGTf5gTVU3i_wAlAVbLIH%?>Kemh@xthDjJ-B!hucvPm>?;i* zeuG?1Xw`Qe?Fdbu?bPl++|^OV-c(!W4&{lFw&`29pFG_4#x=*u8*7+@er9o|K9iCW zg_MzdQL%bv^S6mw=MSc;X3PE&RhPCp?G<(we8Pe%P7HF`RCG$!GPFBXeWOB^jeHkE zq=H{2!5w*cH5n~OuDGY);p^?knUOrz7)v8M93(FA3>9Lcu|x0j zB+hE)2776$z8r(I%Wb0&f(aU5fWkbDF8SI^W^THRN68J^xO@mtFV0qyhszx#+PL6b zD<}J4=y%eokDBdVoedOseRP2Mto8`${^>zvt}>GBG&KC#)^SEZ%hP&h1R^7c& z_{Ri_dt*1)>P0T-j^jI9{DU?weECg*gBi`6!MJt+G`Q?WeFuzX|MdlcHn!%*4_*A7 zq*B)!1;(P&)bTPxQohO7JnzWStj`Q+$84R5h-G57tdsU(-bRoj>~TWW@XYO}(v{=` zXM_fzA~P}3@IR17HC{#&^hw;>!Zv61=y35Kf+dM2KQE0u{d2%XhE7a}V>C;|yLK+A zyAV6?~5M9+=1Yb=Jfjmx$t!CM4{-#K8<(|6PDpvC#+TFv%o zzeB%`t8t3MrBs3z^m`q=c9_5V0e}pt;#wg`ew;2WTOp5bL4VA|m;tMZS;?(AoC&ox zV(-q{mt425zX%}5-^I_$ba2#-mrJN31xh>I-_2oS-TsWOpcv3(FW#H)&4f0iz4!4K zF7ZoN#4fR4JnP{S8Zh!_usFlX!45HUygSDEh4CrAy>)TQy|1E_^!sdEqM{cu@}`gR z-E+m)(+4Pn*)RQA_D$0Ph+UQy7pL>rx!aS5?y#&$;m)r%|LSZtwUcg6+{>P$^WO7j zoseeoRCca%woA;z$leB@#IAvJ^CXL24(%mcb}8S;zU-V&mGpTnTtB7uNnxWrr_*;= zs}=JhCPSKIm}cakLr*30l*f;e0jJO<3s=y~Q{mjRbyMxb*KV?gC;oaP+i^|GdG6+% zkT32O));KxLhfSgo(rKfjk&$_LzNsok1MvaKS~ZCFU^y6{1$xB`1Zy`-0O?;p+{X$ zO9)O2I2=zsddaVU72(NM;8ayZZ)c)J819Czrz^?|Wj#I&&}n((4A*RWv)5B6_tch+ z@2bToO3e#a`HwXfX}t`>VwkPYOH@&4!?C%&`$MoYgJ<%UjPxWFoyS;P^4ljm`RX-U zsnqdyKu1xC$t3;l9ecP(tQrGi{8%G)t{C}c3uXEvxx9DOwhT6mm=k}8&1@oeEOD^6 zcljp@YwPCV@{Qa-U#J}48;#4Cf_0&JL$uw2!xNowlA57jCzodQXkn#4^8J8>;Z$to z({d{*jE`_PW}`eSc9fZ%as*3L97QL{3Tn$0u)|xZx&|n^k$2FN=(|(Y@NEO#7J?Rf zEqbeNN`8F&=Q}Fj9?3(Fbf`z9Cgc8x*4uPPx@by4=G(N%&UHAKz0^60PwWOuPqkHLI= zIyFa%?>#>Byq8VTEngJHIc&J@m$Nl4DtrMY;&`+)hWI!?8lUyfA~aP(u+IqSjSz9jjz^)h1;mu;L)w3agc zR+i%pl}B-l_JP|wn^>QQISYF!`wpE*=)@a^1VK#! z`l7PI#s`28##-@*JCk1Wk|m0Edgqi@j0^j?(J)M(jPAF{y~RMDo}z#JDmHH`%_LRd zu)M;*gGIc}nQ%U&{Ab*ck;ruo7Wy;byGHU4;ti` z@_smrjiZ-cpOdQJ6`;$M=qt3n4I1Sbef~NbpV!LZ%(Yc@NoOujqTZyuc10Vz&23&y zd%9et%Kf?`p)@TTY-8s8`Y+GKxxB?o3LRZQL#BdBg7c;dvCpn($i_7gAFEYo^Zv3( zilJe1D?@DTzH^^PETQ{?Kyy61npr8}%^P~56+KnL-GewrJO zn?7F;w-)GSS;XaS-R}OrJ<^h`SSFh*@a;VbB2UAF*)vP#r$vZ)V;>QRw<)4JO3f)B z2a_RvleV1DUy-OLa#D@`X2I0qhiY=9`;SEhrwlX6TFi!&$>(8l3!eSvJSr}e!|P%T zPlf7xGfue-qH<`ac(LuE_X>^R1Iu>aI0^(2DCQI9*r<$PjYFs#_1M15vQD?ARfX3X zbYXPn0)yi&8Ya@Wlw<^31g54jDmERjVi(?!V92)aN}}c!1BU}VZ>`SHNn`6jc`h>Q zz7c$w-0n9L?mN_JBUUBEM$q6bs+(@QRhJZ@c=$0R9C*^opsmxOr9pR4l|ySVQP|Zk zCsQSlz4@1&dp@uBfl|}&@=x_NbWKqpP7E`$APPZcGo;BVYL(d?@^QMNKET?S`op3m zfrgjq!@R9fx@N6tPj?}rbbLjpyLq~Y(gvmYQlm}s`28-_tS#o5LjgOSc5Erblos9| z>!_v((KSO1z*&3uKCcHvpr*v|*ol=F-_6`slh)wvxFrf+y4s*rL;PhZrdV1Hmr1jN zwue5i@kzDeMz6%%ou|`x$j*Ny9xFVF17@DZl4}y>>0({uoyi)kOSr@b+_#CB*w?P_ zAt4r9tKLT)p5Pg6_9u(5=s%HR-q%sOxSs@Lo*Nuz*FBHhCK)`;ULo!32prxpNv&oM z`e7^k_Y<}e+OD2JpAQthPt(TcneZboWP02J_#H8|+_W62pv8wXnHsPp^f(b-`qE}3aiGMZj4Ba&GW=3hEhf#z9xV`< zO-8gfe?{;#qhF470=}|QzgSt9bDc!W>D^lHEwR3a&IpRF`?pGP)&-OK`SYI@*H;y7 zfAp;~Cz;2CXp|{amAben*6}D7TQ`YcmBMVW&z15g`mF5UR`KmKov+#l_rzyQ zk5MY1f#$wcm2tqSD0$h)%NNfx&3&Wdmc&_PS(fw4s@U0$4k%otWG|uBVh7=9HL20Y zeL&)Yzr-cW>NB<7OBU0U1w6>@bkx54#Hm`b7RBKui@DfICEG^evx%=R9VcqVrV;c? zY!yvA#mviNAS8fI@Vco}M^!%)Y;eV5UbmmgCh6uCdHySVJ#_7ts4uG=q3bOP50Bk* z%q@vah*n+ase4dUky5ou2D5pL1^q2azrS!K@Kv6-AmSUIcO5ampO_u+=zg>5X0_N} zy{_s+E$re}eLXR|WiqqRSHySUH-=KARLOV$QxYNGQ@2|ZIE!}`k0SKp*{wQB@ox4? zrd#Fhv}Gon!w>Gf!7;~HyjwE+rE6;}VD}E_<%r?0y&9jdi=!HW({)%%kR|ju#6-#F3jjQBQ0K;0J~S7pGZpWUAbwg z!b%n1+Y5nrE)*_1&R6<*(-40J`fpM)Rn9#G`tI*}h^(H8-FH-E!b?2GC+N|Y-0xm`z`ZA(;V?9vxc6^|W%gtAbn*ed-eBGMzc1?GvXz6Z=q#iz-3Xzc zd@{L9H`II_68MCx$!d22Sh5U5~gVfJ9wO!h$p}GXjEpT;v z4ViaBmJ&Cq*d=%-210Q<;28myo`PQE2u0K+FWuE_IS#jnt;doFZ`r%+{2Z#9GwChZ zB+Ou#n==L@1Qu|0sEjz-z<&rn`@Cv^$`l@#QzG0BdBan@dSu(LAFejdN$Q6J4cvkx z*E-6%ohRl)y1#R%%_RhN>1yi}_FI}&`|p24UDvGAs<|N+Nbs+TJN8i_K3~Q=G0(^l zLprnHt1odzUROO!l9B5kJECNl)tu5TeMY7X+bYW-$rspbJ)~sscRih*lLVu5lT#+X zS5r7W*SqWb&P^xk&S6pQuV@aigqG*f{?a(^{$67ibMgdt_zfc66CdwaUsEH7`59T~ zgxFeNqm*9?(#RpK8Z*Lkn6)AvSN2}J$FqdrG3Dby*LSQYyynENb($K{FT%oj3*6eY zbkE52E>fDmSNjj8PjYK}xRh_}QL^Wxdm9JD|AROwYbH0Si`B!px?)R#ESgvQf-Z#jbJurtW$BD2CA;ryn@M%W z@Vgo|p2GLqf9BT@_Kv^e{Nm4`?-Zl*HltG;|BjXYfx;c|#Z@={uZHTg$9gD=3Y@W$SvL%c5)+vm*BW_fI=_bDp+;!8wvZHz^D z;D!U=Ilf)RTD+rR&l9_3`z13y)*Icm{v@!Cz1+`+^Qwb)vuKVcs(L4tAK@TQP zf?9u|^lse;4Cb}DhpK047Q$oZpyffO*%|G$poWpG2wf;!2fs@QD|H`T9;S2$GItZ< z*|85Zen^VMD>3l(Mp_$xeLt4kZGbh?#^s3EN*zytLO>SP!@19~Z1q5)fQzOsRE&W=4UzUPP9hnI0Ik=Dvr$XeXH zsu}*+g7}vii6ZeX4}JGnA^y4--?tzl^^RI$!`NAbSJv5nC}GxrqVI<9LP1NUon1%> z;2dizy+q*X6eAAmlW284#Y5tWw|UBbS@5TrWGbuicG3+FsNHWaU%S0Mzi)b$v!{Hr zWPz~m(CC7vVFCjdXE`L-)q0@wKK-T4O^lll<|Hi4LJZ~G?yNk=0C{NGe$yd=#Y4K3vNG*R2luv zKzkA27edLaafZ(3z@@BM?7PFxd)_Jv401OhBQ?gH9K9_G?XxVMp#T15d4L}wKM(3& z3PLR}#5J(}si18r4aNt}U&~+V^f)9im)S&$2V9A>;gyuSlbj_-{p?G}D76mJ>bfWT zvy(+)z9c?~{8{S$s;gH6TiY?^(~9BQW9=ttj0%|cvPW|ie@<8~n;gyG9?Hao;l##r z4jZ{9K8P0Hn2Vi?W5vo~7?E0tQGdGX^M=y@zw}f?`vVSEtPB1*A`FAe=mbMieQS0p z(SvE{xQn{7N7Yq>a@Zh1VI=sE?>jYu>Bey&Ii&z9^1Gh4GnQ0keBfgH*$^O_(ZH?< z6cK8lQqpA4+!mMpqk)arqM7I)z*S20oulWW|D)$k+*fpbyBE;1N2`?_#=j2`jQ%-4 z?d#eX@6%7tvWoi(sX_Pk0~#hu4wLl1?qp?tF=;4vtt3(Y6VQWVI8)cgp?_%XiwanJ zvJ1yO#eT$$KJz1!E2fR49pb$e{`|KoPw6)LZ0)SBvY^k$CO zFLm8Sf2Kol96RS1x!zp7U>k4~Wh$E-GGuSb^l*SZeUw!k?rnEbnI*Mg9+q^66aGga z320{;W(JT`XkwHH1+fU06_czk8YAqP@O^mujk(g&+0Vb-za(Nd0CafI9337*2sS)0 zBXIzOW~D~eljl)bQ)@B!J9N&s?Tv-DclEYF7ZO1T5s*3+wWAodl>6p ziPT%#yL;?jpv5UL%kyT+KEL97Dv~Fb9x2wP9W3(;awEyKJI7NKA5FIf;}oS7G3G)zrBxWYwyY7 zPq|JJq|0hO`^k8}iLBu)!Jw(&i9&08GM}onbR0=lmw0A3tc&&B*F)BH z-sGi(Z9l8l4EF#h$&5e8-Dgc>{%von@L@jqpjIMVKnX|1${yQ*A{qaTePiaE%90~c zZ19lJflBi4*`qTVs0&stW|mAB-I>IBH*E1n*Y7GsE#sM9Se{HBzTCGY2M9@GB%0ed z1+e)YEI!NxD_#u1#EdT8jSW7;#HEk;s*ftH%7*d;iD;I>4;Nylm);JAX1AaAJ`hx* z&T`L6ZY@4i{A_K1lJT0p6XYwkN=7=kLOd|$61@DJdfL-0r?H)E8uMZisHbAHDN#C4 zpT*xZ6XQADBtJSDrh)rA1Rwtozu?dPv4-Mp^ANJp(Ex`T?Bi=3A)ICUUQCXX3*we~ zn$QN&FnnlVYu-rtrqS|CQ7myjJh40#Aad6&L|H;wq0{OkGF!z@2$y*kGD_x_c0vjdU!1heQ-qn zs%Koa+42-)l0%8`j#EI<3Ik%nKEY-Fh$~D1U2%rzd>FHxCI7NEi?ifFyp&)qJ@t)1V?3jKUa`25mzd-T zS&M1MvDj4f@eSemtLevo$FB^*(Bg;12|F>)rXwOgX9*j>YX-Gb_ZBu`H&4k?zx<3+ z$8Noy@w(l5Bvo00jik(k4}MJ(enJ z7H&C>va%8$2N>z!M&q1=WyjUt8(aGh1mxAkASl^zs8)S6v)6 z;>T?X=|E=v#-)Eco#ED{{{lne#zSkmove-Y+^R1pdCopkeMzLzF(sqFqc_r-!lqnl z=vAyww4$qW#0MT9>9vw#Xb^6fv_;N7${&i>U`{@87QeG!8y`*e-#c}o4gONuD9s|R zPZ%YIBtG@jcp2ZH6=v*5Z~S^ws?$R|AgK2Ax8ToiG*&}TKA>s?VsKDx{LD59(Bic5 zrF>iD48OEoSy&=k7(0WWCVMn?+3W2=wE`r`P*@@-M6b5t`QoPa9__&6OfAu`tOFp= z=zoB2Bi@^wjY~)oRqEZ!6bbR^QkZ^MnV;@E?Qt}BfD3GnESk%;Rx}!Q5*Zo2Az#09 zNmNBcueWVbpqS)FjUDmIV$-wK+oG2$|ws-jN!C0kw?c=E|xC4_#{92>lICyRvJ0Gt1VhF#gsfCkcMhnh85$~ zozc*rrIb!yuU-m$KI0fftH4q(ya2DK9nCoT^!V0(@hgerDJ#M7jfMWoSDEsr!e8;E z3R^VP7Xzq?x6^L*bw1ji+%~Mhp6L6iqxn{-n`4wxS)@iE?eCB}ZOmmW0YffJHi!M= z-7z1LMX>ZaA2xqH#Ea@@_#R4eApn#m+ekFxG`)r$PKXqX@*!ka5)+H+O)hU3gZ*{j zvuV409;PS(mm_F+YA(;44i#(P3Lj_XnV8+`%LOpOX0IrOAG>oq>WFhpjtu|-Nlr@G zc&DUKBqq94tPzYimgLe1l?0dR+jk|pzT@||-C=5Lgx#Oe4W-_3F|FL6Tv=XSVXjff z@~3E@g+tujPtlgN+jGW&Z;~lmYDB>n5m3j3E1n+7UBUeAn^hlZgR0H) zI}x{*bkcDex%!cOP^+APK%V7XSUUFjt$5mxC$BzI3Ul5{k3>}Nhf0|wd!m441)=PJ z6lzuxq+I`de5Gtai;Ztg^!Mck;)3g24`dZ_aUt74vUHsxG0t%=SlJ|${JPz%h)42A zk9j-TT9uQPW!z9-zfyFf+Yq=_=u+y|C{=V{>%y9-jrRWS$;9N-__r_OGOyc+NLQ>!S5Ax)r-%qqJh{zzBK{wTDD zVZO4SJ~p;!?d3kH$d3j;ct;$A7+U1y$blY?=^XaxfA*lXcKCwc2O=Z<6Pb0X&-N7V z9x&>{5l7W(K`{v>`{5Z<$LR#I(}Gk8!#@xyVVkI4@>PU`W_JSm0lM5T2LdmR7sX|s=I65i=Rqb~cw!OYJx!AeThB-q>2S2LQB)f3* zl627`#v7(SKevk&gXc+J35~eeMeu5i!vz?W0bLw<3qn2+9P4L(!f-h~d2^m@8?;%G z`RT-0(h~IAmVT@E{>9Ngr0d8TB12Cd+xO`?`3o8&GGqA={Lpx|rq4UN(!9E#@cYfvkowY3--l*2^)<#D98ROMY$nI}7I9ZvaQBAHsf^9}+|df(>v0wjp)5Cszfm4lHi<4zx;BBBzk_)vJ!#gv9>rixg6<<&g;{?%!+HR&DWpY$y{Q=jMm|> zP~+@+&ae18Yh84RqO>3@3ZCgMTK>BBT7w2xV%FOug?jo9MLc~_w!ow%(r$Sqp5sj5 z_7drxjBtb+5>NRijuC`2UK!1u(fY=L;oKsl6itaXOJm?d)eETfkzFY(}OXTH5VE2`hOrrlE! zcMG!GdhlS~mL%sIZH)|%e3wZ%JQEB03}ri+;oqs=g#6W-@C58F;M!f9@z~PWjr1Kh zm@gDNN`jr(G^<}YBZoN6u_m^*mPq%671rk%K{DAlb({%65mjs<*{=rD>IT-g^PKQ8 zH0cxQI%{peOXT(j2~=!C9wcKo1D2`Be9ZWtWv|;dAukl6Y*Ji-!TZ8^%yZLv$naHF zrZM0n4&Ja@6^S|+X4``EA_51g)4sL8d=+;Vfx}9w!Vkh}wmx-1;!Qv@76wmYu@$0h zsqYM(wKi8&hyMbWO!w!UJoEAhY~6(9$V|iHU9<`^`G&*YpsloR_E5Gzc4nOhm5;r~ z3_ftdw(_~hsa#i+c(tvI{jgloOd%p6R++-}S^-W#zm|{X}UitP^qd94RNBS7~ z4&=L!PV`%|{0HJlN)CyT-L?^}2v@dxB4Ln>tYpU?2MEWdFRZT~u(yGid<#O7aQB1Q z0`3W|Lr3qCM@TD-I!oNrwhXAlxX2ueEQp5;Cf$EasLy;{ndMj(J%_&)IG zlb^4}MPW~0!s1#_DATtkb*r*cH^`uD-as(cvITj7%3B@(&sViT?*Zd4FkOdj*m^uLs;lmLE~M%1Dxhpr0aTCkmPm6(mEM$sqq#QFBU7r;aGJ#N zKTYAgosJPVs|cHaBX=mkXW&1)O8%QT-$;PI z^Vp{)2GGU|x&|}R#C?^Oa`sJc`3-sLttfc4rTRkCr4yZbsFF^o4td#gqtDWRU@-?5dO(d67G@AAZ z5SO)4C_$ifSE2Oqxhyf}c+hv_w@rbrh7q>U6UFzwQ%8eRe*@0NjGnUafXr;OP?|1Ux7vm-T8@)#JDqv3DgWGJ!+l zEiC24|AvJcU?}<{Dh_*#B=wo=9iy|e!1B*=Rq|Rbl!`H*2>8F*uEiFlshIqRKNU0O zvss%+fZ8l6!*8p-O`|_noL|bAQF-0wiDhP-n8tkZ@#jLP@!(P*2>Y-^|qywXH{ zM(!7y(N=L}9i82LZvEG?Q=DaFf5jIk^7HPPBO8}fM3q+g#A>2ZwJ&faHI%Tc;q!ie zw5vyhruwLC%9QN02hW8%cpTQIx^}CVTb3A(4eaP{$=zz>zAh*Q0bAFKA3(l7=FRYM z&5!Z*Xnx4C(&yRI2oq`)ZCbz-!#f1RpFOj|HGcGiE4X-(qrbCRE7xj);K?3a z*AkcbaHh`7)$6g1%>UI2Y4UUiTlnoz%=o z$=+>_V28Uwn&4e1ci_2!~jGqBIMKEkuj2`rVZPoF<>&Yk6h<%=FX2Ty4IpVqog zC$M9M_r~@6v@Cu4j_ddX(M3^sNY(M?|3p8$?mzG9I*U4Z_;2&Nm+hnrK)(V29KTz= zo!GqzUVk`l};Uyu}l3wKRBY8;337n&fuM^vGXqOqrvms%>NJ$1AdDZ zgrH~~^yzPx{&VTS?sF_KP!Iio?jfw(i9d+fI1M`Z6~FbLIn;2>2P3G&$ZI8tk{AoU zes*(0ha>nn5NJbx7Ia{e0PW~aJ%|^T1YnozBcOmW9(7D`rlaHT^Y%);PGoAap&Q9V z{&BGg-)AD8e^^u)mOhS_FVCoaeN`_ruKmadBL;FBXEIu$9!=5r?ixz%S6SLv7$I!c z2ip}8ySB8RH+VjOg`4#yVqaXsNE7pl;s-!aT(ZTj2aQ=tRnB@%nXC|Q)NTbn%k6X6 z@2I~@;YTxIUM=c};nJj!Kh~Nqqh%dN9p#qgHXXXxXO*8GZk|Upx{K#<2ub;Hr9Sw~ z)Wj~tthgvI(#nkK@F6*$^E=ufWwy~`GRpg;*NZr!8$DOiY+*GldK!KAhxBG^c&V}r zdg$pDpoG}Md;b^;?1->3XEWIl`Lv;N?7F&{%18wstbjuyc<@y7abt30#}YT5jiuPY z%vnykH#^9!q%R5z-8@z%|eLbUJn zy{2m-dn;sXGGLKz6l{Dj6RHE1Q|V3Z%Wi0GWc18cBsds4rKPhIyBjf7?2J4~%|yT4 zv2(KK=Tzt!L5_Lq%xtU^cdJXwUt3=MqhQO_>e<@qgcRj}9^=zxnCppM>42a8jimcK zQdoI&>x}~~2lv}eLu}j-TqIl(- zH^M7y)4i+%_@e+5vvago#%qkPiCvZP%O>gpeDGh6+JNxk6cr-P^mk?my`By#?Wv@xI*XlmxPCO@ zHr-C<(w6M~c3H@9(mRTk+lyMSIAx<f40xoTiL(_OT=5|#dh7@|y(lgqr zWzOfu5^+HrL3A~ch{TPclWKVX+W|IvsGT|(TbgYkUFdW9))<72g!f^VN!mWYOIw~o z`&gNhzo3t?U9Npuo&45%fx=?@KFysL$ZQ1NF)Ao2L2Na%AGMLVV(nw)+_sBvSQBeg zW$Cvd_m_t2`irIJ;{kkxx;QbfO@zvRB&AE+vD-Q8v9sIz>_K$5fo3XV2rWln1Ns_G zemY^CC^(45o_XT2<$+lEy5sC2JXGss@{-7?i=ibs_m(2%XRKHsUo3caWqtbG6MzF7G6eZ;zQeIz^w} zhS4|eblkUhiasN`MU;_O%GJE!Py}PGQc*JMy9W1F5L&YS`_U2SvDct&BsHDY2d9mw zI=~MNhMEfM$Ga{Nw`&{atd_nH^^^|yM$Q%*6oGN8?eMo$!50k~Tsp@&BXBbBRP=pb zg=ReaoOsNi9d?We;F=}(u!A4F{+1dd7f=5zh4<~@YPinNZ7dG~#T(3}IANvzV*}j5E!Yq=j(%*rE z%NlL?-EXBV8qaDo`gQWK10rNLZ7aB5HQU<13ZPCKnBYm4xYY4ig^`v#d&90(%2j=J zjGa|>W65VFM{aw;l`}kYSivRLJVuag)3%Lh=?S2zJHRjL@kflF<2*{d4>Q`9aMHOL zIRvzq1g^iT^z3gnY^;^?kFS4XhS!&Bh5S!h2gd=;kAb(IkuLIJtkmR!iwCDR`}n(a zACQ6_od@{e3-%bN*<5?&?mIA~^lO0t7s}Dz#`QlC<@mk8x%vG08tFW>NeX$3PuX$* zR} zQ}AbOeK= zOwtY&X%mJv50h0p&P>L4P4PVOFZP}s}&Hjej&=mxRpbEv; zR$WS&Z{^tY4BOLDl-t$7ekCiKLaebD3d>^OD4l1E-HFuq&gQk-g(oU^w{fCpm|Rac z$5K>$q_t>K%jQn(iUsK*#YtmtHV|&7MJks@M01XeVxBmZJ6e;Y=~<=vRT34fk6@-A zCT*jFMNN_;Fa5VaXNLu*w~=|9&?FHs%gcKJ=c53b2-nk`ME3Fr<|PxO>Fy)R0#6ym zC<9YSpEOiK_Lt80&6yN{rF-@^bu=caSE_;zUIeeVI{>(1Z?mafjCQxN65|CM2FB@+ zOkJ+{8u(u}F*!t9waQC|?k{qQ&J51s4+NO02uu5^J86n4Ky{~s%wiB$^o@?yQlIQD z)}w0NBW%7S@yu+Q8HcA>ToSxZ-nNiCMD|8xQ8|wCKB8NpIEnZ;F0vPe1=hWa(;nsB zdD6@({~$&K$AJO;uI3I+`oyc92!lOzI$Y}zhLvogKRGi)3a$bYeX?vf(6jy&GPRzk zVeQ=dv2=EE;V2l7cJ-%1LD`&2FOwIB$lMu5v+T>+Y+wDa`u~rnuMBJJdD?DqclT0U z3&Fh0dw79#wdy(K$C{i>~+}&M*%bVZ-x!x~lliA(-o|#R~bubE|+L@Fnef*b>ui~7lrBtk8QA9`~2j~w0@ z-6^OasgtlS1b@%VMMl991O4T1X1q#_N{lT1jBKtG;qH;emb338fYPQMW3+$`T3zsw zT?=WR&Jlyj106BEF6$1(jjJeEK+=9ECc%r*5hGu>??~|I2h~?Eoa9cfKnP??eQ)Gq zFmM9g-x?IU9C8r1oDtQ<6*&5?$E3zCKmRPIzOzAj!u6p`8^HOccaXxW_n<_6Bqt2CwKkh$IiwMhzo&2}5}p&X zmxH<;H78KuyjkCL3CpDeFIgjO;lWvJRM9_7li_ChPj+I09%KrU?)P9HG92$`H)DdJ zvR2E=Ya|Uo^#5E5TxDAGujZ^Nq;Dsi|Jg`-18 z9U)sW?`6KXUk%eA|>LdP2$UE`?s)@ic_oH_)QrqU*REVr4$N}1NA#9f?AI=@R*~1US#q;S)SgEEL5q~VbW#{LcQfiWfe*}0xdO0rFV9_} zi?(sugU*Wb+yT6QYFQPwYf0+CH|r$oRGn}&={1t7{kx6@X&G#>1^O_4nZjACs7u)2 zWWyuvcHn04UPM+Fd2*G)+l(SltBqgqEs=lFN^I)u)qn$W*{%j2@T0V-_wj7%PT^DG z1x)|2g0FR1No2cWneH0KB~lM};}1)V@*xHrcgLL56c6b0YheL(vC^-ejn^CQ(ge*L z{yE}rFXuiy*MMDv7`YfrxOqe0SWC$it)e}OafHg8QW-#ytrog0An53{wh+TF9m_Vx z5{(02R2CpjsV#&r3qWO`8iO3$MlP^tGPj0c{C<%xRfUv7Da_S zWdOTTa;bQ-0K@?u_9?}Dm@>3O0aUwWADe!3oChb_yT^`0#(9xmqF-4&VG=bt%; zvRUiLIs31-9m3hJ0;4E>?u39@i4+O zgsvkjYzrAQZJm#*xIpjL*4Ew3)ht6NoJdnF-M7aRf0Dkj-`5~wY1H52=M|i(o?j!! zc5&^#0dg~5C)ZL2Gjd)K+gl{#Kv3$gu<~!+?HXdrZCJQnJ9L|} z7%!ZbbxusPM;9bZm|s>iUzB`dOVg@zWS#DVPtlEf>ZZBM;-l7WvE4cslo(V zDaC>aUraF{y;nt9A$_cq97>aP?xV`#e9NoFz`KC$mRIt-2lV~R46H>=bkuNEx72BtjiT339dCAuy@oy$1{1(1R+NzJvo;YdT(?P z0Trhsbea`T6y5zM_gn4ksuNfk$H9Utr9O>S?8mGsiAz*MtX4JIt6w^pH+vp^8}454 zMxFlE&yT>zyN@lls-s;wUtM_bTnzWiO;jGXZ{b1-JAo$v4tY+$=H;ql{EI2i@ zXu9KVxf8v8wzt5U6fE!RS!lDnSgTXl0mrERG7;KPO1_!MNf7z`M{}o`(aXe zTYt>Q#*=x@>#^D%+Nm(Jzy;Evz!Is_aI%V#KGQUtU$ya_i!44921Ectx@$vZO7cpU zP8}9kc>gHqt1NDG%`8C20aYHA+b!3c>B#1Lm)?MA0aW3zdqAA6PZU%CLMX!rVNVXM9~ z3k4AC*!@B>;T!Amob-}G<>V#y*aTh=64p%dPgQ$uGZ{ewP%HCvkSvVc(F{ZjnV?O*Uc`AnS6>J`yL!eWgcr!ZA_Q#DnFO1 zq{3hOkHvUke|UdkVy@gqKytNvz~DY@Ifv~@V{TO7Xs3pU5aqLeR*Ng{O*Z|ruQ2g@ zPioA~2fCwpy1Hs=Eksb@o?t;d@baiH z5|011$MA)82B(;#nrU(yaIqgli0JsO(KyOM== zQ@*sj=tYj!d|F;ASygS%4Yo$2w1t4OcM9Pwkf}8Wk*6Fi55G1Z6k3-^(GiYht-E9(52-oLJNwh zOqQkO#q3oLJKmSdV^*uO!gjIir-Y+N9u*l&Y1A&kRvhKZ<9mUuTWNKpFkyt7H&#}b zF7&X=zQ_@Bk0`0q*vFu}I}Fo*!J-}zeO8_GInY>S_w64|qck*&Y}CK?clifcRZH~U zkpRcFea`H24S(-aW77wVzEMt}fS7=Qx2(6E=R{lfwKcUJdeP&oHLlC$j()$_KI(JW z4vn|5m*_2?iqGYq{?C2^vIGprhhCfY!Z>ePK&3Ylm zY8drfSHcQ@gMvwVKwsI*8#XrH8;ODG>p^t|YC)NrwuDzVG6hLs2)mibnEJN;&Vhk0 zkjc;HBvKDp9{ljAj-8&O-S^cQF-zcfQL2e$9-&IrsAdCbhq?OX#)o~=;6r8e{=QWb-ebcSvg@6oA=ou z-bYD*valY|8V()a-K-+4WLzhe>^lB@C#i&L+Lew);bl&_K#L!j?b&6Rs^*MXnsIUp z&th3J#bNQ;Wqd&|VPXYrTJkvMbNrg*G_Pe~40URq6Pc;l`NeT5_d=@G;Bss8Pd89K zp+QSy;GA<>D~bYc-hfDx7Y{YXCp&jkyVk=2sVDuY|4)PS#aQ!nvJVD%l{(^<75+gO zuylb)o*?=R_d~r8g1=1DdruFBBAbWELT}UWDI*%vyB4*IMk~{eQH>1xvw1vAIxHnY zRUOkWM-exuqQ}_t_dn6r#A>(=d`kS%I9^a8W!!fl@ZRmFk*?pw1S1LXhGH!bY) z9$Cp8NhqsXqm|vX>Zg#6(C>+eCTb@Gix}(R?`O0;47&O8mH3=bsT_1x0HtI68I130 zRD~18-WZLGl)UrAFAQ#yE~EY7pz?ju{*orjscQx|*Fb`)=!1Ra*&+7Ju~DW`AD9FP zch&lMwX_}WZ_JSD5$A8L&7o72N36AAegjxKCwftQzPQ!PlR5g~3ZCwuAd_@H!7 z_0suEG+97cR=h6U&`AW}oNqhYx4mFK8+=6`}^1VqCsDL1m|~h5vikwhPz~&GGu4$JOU#|i}U(9ByI2}pkoQz zap+b7v>+=$Sj=KufeL=;u#^WfeaTXIg50hK51TbvS0hevEw^6t6byG=x~lR8cSVVT z`(sxDhc1}56$V#!lucnL$*5pHaCWr|FUyD2Jq|mwdx3yMYCd8W6T;Hcy5<5=E1QRu zlNh#rsmVXH788fZs`-6$$F%p?oP(ZoD~86)(>%ip=OTcxD(K8k8kL=+9MCO|>g6VS z*G^PD&rMrtM&HML&B>5*79fyd^Rb*N%aWI7CqJZs?~eJ2o$+{*@1(Y>p{jUvf#v8; z`)%-uviqx!iqX4&^&%piB*I$2(LaI@3gi2whqA!2=IS9;Anw1{W>6TBaTh32f1V1h zhVw8Dnx^uK9-3|WJ^e);uJ2uvc7AiqDQI+pS+o@Zb9 z20c@dr+y{X44?W&#s$!G7uNSi#PMh$krpSddAjva`3-xhN3H^})Q(?^{1{pJ ze->!k+bwozR=IxexVWQVVgC6f$j*?^{e7CP_2?djfKhJ*q+sazVT$@ZK)f&maAmEb zf+ebRbW|d9s&2YGgMgox*?(+ezC*hFQ10@g$Quz!ogjTxWk@@` z-mTSYQ1xHdO-huaPI$R&Pa5a_2Kb2m)>DbC3UA~>N9!u56Xrmf!FQ(;lb|oaPe-%i z4MvqLIKuJsub11RL)y&^@DD3-mPG48?^0lIR|nDQd(!-z#*#WaxlCOMdbcXV80bN> z^y8G>3^~|yelhcoz?xZUvEx)itfosnY}k|L-jpnAgYs`f^70dwxpXPuTtc;^Dw^zE z0%bP9hyFSZaN-h@(g5Fk{sbBqjt3{xF$v>zI%~=d=1R)MBe=p$ttqX)1cCQQuCR8% zCc1GMxy!4IF*vPfs>w=wu=SJCqEpeZuXDM>-orS%8&L$jjCQeeVFh^x8HXj6>DYT83&zhzG?C-`Bz46j9Qu!S(?)$*@l`D_+{tN zr=dHrmZevzx8B{89! zr*I0n{7OUrk&!-@DuUJwM@|Ya#+N!u6h5P6jAn&GOf(ggzx0R&k&X%;= z^}5qC_GQ|-f@Zs|L&KlKr)g~-uOZ8vXJxX|jsfd$MxIL9Jr|D_>$&r5JD`y+brIu`PK)reXzU$&}I+5a11 zqA6(GE2<$ba6Gr-8X{<$uQ!#Q&FiG$`f;MY;0n0xm@+F7c8%Vzw@qH|2z( z=nymBt-i#pUP^-z&h?P3FOFe2WP^R-wN{z4-AB==wyJl9L9xb8a}xY)fB7f$pZ<1g zX~Xl+P%(FWpLan&PAl(op$@PPj5TR z7VCRgyUn{6r?~?&J>EPKN||C{H^2&W#&o`44`1J-IRao+<0%Hy@`|EHoTX~FqHB%z z&erS8IBS817%WRkkt`C`I_uWJ0(@gqQSyD_(Y<@h4-K?iPn9yeWB~b39&*~Qr9H}o zLtE=IcRw4ACIEv^J_-*>ZHc~jb(#BpC!AKp4sJ29;8lg5RlyX!6@c+^V^>6SI?n}H znwo7^n=B9SU5%R7@Xp;VN($E*n=1WOQ92gGFsay{RuoiFh2?**2*c0r3{_cIwwxKi zzki(A;i=#}%zQ`_MI=Odqy+Xz4)oc8AKai;cvs;A(NK6^>{?rq+vltD)=LfRvp;I^ zv<^r2SoJ36$-b5NEn02owVZBmK2eY9!BNcxTE(c9qLv|{srkJx9edf}-g#U^Ub;bdgT%9Sn8!R4c34yfo?F^TxPURwXk|R<5b* zpspN&Dq_*ffi6x)^!lbk!m?ohe+~_JGwt#=7WOKzah$W&p=_zXRM>?4-li7e^j>zyC_5*C{^wdx=|mJ@j+dQ}apGI_bCu-jUFoe1sO z_pt1^)Qk!D6bbv-OmIzEPH$^1-ocgrVR@D2OeK9qEgq!cOM$iynt$e&x~2{sINPbR zHu-f%=`N#^wdBo5Oyd(ex3=5W}IDH$Zp#i&z@F zirSgF0~R)8Bbd3hFmrWAa?&i2W!>pjPeZ}&>Y#92_GyxE+%K~!61-`x+B)*bA^Psx zIwNVgXPH&3m$N=n6kS+SkJA>}h*~;8YFy~Y%33?WHaxcsLOAx>6hw$F!x_f#iMkOp zBxv%urd?eoXwQXGB+aN|eCEnXc|M(EHsuPlAKYpjx+ZY zu*~~Pd_o-^w8yRY7ws;GnI079hW*Z+&bULDgVJ=c`q6_)QTO?rhW*HXyR@;}F;N1K zj3|LY7<#lPha~9Y$N#8;+J6&s zz}39$(C$QuwuWP0jYz)>aKTM4$TdVL5{naULuuRo5f#54ut|H-1XFWrtraCYpPysv zz|jz4@FXe9>zH`Xj3a7&UAa8$329ZiJR;2wrMFCLIGO@}T4gmE^S!310gz8hcq>_9 z5l6zFeiyJ`e*-;Z)ZD0_XVFnOiD>)~2t-mE55+NbZD1nbx;EhJaOFdoTy0cmCJ(+y z#QfmttQ7t?bke6~PM+_l$dJX+MKb0Gfqn}GzMtJi(qF8xOiGj0VJQ4{)}>WemB+HM z*?*@?>`*qAP6fze*=v@~X_uSU*K`dE#AF?$9f;TRi884?+2sJIq;h1;mEnlX)k#;{!j z`?BHuv(I0?%1VPxs>(jinHmJ~94PSYVRAz@f=55!_1b7O!l-Cx`pXYp;oy}gr&VXV zpDY#ZuJ>RLa)N~SWd<^$I8y`o?nng`UmmIx`A?lv|YL0OhBP+7~A1=mIda3(IvkMq? zXSR)>paBx%^W)kdzj`<3*>1=}wN9Jw9`M(z9IK8q-y+t}T=m`8^X|)EtDN(CF1&rZ zpVnIf?*38jaU6AA%%1z#j>O||l<c~ta$L!`W=N1`8qxFhS`fXSZPjODii*snSn z-Rk^ne-ex9h~BpA_4CNeXyxl0KwU-0kI`-^PxdPxnSP;O`ptbIr8KOX zbpP6*v)K;7#h`z!Zn?NE(&W~DrI^&GtncDFkU^827eh{s8vU-vwxf<};}^rOS6l|T z!~MrL0E24uudV&|5A;L_;}ET)Pf>1s1I*g39~R)u6;!HTjemSBx!P-(_$~S4#js2| z`8!6uf9>?s#sKWd-8c`^rR)^r8_EBKcQ7H%pVYOY`!=Ln*FU?NY7Z?A(ebot{#&6Mot+Wu=srhbrNcZhd_0}_{Bd>}h)Am>1v5nOMgr8P? zetLm>tnOt0C>Qho6*hxYrb|+``u5zwBmy_ri}GPESFH9tAno$m5o(&;XPR-m0D*q; z$KlgE+y|vAUjR>FjWEaF+|hm|OMZIPB1B7z?9jCCqtNwI3 z@p%bZs4MS##=!v0G}jlhS%}uC_4kHe|JtLm=82>IBQzZD)V~ldK=;(~KkpgW64aL| zN1D%L%d@N52G098uBWM_5&Px-wVC+z3_?5ml>=d3#2yk_gOr0pC;LKd;;|Pdf9L`4 z_}E~EXxZOO-?|bOux2ba0Xk#+o{eJ5;``dJo-xMcQ` z@73zg2K&O_n=}oL!X73~{L3W$dR;UwH3AtSQ}C|^$s5CdMnEqtAIV!+-b40`f(3{c z<-19SlgUa@DlA=A48MTMWWLICT4yl#8MMtut$VlvfEULO98L!GTkGp@{?%lo(MJ|0sh8T9*E4s^f@|_#+tD4UoV9fLG@w?zo)**GeORDEaw?{i70H+_`7fFFU18ieU1+R|BUm)(os&4h~ zIPxntyb~yRL!48;4B3k|w`BL8hTZHelDUIX_yhXWXU_wuvvH-oAckn(RSS1MGV%9D za)w^+6DV-Cga%PAXF-)#$ZLFE^O+BexWIMEF1~Y}<%tFhnRs9RO@)g%?vG!48pqn% z0m1!I&P%c4IkJ~+JMbGuF!>W93ccVZ&)wy!5+|8!s1*V#8Y%kfvaC$J7Ze z!V)zow2&32x|YP?u+BU<{&LuZQ77q`7^Q!Ei76DVB!o`h0IH!a| zJ%7P)++b2OUjm%2s1)1*ho~>VUmHch)bLVUD3Ne~yma$zz6-L94HrpvMyxr{ngX!zdN z+BDR_IlQNJKrP}Y*X+>!OTcsI{=76R)c9*R9kn5^+>zZB&uV0mNbulcs-IloaToGK z;=9@DI~tS3|0&_cXo6RPn(S$_qY&(wz=C~4u1>jlKoQ?fcfXgo$ik&KfBBf7`lBI| zbJ(D#nJNIN8`iTU9$DqFu0QP8`@P|540nZC6_a?ljk}d|14Pr;c@FzNE-69XU5E(Z z1-<|6<6`1s^}@&A#_5eEihnldH>`0iXu-&C(OF;~pO5&b$g~K>-lli7>T4?^qK?up zF#R2L@v+K6cygmV@N8jrQ!xAqZjFJ!Zx@~X4pCFmC)zV% z5%GngjdMd^FPN03Q)wq_v=jVQ_WFnZ)uDYT=x~0|wIz#@bCA^LrY}sDnRPs;*@>FPvZdM&56v{| zlfI6g%PP~>;`bm4M<9SS8FBlD>3;^ubx9 zdAUfsHJ;ggys-9a19=^v7GvJcVF$c!Th?uwn|7ga zoOvDG7IeIOfN$BU@coVK^pwWQj<=|(Kg3jzBbxnIv`9MQg8yo8dF`{?@fD4^Su|i9 zDmD$;&AVT7;P-kLuE9j^_g~gu%2S& z;k&e{mof87iO@Qj!=CoV8tL;#Gv;J!dLmrLG9{@kTzaCF>)BG$O4N3PWItCycIl+J z%-T52m4yhC7o^XldXZuN@UXWsW+x*o`ue-Tih`~7f{b6YZpH#8bHr8GwQ$?BLVrgq z=KQ{<>e!Wkmvbv;@-!W{&vS?*N2?9`^)}S~>p~!yb-HX_rXiaCh%iIhsD*(WPO)XJ z=U2a2kV*Rma4kq|bFYEGbLLiRaD(xTi{BgT^6Nl(-V~Q=T=bhYY>;^U3Cm=pq%9-p_`UwTHW@t56&E&-{dQ4g1FnUVldl4b1%T zYDnVKT|~g7et;vhiBin&c7wI_74N$_VY>iSO@7W-FfPTcwtbpXi>t4X%c0!e*PDi7 zO~@D;XwT-YFZI;(^EY+Xl6y=-sNQGj^NAj)5S6pBICPP>qso@X^DWlyoq6!$ zoR}))AK)nx1a_f{?`^4V;VtaMts9EzxwU#>&F&Y^vB zr5M@1*gE|_u+B)V$dct>v?SH@wi`Jx8)uQtqNAk@9*A zmfGf70@0f0vqq!d@SA*h<83kX$j|jFU2QbP)JrMwX;i68<*}xG`8qUHHvR9zXs|)P ziuF0pMvJri@=QIzJD_MhusG(O(Ui`XFLtM*SUV``>$_w`y}&4>@4zbiz z@=PxM8(dWxY+TcfdjAuEm&ixmv`}e|MsR;)A^z$&`12bOE;yDX_gI)}hQD1rQ`2(+ zu2IpVFX=G)1wV6yA8Wqla1&*qX>rTRPnIZu!1!jZ4Ey5^)hY;;%zLW4fW3VG^huOL zJSJ$miu0$T+ZU$??Zqg|Kp_rd zx-6=71;^A!*5wq|mgP}JOp7lTg(X6!ZvK1Y^G%88PulkSaL+Hm6r6-p6S^W}ZFTk@ z*_S03!2ID z3HCj+dlf%0?2$7ozFT7+w*x#{5l1fm%N0K$ZTz)&pc~LI{=yTI{*}Cm-7wlniCdGH zBbN{_M4%3BZ$T8Vhc-BH4S7^rG?JhI<$|s)pC{D3#qVfWncJgo9bl7~PSc%qsV5(k)Teg) z^U~)Pg6xDIu%W!_@%s<=I3|d)!a$riy>ZzWq3CkSFh2 zDvLT6)*!7WGg0M+6%g?=p~(9FSybU=d0>ddNLy|DP*Q#h_qD2ZCv}14M4^k(Ve~Fp zo?Lo$*rQRNyr-pO=v3S0xQ0B^wuO# zt|A>tpE(pkm!tUj=1GeQ3oew9X-qP{I;K@zvC&{>aMj%WAyOziNd2 ziW~%J&H<4uhh#m+LGJ3=rq|CerxV%**Eu#(9PKRY>~gXR^YdWH-|q_SH`cqqM&Rw~ z>7ghwe6u7{UHVB$#XU-nacK{GLsqmI!fuGOWPq#)x)-B$^=k((=R)dLWKL)_oIxXJ zRnui|mxyX zN3S`F!N2`N*Lyxzoc{o=IsRNiFxsmaf8Q$Fe}6n%#)x#5O4dVK>1_LXAZYk(b5XQS z1Ahi-#KHT;WW}GJso(25R69;!HB^5Ni|Tut*RjLM&Z`Sk;zJ=y7VjiQdx%}?LY2o}c~r@MSn>-s4Uw@tlt~%fVzF zwxz`B2#Exk48Mj{k7-=$OV6ZbGH=waYQm3x(Vpq8=@(&_NzZxI0ZyQ4Pa!E`bAE7_ z*}Opa4j4FtRL&AG%*V(OI9h4Q>v0T@{0;tBq)bdqX(yv7s58UCrtt2@r`*3tah&QJ z?r4Cew~$+i9reSRv!Exwo@Pgtp0&y^j0it{?-)P_rJbJyxflS!o@veruZeE zyXd}Sd_0Fxzbt_|g?s;{J z%zrZIgG4sd=x>i_U+pIxC)93KFY>>NtqrvGf3Hw73C<*avP^+w6;i2Ju(ulI*xG!4 zP+Gn%EFHL~_Xa)}=T9H#=i|T4#CH4}7PVF9DZN2ga4FxBbs*y9(Jo;H`r={{evB=} z)FaSe@z*!)F&2&YdM?qzVCCjiaU->v{>Z8qpTJC**Jm&myc?PN__h_BKlx+kr52&TwTqOL2pnj0MpI@scpLa zhYK1>4_lDQWhcZ$V72U(d#;0sy!kn#|Cke2!rkHG-GRxg0YEB^Dz7CS@-~IRNsS)# zrv0qxXFi&JjH@o-I{lNPE~9Ib4{p`Y$nE)%@#cgNJs#uKJ5>QlJ4=wBiXm9UD;UkL z=fSYsr}KqrTLd~WoemtPlKQFlLr5s*#X9vHe#`AL#s4C1mZxS%!ckT{bB@H{VarGAqLm31*Bj+WEO z*!s|QcN_6aPtt5L>{3;sXHZx@$$0;v>WMi)`3$I@S9Wcau5Dy*3ewL4wZ_%Ormoqq zQJI{-eEGsEdrgS(Che;Bs^)9@rMwE#(7G^{lOxNJBHNCVqm4wTqI44NAU| zIA^C~zn>brV*_Cx?=+QRW|F;cFn{9g20VVYh5DzYeQsnKeJ%&NE9fT~@dMkJ-RSDxxSm)VSq&xhteF3hv-`w;`{Mk93l8Uq4(->N>85?AJhYPYRpdiK zJE?S$fNev`Mwn|yv|D>&{>Mw1PvMx`A!+=|>)F16D589O!y@W~U$3|rbI{QjDRSzyudA)A4G#rqzC zB58bq$tH#|OWH9bY5d0CH^YuYnZ0Ou??wvZ0zGtg%C(FA?m^o!yhq}UQ#_2shhQf4 zYm|Xp#&6C&5C*~BU}@GM*y(V^x47YKe{pT@iYuBkJv0!($Fn%*sA9NVrNsBhx7g{1 zamxMY_S7V$dR;co*MwmawdK@fZR5RW<+C`@4}+G{5y};g+BMtz9CCi#g|)}|?2%Xg z;{pHt-2GF)*8WQ`wM0N&-1p7{VTCS#mhWNRfK8txVfdK#_({*yukzOJ#oYkY$USm! znJGY3C5VQ=ULF(~Ez1XlO|YBBN~t)nRx{7b*I3uv`de#E^f-Yh9lKBRIS2Xinp54C z9u~Y>RPG6AI#yaItv9Ou3aeYt7w`ry`#&0mm4(IANvYIUXY0Y@?nbFt_RO5fak3B1 z2uzY`R=vxjD=ucEBRP|vNJmjlN5bb@s=^=3=Ak(yT73Jzj9`@2rFatO|HcdeH-YT5 zvAXs{Z zH5Ys=6c2a8bKM4xcyPex5MD=yeB z?K!k45m z5W;97uulLDT9>t&0Y&f~Qlvb71roQ^u@_uMJ8xH5Ra~+i(IkLU$sj_x%A;cLG5f22 z5TlPeR*zBvH{|7mu3byKxx27yT_IYX)BKsn8Lw2m-?Bh!k5#$3F`@qfbMJ{<3-aXdju+96@#Y3u9_ax^jxmx>iz9hd zColekL>keGt-WMxb&UM7?M)o!4XN{tv64K^G5{*K!RS*qf8oRG3yhM>{5MrY__Sh) z&E$8Z2&%o?g}HCs{}9?`(awkf4>JE*RK0CN95mxaG`C`URdK0k-Bgii>Fa)F#i|Z5 z-p|S!1dPW^Z|lu3{^3@JSul6>)dfbkNc=zaQH)(1+=5Fsdps+jc`t?=S=-F&PsN6( zWRQmQU;i=9Wk56_>f3sIVhW=FEy5G+I@^&^qp1I@b(xQ#YV5i`)=X@ROTI^E3VeY{ zcMAM>K2R!r+ZSJUWci!2WcbzEZd1*kWccshUaZK$?Gud@DCbvf$cc;RB^2e9j=K^K zWFjL$`T?BCaIb90z?T||^0SqO*7wK%3 z4U6vlMIGy>2h2V&Oiz@?Czy($qehByaEl9#ITYrB@1?%1$cd}lMHDC>5B0Eqs@=ip z%+k<(y|ig=ykJml9g-# z7tDykf%?F{eXQ^|pd?7NL_%`mk-)^S9Str|{i5sSL|vKL)Ot%)Oqm%+8SEXU%*;x= z2u@?0r|ry94~$y=CRh^gOVhM4!i-3(=T%*|%q;!*wUH=71MM*>$MG;3j#&y*Yeplo zbKF8WP43jZiZD<8+isz+w`fUz4Hzj;g&D_oj$zw1>|WAZg{h1{SJCF6+;CNtKTL($ zG^ypGWn3eYB<&#kYZ*Z}HH-M~G6Km_<`5^LlD|3b{$(1G%TT{nW#%pM0x7H<^@~sj zCdK_&!i1k7`2;?{Y@5jdcgMl9*`5KYoI`X$fdBPW|Lc??Sod4g3tFoaXTV0!;v z=*147p2o?^nhLiB4~HOZk%EuAjNBi|V~{K(uXVT9)d>~lB0TnL)`3*G0Rh1Q-J_J; z5U!z(7_Dw%Yc{`)+NHD+4+q%OOHcDNZ*B5VJ0ydi#_N~Hmoux>z`vt@L^9Hx&Dqvj zp&=7&?>{#lR@0Ufy5}d@(+ajBAkZ#&@ceg+8cwMO7d&AFb;4`E#lxw1n$;9g-1~5d zV??O5**5Z%N)xV6!1GhR(tUWN zgk}`9vnU0L{=m;26RGqxOp;t^P7pjCNpi-1{Ix~|^U-hPfAMgbF)w;Q!&C)&rcdDE zbQaj#)Umx^3@yV1d$)M}f?w%05MKEHFruj|0^X}_0w_p)JI(jm^l(A_yC*aC`y(PD zG?Iuxzy|IB_a9kyc?Xn6*tzY9qqW$w8Ql z&h_9Lq_;|L5Ln+AupAH2)BN(7{83AA?nPL$tjz3ZLr-Jy_nXDr%R`Zg0p<75vkZ>Z z84_q(cHPAIGEF(+c3t`CU#S6HMi?`io8cS`O_KwJo-iSNwg0C>(_y}P zL+jG0yXtrJ?Yir#NlFZ&LuXnAAsnd~H5J3Rip2QF2V3(VG40wqzb)Ez{TGEurw4u; z;RWIaCODeSp2`s`*y_cwOb@8j&A%Krt~ER{F|?cnqP4A4 z5(W19(oho4kt%Pf#7N(szE(0hpe|!sByecTtoiSXurO-(uCzFq2u>A!rkJPHnbZ)Q zR_M_5GiRPF0EfZRp%CL4kXL75z6XxCj5J-5Or%CDc@GM*Y^h=AdplH|G7k0DRn?BBXUNFkxl#Mx1E;gljWC)is_I|d9qJFq^Yv>-Z!aABAFu0wwj{$TRZ76AfWZ5 z0C~)iOi6Ynq6xT`3)0}Zf@Ph=ljT)O?LX{b^oPrRovbg`Y}gO_1kd$vByKYDV`>x)_<^cOoz>!l7GN$y+cv)w`NA-_Oqw4@q{iM*CS>VwKI*3lOGpa z|KBwoKpZp9$92P>Ew(f=PvHbzsx&f>8qxhsW!Le)bujx?-}4}v7QfSnYQToEMo>HG zR!C_ZVEcUU^s|S}bg0haxjB`9lT;kpNf`AM2@5}Qt>YYcCyRV|rXMV}EWg z(tXG>F@0H$h)8F*6%ty6({w*=^Ef9lrP0zzD*>W`ruIn73)L|c*3oRrkQkJ_g49M| z)>b#gwa|h(;K|eHB;0lSzbH1X0JS?tAuXcfo(<&Kcn@`BVv(ftCtjB8zVD~+YVJC? z(leWub#%XR*TQ);?yE8wp{(Pisa_Scr@k&+@v4uF_7PHGc^boqw|h1{vU0XXceCac z=U+xXDKZQVOIBfDOH)FcLIWK4Y${MEXJ3+-X~oA2(OKT`Q&|L-)!Gzh3=qiuQ3%$# z{20G_Fu}86C)C{OGLi+HLCqV)|NSRX&pr7pI=gObMP^I-vu66}Alf%1D3zH@6yQzY zoJQtY^%YCd!O$nmt~2W$&!|h@r}J2-{!xL9`EjWU#qJLp-#6RYXE^nf<^4BB=#btT5VO+{CPSu%u@-PL+ z&bFm_fH#|1up;i?$bxXoRepw}W56kq)^*=W$+W0{R_uEqPb>rXj0KaJf)lwf$Hj(x zStK(CeUEb;jHahGIYg|dxM*smLE)Z>$d(QYFIx z%4s}ui#8|9o2iU;)p>%j*|XSF1(%|umgUkL$Hr8s{nqRQn}hl5uY1nJ`f&L%`ilWd zrXrm`*iD65N?yrPS zPZfEN#<&j8{N1|#Ccit;dUP?23y2D4f@%V0{?#v>Z6RKbf^`lGmBI5|4vI|Lp;wr^ zLPYT#6qo8QV#m@6%FW~=zZp9`Pd6qnKA>M*Mf=*5Zy#uUwo_dzHDHs|?ezRbt|GqS za20xwiF$E`f2T(~G#ekN%|G<&i~rsgh1-sFuMO%&<|B(jvEN;In1ino8ZzWHKFu}< zMN0!J&MZgzWuyfwj$w;&$SIot-F?<;C)A5|n^2-$4g-UVIF*F5QDn7vj@4Iu;zk%3 zS9?BPrgV+EzixSP^{{)^ij)c8uW=Yqs8)RG@T6FZndcvxl~p;#+orDeyF`*wQTUMLPpkteVkitd%@ z8)6%ZUiwc49Uxy^>DDPEU_xlPBt(X8+$3;mw%f>L_C!+54VJeT7pG+$9TUpZRhd6^ zcuvSZ=ur&?y7ko_;%y(8zkyRoI4Mc>(gXK-R&%CyO&Pn8R?~Vj*}plD<`uM#o8m(c z3MQu<7@qwsUe;H;TCFSH1H(oI=j&BMH|=k4*3%r`Mk|Va*wbkHjnkw{#=K-lg)fL! zt6D2i1``>An%B)srn&pw?*_l|%wXeES6}EdH76apZsT%2v|>FD3pXmt9Q^SnQW45n zKzvkfhcxrFIS=294Lb{?QRm-0`50TZc?*hkiO~R)oMBH1x_^GR@sX+`o#Js@|4Wlq zH?#o3?dd^jA3wEn--9k2t5j#;@E7KHkF20b*SJL`e8ntjLxI{o8>D`$JWgJ+l7RdB zQ@2fm0(0umTmr?s*ZItgRIs$M+h1qw4n9JeP{a<{+~Q&NHiP?SH{NMX7l#Chvx}46GyG)VEj^e{|@oy}7ab zJe90vrA3aVBoF#}EiMAd^j5~)C7g<(IwX%dTq_ds8s7~dzz0$B;qEDVM7?k&q(1)8 zbvL zn5?p>DwTr;MLTCI3tiV=j6f)CODjHWU9bwiwJn{7gMn}JB4l{9LfpS_DPKluzRQ3d z>=E!f;#D{81HmoMsITDc&Cz1W3(9?WH1#{n)oI|eL@t|<@lC6{=UNmu)Li6tiLNDG zNCYol7pETOC|H=2Zl+$4Zif9=c7%5LM)*c-Q*2XK>sJI??V$r$gC+8>;4y{ zv!pwJBYHmcT#ej?9fVzUE(!yKS{%JLJ$D{@TsQw${&#)WbBC?X-|BNAqR-!2_hgc# zGApzbcs718pbJLrg$S zcs2T>Q>ew>>suuKPT&k+z!>n~7--lPP#&=z0*?TpK`%%z!Y+V_qyLd~c=zYQWZDxz zc?YxrJ^wG~y`(#V8Yjih%(8B|AmK6z0-x$ zaT4Ccmn)v{9G8z8vSy=!dg*(vydFo@4}T{ZbR`ktf>I#H=_ zQ{=1w2^+P<>i=F`2EW9E@yP%oKaV@FMMl~pn5BL;docA&ZOkRl_xlV}2)b~MhKL!h zh>A}12Lps}2VSf>jlZv0pb=L**(D`k)C?qBG``78LsuJ`CSAs7=SEorRQIjm6t~!B zXTQc=@c@yx&>Jq+-%-xawmBYt1-BNq1YG7R*1pXy`@vV&{xO*N{c>c~70;NLmSCg? zMGOD07Njxf%VSfH`I*iJnu%Gsh2OO+e_gBMl9m{gbUMX@ptpZniUsf`=`!zG$+hxs z17QA;H8H=Gvc{zDAy8QGOx1e&Tx)3#t9`sV+SkKZk~2V9HC^X|e1V{^RsMJ|f}lSJ zFXO&{e50!(2qjzs#78oJ{<$Y{ZT##j4?%acT*i)SL5fJ2nuXi%eLpk%{-B|U;J~Uc zA)F}ezzR;pn7{>szNg$Iiw+Rr5pMP|y9G%_U0*0b9mCSy;a*JJc=TW)+^L`1k&J&s}u-g}_joGqAd|AYUbjR~{_pOY#FvQ^Xbh-}ERy{Jmj(d2XLT9gSVyB00 zUQDw}9MNi65)!lkdx2-VuPIi?oh*Ky_^)JJNa43=-2W`i1;V?h5DZy3yCk$HHs5nVf0aqiebG6Z12}|7&@+u+Z})QCrIMYU`L}2!L1|?tdbp z%oK~#awGhEBmGui0&P`+zqO@ zusiYGmmLo$oIsLoxvia~DXq3Va_R)ZB%UX+ByIo#(h|R}8?RGpXZh3<5e>xXpY7cY z!iJVy6Glw12BSiS+gye6nWh5r39_BrVmc5gp zA7LD*7u6$nsM9)hdZ>)Px+Hj>hTXdG{XsZ%zj)tu%z!|hWwQLyeDONcClIM6CO@=( z6np&89TJft1$|yG8b5MtBw-XzYlWp%kVX&L{qH71d8ExJaglO~P}t!+E5aT!l6aXa+)WITp=+Y~v0v!xC?xZ3qp!p; zKVRe}*ax!Zak9kPr|&&VhYD4*D36N&)Dx%*ex%#ahn)!<9Yb?isb zlWKRgFi%O*mTI5=?qoW3O*gv`S4cdcn0NFnBsGJ9A`LT#XHE9-&WOIAcR=K4>f5Q? zP-G^d_8R{eJV%IxI|w~Wzs4$YQ_Q=32bApSB4hyJ>3QNf7oRGIlr1H@v{Bq;2RPEC?UbzXo%!S7fjc%i!qz@!5Obth#gJUOx@ax3oUZ zf?MKS(;_3T0F;sW(0=89jZ@FOx3C`zOVTD{?tObJJV4L&#}~I>JR``ge?6kH#JCG$ z%}1n7DqqY{R#J?H`L=6N!p2w2e*OHJC)!~H{q;!X)*_N!)O#~j^^rj-MW6k1{}VnC z4CcD2SmVL!NTW-ibv7;nce_$AIQo99R%-3G=-2)G3cdTr$a^%ayxbV9g4PMEfN%HC z4ZWXeuYSA|>eHZ56~M`U@+oc2Wx)SLQGfN4>MGNfl;oEHrrzfta@nHm{!_isrjU)7 z1?+-D>K}n%bokjelvf%FWSj-;B|FFD?Q+GJD~#EqPC7PtQ$?whG@ravGdc9-Am7eq zL_UP~M8DDVnd)t>6kd?cetHFtd{1@tPGNyXDqD00Hv|X&lQ$V9yma=Hd^>X1Ugn&8 z-aVw0pIU}k<2UCu2WHIMt9Jw9i=NAJkN&tjdqQyZSF_~i%v4us@&Gic{lQe|3uZZp zaG>;Dqq2H|KYsQTYNt8f)i~Bn5Ng45?fZE;i*BPX|7M#-BZ*-N{S0aa>Q z^B3U8q%u&<9GVMOJhXpWm{y8uV4vbLuz z6L!YCyQ^li<2Eq9YGW$Q@GL=`2NHuksPCu2y z?ncvDL&9gp?7~j_(2J99;q55dPlxu;{cPL<*J)k#`LHk{Djw(1I_o!!Y>&g$afz&dbD7Ba z{ce*!#c7`Ys`(Gs@dJeW+}T$T1wcgkf?4|Akbgbt8JJK}8G)49S};_!ox&Xmg%6a~ z%lq$QSN99ofWW0(=~HN*D3&QN+-LqXA9!;0AC|y0K!Mfbe=z@z`~7CbSh&;8 zVJA>OU9?xNOgRmZ3FPzKzsihVxxBAdJo(Rj+21uX0LR8-@*uk9bnGCysde}21BKh} z)jA3Qk5k^@KQDlE7nk>Ag}~5%(EdXAY1zGk)r{LzGv&8Y4%+F>!2hAG(pp*_M5wKL93^gKV70YU;^x{%45OZ?O;E>6v94vIqdD2- z!8gBsO%|j5tD4FV#bBxQn0rIS^`%obywO;2n_e1?h4dbZg`ssd)$fnYoc}F&*JPNp zriJaW24EB5(FA&S+RAL6QDo}$M$FXU?Z$U}XkuQc%y_>sOCF-YO;i?mO`?uOG%;kT zM5|YId{9AF3S}^Ix8paag6t*tHMsiN;4C73CxsDYQ^gXqa`JtG^)HzEXH*2snRSo`<$d@CHwa{CN}3r<^q3OWWQX=rSQ(aoj*7gzSJAH>bd)QIyxIB zZ74%^i!B6kBNVbvIFzZCoeFv5#UE{3`r%UJSnC?Aiy<7R?2$y|$@_WM`)>C6vFy_vfi#wi+FEbiRLxAKLqtUt{h*y0*xfyeaBq8W;f85Ituy9T}q92{w2xn zGD4>TO$)JsIm8(Os+4F=IV??gSZkT+JhYR$9h~J4Gh!>#JDD_EZf@GDio@V`Y;JJJj^Hmz_Btp+X z7h@Q;))y7CRQCFTi~mq<@iJe)`BJj`%uMc0XKm3!qP2I{jh14T@ z?H`ZrS+&7^iBcqhoybsEn6AH1{o=D>nR7Se+q2bR%yZcHFV!VO-s`+?Ma9198o!XC zgrvF1+$UeEC}Lorksk?9Nb=yJ{UEPHXl9Eb70;y$lPJp%^7l*7snqL~-V1j+gtHut z%)e3zc^O;Obb=yC+@rVNIuU=u`-i-VzRgKtKlY?fi1O@?YB+d~n2h8%DX?dgmC}BH znvP}6L)%J!I0!rRBW+$u;DXoh6Q-|qR+zCq6ygvAN^14QdMRk&Li~1-va)MHGr4yO zOqalHNgY3eSO}fZ{4=Ka3g>G+v3w}W$}&1oe+jv=%bMr+rq+(O{3gP z4;d{;9~&=DFT}QKD^1bS7rVUCXMIo;&4=x9S5?vZ&O$(d0pO-ejszr6VKGBxST7Jr zZ@D?VZ0Cr`|Byv~XNW~ng-i^}Dv6asIu1xKFQ280Zs=y= zHfOM=w_IKNbUZNKL<*8<8vz`jQ{6}h^rB0%_dlHMXB%mzzZ_TxsoK2!j-T9cjODPRa0uy$QGJA{*U98+^aqfc3Q!R~W zl3V-RJJDX*>)Y1)t*l%IM4+siz*Yq!kP-RB$P%FD#q_SpGIn!K^s%O4Z^_*|2z{qw z#c(aL4N&(8!7$BGPt$MPp8}kK!}%WqlJS*&VS6~@36w(!AB&5xgtw`@W^6Tv44L0t ze%HQ5%1_<=k+f-;<$`&@Ust5asi2aY@Pp)zDW4PsN=#y^Uo>P_u7$J2=Ueg$i9$xc zLDB}*yU|oIVCG8Sye~miHc*nk{1LEDXUDZ9T+6W(V>YQJJ?7lV*F+4WyEhiS5R_ag z9VxLV0#SK<>fD~Y&sopC9Xe12<*d^=Psak&Nr`ufrrD)@GK}ZB%j(q#5JB>!+fEJI z=#0J6Z--mjqn;e#8;M^7UvvJP=7#Ye3UlUMLIfpQCd9DNAZfT(jdiv6VUqi$;f)wQ zp#J@+kZkXP+AVy`ml~aKtAGb{d#=M;X+j|aDlR}#p!iTb}uwj zeZ&CqZWXI!^we^6Wce&Y%Q%+srU+V@F@ycmOzQh@kpT=C5W+na_tGe^>OcYbFYJJ1 ze#=m&t=dDXal+YYrIrvfTQI6v%eB?PS>PnX9qqHKhD{Nw$TjlX3lXF3Q@GOG_(h*u zhVRTHOO1m)UAFMLXV95~myp|Yf{)eLw_UP`c3UIYHsQ!?g%OP)U7?qDz=Gb)Zq43F zA|OwOpC;7kM=E}-LLI@IQn5BxhI-pWZA827XR?AhA9pyy-EjUOVOb=*?jl`;!gGIT zWwz4w+Qbv=HvCpM(u33&^&29fSJBi!trmXCD=zY#d3Oq~Cj+k3)q~pM9{;}m{7w8$ zxDkR8{8F$PT>KgHi~9X|HZC}KpChC{dI7JDIlrSVaiY9K(1g=yX&4qrL_wSSY-7tc zrO=9z?!Y|I%daLg=Q&{Wiyk;^x85GQ>YmK3Wh2w5Geqhe>U5^?iFUTY0S+mqF#kIr4YeK(=qRtm#4tO=T1O;`yt{2?TtC!_ zSeaVSL{y>9msFZ)4^&!mAwDk$cGSixasY1MebN!_t^Jl#8F{=neFvNj@GOr!)@cgR zsta@hmyUL`FVZ>h2&xG~y8{sTCY8}K4o$LQiH_XjYHxTak?u)cWgac4O~~)C%pqh9umR}FOnkDkT) zrjrs-y^}8#fqjr^RNPTcjqa1Ex?`)4PUKfX>q;@nUKDO^mQ5{N?)>z}A^z)iSqtY! z&Ixo=d=%uI8kUzd{Qw3z1C!DDEN^zs2^*!d!NMe&#vhA_{+Zd2esHOb6&HZHWu9~o zBKL#Yv6w^sqgYmK$#ibOd>NdyD|M(-h2$?AlIwJn>?V&mP8SuxzxE>tpltcuXtGRW zvU!FtCl&Sb=v{u zt^93F_^_l(ad`C-tDAD>>3JWo+OJ=cG-EHX-pY+MF~7Ke^A+FIoq@;U=4Q)c3h%3F z3_@`ejTeJ+8@zhEac_!D<17D9lX85;EArp*>uHfyzXO>v8Syy%d2$=tW8jJw;w|Ro7gxW0a$Unl4|L4}hoq>`=>5 zr^T{Mp@^C_5l&W-`BnZM;-OvK6R9MeutIosNV3I6SGG%11x%iLnfdOwQ8tXYU15e9 zwR~f6Xm}H&n?%Dy0;PQ8K>wz#C__C$7GC|5&QX~WUi}?4-#!mQu~A&9ED~xtr#k`l zau-({6S!8u^j9QEQzQwuRA@!Y@u%Odr=&Qn|oJc zpDctz8*E^cd8Ju;%vQq+cA;KYx%#yumpm{w+PQ?!>mHcfGyi5wrZGsrTaNFnifE5K z4G}{))F}cv4wxz)V~G)APE7$G_?Xms+2p9dBc`dX-zwgyssfWRro3IIvB3)3mtW~- z$$#x+m`#eR@yI08sM<5h&e^^UB)g>to()AO0&2aUJ92WYTma;d)o~6@U63(8Vs~IS_4Se9e+h0?|g0wu_SSE1HMdt=H`aH>6RlLWgYOtsR5WG zz;0HWsZYch4~Ya}HWq6v>iwP(Ok5+^cMST8Be04-8@2a}crRRTSYVetsON6R_I zU=nzy$OJdNW2^8`W2sOA!<;H|y`H8TI76KRXQ2q_R!fu9oVY+J)(Y*}q7o?;6}|}( z=&uhWPIpkHS!VpDFehatvEaKsr)fI3ZSD#5Hy&)9zz8^od2+};m)uc;xUAG^ol&+> z^LrLBXu&}>qrd-gX44aUSWlk+@w$As9C`4Wo9n#1fk~!^ z)X?`2T!|O%x?}{6fgTLk(gcmE{0y~YN93B%{yAlPpcWG}~oa*>(6f4I}V_2Q|1e3QGBD%a4aT@z1z>bd-o+y|< z(@ip)Ub)#t`Ge--U*uR^n)X-POonb*RQiLGW8Ouky4m;m35~RyeTg6q+R%W>_$h1e zX0cWoHdAN_?2A!As9wEV1Y0~~Q!7-Oaxcay7EeSvM zJ-2=)-WUvhFnNLKbXjw>c$9v|?>_Ear74Uj9Vzuf?hkV9XNem*Tf4Y1GVDa>Y@9}1 zvMs8}Gc5_id9o1oO_t1%klS~E<`ih1l)VIWiS;GGLVBo(bQOf%%URX4QapLbc%Ym$ zkOPSf%5q?AJ`c%DYUcL9BQ4M$sneQC+FGvmz`4_fOCdi#PE+w*B>Hf*iR*1sql z%hPPa!`fN*X((IFgbAtL+?+Di8W_$aVQx=#%c4Sue9MsOA%o~id3$J4zeDR&CaswJ z@l?yH5qm0jty7mvUI5pVAKgv7&jW3RP(xxlNL#KuZf3d2%G3w5iFdw9{&Za^yHB3( z_H_6>E*ho9kHCk09e~dIx?Ad$xMbGEXB(%HgM>IJ9a&U(op@UdubYg`MGK{cpwc6U z2XXL&E1l1YMeDc{9_3@~TGg~*jMY1Z-84fQdVnX#CM?hT&rG&7*q#LJ%BY;GF0KPY zK(^D+Ia|kr<0!Ypwa$^ASEYys2Wff9D58gw&6VapqaQ&dmXxE~B^U0Cd)wF7V6mTGkwJ zU*a_WYB>lLYBxjC^WemmsqzDbz;5+}H<)fbvXTy%9b(K5SRrRse#hGq#kUfGvgr`M z4Ub@eBg|C4WLhVBL3xzrwwrut>B~F#Ke6AeZXRl+@a)+#JsKA}y3n2Jdqfp>k2O*- zJ=iisHu4>8=_G6j*lb`d<&k4?3cCct^1H{GsJ|p}ubDxKI&5!zRn^=O>dyXt$a7^UB5iBX`-mO;DX~gCB_Gk>{^w!9-yC(f-V@iW$>uM&@J5VaOz< z^;?XT-!e3;Wq}_^#t~&X=%m2!_*|jllS}UzPNTw-_TSGg==DsR{4QI+A|b8QSxLc;K5)Zk zZ)4sPKZdSH)EbW-cI*@^7C$Eawr^bFmtUp_qV^E*P>TSZ2Bib~NbvR&0g>0F+<$%1 zU8>caG^{Y-N=Q`rBu2C7So(HVg(5BnmrBt> zyt=X*pqBz@ia`dNXscaeIQq>H+lTf=^Hv}e$ie3P;w&t>4paGJ??{q(ivF)EC+E#g`h3|gtNa5SrHNNo8+1inZwlY(uP#P4HaH4FR4o$|ir5Gp>b%Wiz zo?pX1US8t^fXM)x%ucZNqbj2q%oWk%0A*VWRAp~>m`d;2U&ZvctE7#OU-qfVV$ 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 f#LWM>hv~-A$+KbnCtWanfBkduqbivj*GWKZr6 diff --git a/doc/design/images/readers.png b/doc/design/images/readers.png new file mode 100644 index 0000000000000000000000000000000000000000..fd59168ce16c9e2a0ef45303c28c997cfd7740be GIT binary patch literal 355687 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

WWQ!75m3sD5eWTATeKQXB{&68=IsiB(^@ZW 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฽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

Z0Kb{& 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
q}bkg*D>hh9{ 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

?>K~sg0Vb?pLl$oEbcmJ=6mDE`%GlF5 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 Date: Thu, 15 Mar 2018 00:02:36 +0800 Subject: [PATCH 30/75] Add introduce of reader registry --- doc/design/cpp_data_feeding.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/design/cpp_data_feeding.md b/doc/design/cpp_data_feeding.md index 6f7713d949..74ceab9f79 100644 --- a/doc/design/cpp_data_feeding.md +++ b/doc/design/cpp_data_feeding.md @@ -13,7 +13,7 @@ In this document, we show the fundamental design of a C++ data feeding process, In order to handle the above-mentioned problem, a new concept called 'Reader' is introduced. `Reader` is a series of inherited classes which can be held by our `Variable` and they are used to read or process file data. -### `ReaderBase` +### ReaderBase `ReaderBase` is the abstract base class for all readers. It defines the interface for all readers. @@ -121,7 +121,9 @@ However, direct usage of file readers' creation ops is not recommended because a ### OpenFilesOp -The `OpenFilesOp` is the creation op of `MultipleReader`. It takes no input but requires a list of file names as one of its attributes. The newly created `MultipleReader` then creates corresponding prefetching readers according to file formats. +The `OpenFilesOp` is the creation op of `MultipleReader`. It takes no input but requires a list of file names as one of its attributes. The newly created `MultipleReader` then creates its own prefetching readers according to given file names. + +To make sure that created prefetching readers match file formats, we need a name prefix rule to append file format tags to file names, as well as a file reader registry mechanism to map file format tags to their corresponding file readers' constructors. ### HasNextOp From 41894da145841ee00448c9f9ed67b2744714fdf9 Mon Sep 17 00:00:00 2001 From: Abhinav Arora Date: Wed, 14 Mar 2018 13:35:31 -0700 Subject: [PATCH 31/75] Add changes to channel that are needed for select op (#9084) --- paddle/fluid/framework/channel.h | 109 ++++++++++++++++++ paddle/fluid/framework/channel_impl.h | 153 ++++++++++++++++++++++++-- 2 files changed, 255 insertions(+), 7 deletions(-) diff --git a/paddle/fluid/framework/channel.h b/paddle/fluid/framework/channel.h index 9f8fb12098..51e2b03f9c 100644 --- a/paddle/fluid/framework/channel.h +++ b/paddle/fluid/framework/channel.h @@ -15,23 +15,43 @@ limitations under the License. */ #pragma once #include // for size_t +#include #include #include "paddle/fluid/platform/enforce.h" namespace paddle { namespace framework { +enum class ChannelAction { + SEND = 0, + RECEIVE = 1, + CLOSE = 2, +}; + // Channel is the abstract class of buffered and un-buffered channels. template class Channel { public: + virtual bool CanSend() = 0; + virtual bool CanReceive() = 0; virtual bool Send(T*) = 0; virtual bool Receive(T*) = 0; virtual size_t Cap() = 0; virtual void Lock() = 0; + virtual void Unlock() = 0; + virtual bool IsClosed() = 0; virtual void Close() = 0; virtual ~Channel() {} + + virtual void AddToSendQ(const void* referrer, T* data, + std::shared_ptr cond, + std::function cb) = 0; + virtual void AddToReceiveQ(const void* referrer, T* data, + std::shared_ptr cond, + std::function cb) = 0; + virtual void RemoveFromSendQ(const void* referrer) = 0; + virtual void RemoveFromReceiveQ(const void* referrer) = 0; }; // Forward declaration of channel implementations. @@ -80,6 +100,27 @@ class ChannelHolder { return channel != nullptr ? channel->Receive(data) : false; } + bool IsClosed() { + if (IsInitialized()) { + return holder_->IsClosed(); + } + return false; + } + + bool CanSend() { + if (IsInitialized()) { + return holder_->CanSend(); + } + return false; + } + + bool CanReceive() { + if (IsInitialized()) { + return holder_->CanReceive(); + } + return false; + } + void close() { if (IsInitialized()) holder_->Close(); } @@ -97,6 +138,50 @@ class ChannelHolder { if (IsInitialized()) holder_->Unlock(); } + template + void AddToSendQ(const void* referrer, T* data, + std::shared_ptr cond, + std::function cb) { + if (IsInitialized()) { + Channel* channel = static_cast*>(holder_->Ptr()); + if (channel != nullptr) { + channel->AddToSendQ(referrer, data, cond, cb); + } + } + } + + template + void AddToReceiveQ(const void* referrer, T* data, + std::shared_ptr cond, + std::function cb) { + if (IsInitialized()) { + Channel* channel = static_cast*>(holder_->Ptr()); + if (channel != nullptr) { + channel->AddToReceiveQ(referrer, data, cond, cb); + } + } + } + + template + void RemoveFromSendQ(const void* referrer) { + if (IsInitialized()) { + Channel* channel = static_cast*>(holder_->Ptr()); + if (channel != nullptr) { + channel->RemoveFromSendQ(referrer); + } + } + } + + template + void RemoveFromReceiveQ(const void* referrer) { + if (IsInitialized()) { + Channel* channel = static_cast*>(holder_->Ptr()); + if (channel != nullptr) { + channel->RemoveFromReceiveQ(referrer); + } + } + } + inline bool IsInitialized() const { return holder_ != nullptr; } inline const std::type_index Type() { @@ -113,6 +198,9 @@ class ChannelHolder { virtual ~Placeholder() {} virtual const std::type_index Type() const = 0; virtual void* Ptr() const = 0; + virtual bool IsClosed() = 0; + virtual bool CanSend() = 0; + virtual bool CanReceive() = 0; virtual void Close() = 0; virtual void Lock() = 0; virtual void Unlock() = 0; @@ -129,6 +217,27 @@ class ChannelHolder { virtual void* Ptr() const { return static_cast(channel_.get()); } + virtual bool IsClosed() { + if (channel_) { + return channel_->IsClosed(); + } + return false; + } + + virtual bool CanSend() { + if (channel_) { + return channel_->CanSend(); + } + return false; + } + + virtual bool CanReceive() { + if (channel_) { + return channel_->CanReceive(); + } + return false; + } + virtual void Close() { if (channel_) channel_->Close(); } diff --git a/paddle/fluid/framework/channel_impl.h b/paddle/fluid/framework/channel_impl.h index a4561031fd..c194c03e26 100644 --- a/paddle/fluid/framework/channel_impl.h +++ b/paddle/fluid/framework/channel_impl.h @@ -29,32 +29,50 @@ class ChannelImpl : public paddle::framework::Channel { friend void paddle::framework::CloseChannel(Channel *); public: + virtual bool CanSend(); + virtual bool CanReceive(); virtual bool Send(T *); virtual bool Receive(T *); virtual size_t Cap() { return cap_; } virtual void Lock(); virtual void Unlock(); + virtual bool IsClosed(); virtual void Close(); - ChannelImpl(size_t); virtual ~ChannelImpl(); + virtual void AddToSendQ(const void *referrer, T *data, + std::shared_ptr cond, + std::function cb); + virtual void AddToReceiveQ(const void *referrer, T *data, + std::shared_ptr cond, + std::function cb); + + virtual void RemoveFromSendQ(const void *referrer); + virtual void RemoveFromReceiveQ(const void *referrer); + private: struct QueueMessage { T *data; - std::condition_variable_any cond; + std::shared_ptr cond; bool chan_closed = false; bool completed = false; + const void *referrer; // TODO(thuan): figure out better way to do this + std::function callback; - QueueMessage(T *item) : data(item) {} + QueueMessage(T *item) + : data(item), cond(std::make_shared()) {} + + QueueMessage(T *item, std::shared_ptr cond) + : data(item), cond(cond) {} void Wait(std::unique_lock &lock) { - cond.wait(lock, [this]() { return completed; }); + cond->wait(lock, [this]() { return completed; }); } void Notify() { completed = true; - cond.notify_all(); + cond->notify_all(); } }; @@ -87,6 +105,18 @@ ChannelImpl::ChannelImpl(size_t capacity) PADDLE_ENFORCE_GE(capacity, 0); } +template +bool ChannelImpl::CanSend() { + std::lock_guard lock{mu_}; + return !closed_ && (!recvq.empty() || buf_.size() < cap_); +} + +template +bool ChannelImpl::CanReceive() { + std::lock_guard lock{mu_}; + return !(closed_ && buf_.empty()) && (!sendq.empty() || buf_.size() > 0); +} + template bool ChannelImpl::Send(T *item) { send_ctr++; @@ -105,7 +135,24 @@ bool ChannelImpl::Send(T *item) { std::shared_ptr m = recvq.front(); recvq.pop_front(); // Do the data transfer - *(m->data) = std::move(*item); + // We will do this data transfer if either of the following + // cases are true + // 1. callback == nullptr // This means it was a regular channel send + // 2. callback returns true + bool do_send = true; + if (m->callback != nullptr) do_send = m->callback(ChannelAction::SEND); + if (do_send) + *(m->data) = std::move(*item); + else + // We cannot do the data transfer because + // this QueueMessage was added by Select + // and some other case was executed. + // So call the Send function again. + // We do not care about notifying other + // because they would have been notified + // by the executed select case. + return Send(item); + // Wake up the blocked process and unlock m->Notify(); lock.unlock(); @@ -150,7 +197,25 @@ bool ChannelImpl::Receive(T *item) { std::shared_ptr m = sendq.front(); sendq.pop_front(); // Do the data transfer - *item = std::move(*(m->data)); + // We will do this data transfer if either of the following + // cases are true + // 1. callback == nullptr // This means it was a regular channel send + // 2. callback returns true + bool do_receive = true; + if (m->callback != nullptr) + do_receive = m->callback(ChannelAction::RECEIVE); + if (do_receive) + *item = std::move(*(m->data)); + else + // We cannot do the data transfer because + // this QueueMessage was added by Select + // and some other case was executed. + // So call the Receive function again. + // We do not care about notifying other + // because they would have been notified + // by the executed select case. + return Receive(item); + // Wake up the blocked process and unlock m->Notify(); lock.unlock(); @@ -186,6 +251,12 @@ void ChannelImpl::Unlock() { mu_.unlock(); } +template +bool ChannelImpl::IsClosed() { + std::lock_guard lock{mu_}; + return closed_; +} + template void ChannelImpl::Close() { std::unique_lock lock{mu_}; @@ -203,6 +274,12 @@ void ChannelImpl::Close() { std::shared_ptr m = recvq.front(); recvq.pop_front(); m->chan_closed = true; + + // Execute callback function (if any) + if (m->callback != nullptr) { + m->callback(ChannelAction::CLOSE); + } + m->Notify(); } @@ -211,10 +288,72 @@ void ChannelImpl::Close() { std::shared_ptr m = sendq.front(); sendq.pop_front(); m->chan_closed = true; + + // Execute callback function (if any) + if (m->callback != nullptr) { + m->callback(ChannelAction::CLOSE); + } + m->Notify(); } } +template +void ChannelImpl::AddToSendQ( + const void *referrer, T *data, + std::shared_ptr cond, + std::function cb) { + std::lock_guard lock{mu_}; + auto m = std::make_shared(data, cond); + m->referrer = referrer; + m->callback = cb; + sendq.push_back(m); +} + +template +void ChannelImpl::AddToReceiveQ( + const void *referrer, T *data, + std::shared_ptr cond, + std::function cb) { + std::lock_guard lock{mu_}; + auto m = std::make_shared(data, cond); + m->referrer = referrer; + m->callback = cb; + recvq.push_back(m); +} + +template +void ChannelImpl::RemoveFromSendQ(const void *referrer) { + std::lock_guard lock{mu_}; + + for (auto it = sendq.begin(); it != sendq.end();) { + std::shared_ptr sendMsg = (std::shared_ptr)*it; + + if (sendMsg->referrer == referrer) { + it = sendq.erase(it); + send_ctr--; + } else { + ++it; + } + } +} + +template +void ChannelImpl::RemoveFromReceiveQ(const void *referrer) { + std::lock_guard lock{mu_}; + + for (auto it = recvq.begin(); it != recvq.end();) { + std::shared_ptr recvMsg = (std::shared_ptr)*it; + + if (recvMsg->referrer == referrer) { + it = recvq.erase(it); + recv_ctr--; + } else { + ++it; + } + } +} + template ChannelImpl::~ChannelImpl() { Close(); From 4c33a10074b2338878fe3377ea255cb43e332188 Mon Sep 17 00:00:00 2001 From: Yi Wang Date: Wed, 14 Mar 2018 16:36:31 -0700 Subject: [PATCH 32/75] Update distributed lookup table design doc --- doc/design/distributed_lookup_table_design.md | 162 ++++++++++++------ 1 file changed, 114 insertions(+), 48 deletions(-) diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md index 461b27a798..92f2e8f848 100644 --- a/doc/design/distributed_lookup_table_design.md +++ b/doc/design/distributed_lookup_table_design.md @@ -1,56 +1,122 @@ -## Distributed lookup table design +## Design Doc: Distributed Lookup Table Operator + +A lookup table operator in PaddlePaddle where the table could be out +of the memory of a computer. ## Background -Embedding is a popular technique used in neural network to support applications such as search engines, advertising systems, and recommendation systems. +A lookup table operator is well-used in deep learning for learning the +representation, or the +[*embedding*](http://www.cs.toronto.edu/~fritz/absps/ieee-lre.pdf), of +symbols. + +### The Forward Algorithm + +The forward algorithm of the lookup table is a multiplication of the +input vector x and the lookup table matrix W: -Embeddings are stored in a lookup table (or hash table), that given a word id, returns the embedding (which is an array of numbers). +$$y = x * W$$ -It works as below: +When x is a sparse vector of symbols, the above multiplication +simplifies into looking up rows in W that correspond to symbols in x, +denoted by W(x). Please be aware that W could be huge and out of the +memory, so we'd need a distributed storage service, which supports the +lookup of rows. + +The following figure illustrates the multiplication of x with two +non-zero elements, or say, two symbols, and a lookup table W: ![lookup table](./lookup_table.png) -## Problem -The column number of the lookup_table is proportional to the range of id. In internet scale, the range of id may be very large, say 100000000000, if the size of an embedding value is 40 Byte, then the whole memory the `lookup_table` will use can be 3725.29GB: - -```shell -3725.29GB = 100000000000 * 40 / 1024.0 / 1024.0 / 1024.0 -``` -This cannot be stored in the memory of a single machine, so we need to add a distributed lookup table that stores it in a cluster and provide the interface to get value and set value. - - -## Training Process -The training process with lookup table on a single machine is as follows: -![lookup table training](./lookup_table_training.png) - -1. In forward pass. `lookup_table_op` convert ids into a dense tensor `ids_embedding`. `ids_embedding` will be used by the following operators. -``` -lookup_table_op(lookup_table, ids) -> ids_embedding -``` -1. In backward pass. `lookup_table_grad_op` convert dense tensor `ids_embedding_grad` into a tensor with id information. -``` -lookup_table_grad_op(lookup_table, ids_embedding_grad) -> lookup_table_grad -``` -1. In optimization pass. optimize op apply gradient to `lookup_table`. -``` -optimize_op(lookup_table, lookup_table_grad) -> lookup_table -``` - -All the operators above access the `lookup_table` directly in memory. If we change `lookup_table` into a distributed service, all the op that will use lookup_table need to access it using some RPC calls. - -## TODO - -1. Implement `distributed lookup table`, with service part and client part. The client should provide four interfaces: - - `Pull(ids) -> embedding_values` pull embedding_values according to ids. - - `Push(grad, update_method)` push `grad` to the distributed lookup table and update it to the parameter using `update_method `, this interface use is asynchronous. - - `Save()` save the model to a persistent file system, such as HDFS. - - `Load()` load the model from a persistent file system, such as HDFS. - - The details will be proposed in another PR. -1. Design and implement `lookup_table_op` and `lookup_table_grad_op ` with distributed lookup table client. -1. Implement the Python wrapper for above ops, users can choose and config to use these ops. -1. The distributed Fluid should support this `distributed lookup table service` on kubernetes. -1. Implement a `distributed transpiler` that can change the program into a distributed one which will use the `distributed lookup table service`. - -## Things need to be discussed -In the above design, the parameter update is done within `distributed lookup table service`, the interface is `Push(grad, update_method)`, this is different than the current design of PaddlePaddle Fluid. Currently, parameter update is done by Operators. How should we impelement these update_method? +### The Backward Algorithm + +The backward algorithm computes W'(x) using W(x). W'(x) has the same +scale of size as W(x) and is much smaller than W. + +To optimize W given W', we can do simple SGD update: + +$$W = f(W') = \lambda * W'$$ + +or some more sophisticated algorithms that rely on both W' and W: + +$$W = f(W, W')$$ + +The following figure illustrates the backward pass of the lookup +operator: ![lookup table training](./lookup_table_training.png) + +## Distributed Storage Service + +The forward algorithm requires a distributed storage service for W. +The backward algorithm prefers that the storage system can apply the +optimization algorithm on W. The following two sections describe two +solutions -- the former doesn't require that the storage service can +do optimization, the latter does. + +### Storage Service Doesn't Optimize + +In this design, we use highly-optimized distributed storage, e.g., +memcached, as the storage service, and we run the optimization +algorithm on parameter servers of PaddlePaddle. The following figure +illustrates the training process. + + + +Each trainer runs the forward and backward passes using their local +data: + +1. In the forward pass, when a trainer runs the forward algorithm of a + lookup operator, it retrieves W(x) from the storage service. +1. The trainer computes W'(x) in the backward pass using W(x). + +During the global update process: + +1. Each trainer uploads its W'(x) to parameter servers. +1. The parameter server runs the optimization algorithm, e.g., the + Adam optimization algorithm, which requires that + 1. The parameter server retrieves W(x) from memcached, and + 1. The parameter server pushes $\Delta W(x)=f(W(x), lambda \sum_j + W'(x))$ to memcached, where $f$ denotes the optimization + algorithm. + +### Storage Service Does Optimize + +This design is very similar to the above one, except that the +optimization algorithm $f$ runs on the storage service. + +- Pro: parameter servers do not retrieve W(x) from the storage + service, thus saves half network communication. +- Con: the storage service needs to be able to run the optimization + algorithm. + +## Conclusion + +Let us do the "storage service does not optimize" solution first, as a +baseline at least, because it is easier to use a well-optimized +distributed storage service like memcached. We can do the "storage +service does optimize" solution later or at the same time, which, if +implemented carefully, should have better performance than the former. From 5cf5ad3b14568e931d40a124485433916f03ecaa Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Thu, 15 Mar 2018 09:50:32 +0800 Subject: [PATCH 33/75] update digraph format for markdown --- doc/design/distributed_lookup_table_design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md index 92f2e8f848..d335027593 100644 --- a/doc/design/distributed_lookup_table_design.md +++ b/doc/design/distributed_lookup_table_design.md @@ -59,7 +59,7 @@ memcached, as the storage service, and we run the optimization algorithm on parameter servers of PaddlePaddle. The following figure illustrates the training process. - +) Each trainer runs the forward and backward passes using their local data: From 1961d6bca448b5a7aa542aa1a342b7f0a56d5f16 Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Thu, 15 Mar 2018 10:21:24 +0800 Subject: [PATCH 34/75] some grammatical and sentence structure changes --- doc/design/cpp_data_feeding.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/design/cpp_data_feeding.md b/doc/design/cpp_data_feeding.md index 74ceab9f79..8607b40ccb 100644 --- a/doc/design/cpp_data_feeding.md +++ b/doc/design/cpp_data_feeding.md @@ -53,13 +53,13 @@ class FileReader : public ReaderBase { }; ``` -A file reader binds with a single file and reads one instance of data from the file at a time. Each type of file reader shall implement its own `ReadNextImpl()`, `HasNext()` and `ReInit()`. +A file reader binds with a single file and reads one data instance at a time. Each type of file reader shall implement its own `ReadNextImpl()`, `HasNext()` and `ReInit()`. -The `ReadNextImpl()` is invoked by `ReadNext()`. Besides invoking `ReadNextImpl()`, `ReadNext()` is also in charge of checking the output, making sure that each shape of `LoDTensor` in `*out` is consistent with the one in `dims_`. +The `ReadNextImpl()` is invoked by `ReadNext()`. Besides invoking `ReadNextImpl()`, `ReadNext()` is also responsible for checking the output, making sure that each shape of `LoDTensor` in `*out` is consistent with the one in `dims_`. ### DecoratedReader -A decorated reader takes another reader(both file reader and decorated reader are OK) as its 'underlying reader'. It gets data from its underlying reader, does some process on them(shuffling, batching or something else), then yields processed data. The output data of a decorated reader can be a single instance or a batch. `ShuffleReader` and `BatchReader` are both decorated readers. +A decorated reader takes another reader(both file reader and decorated reader are OK) as its 'underlying reader'. It gets data from its underlying reader, does some processing on them(shuffling, batching or something else), then yields processed data. The output data of a decorated reader can be a single instance or a batch. `ShuffleReader` and `BatchReader` are both decorated readers. ```cpp class DecoratedReader : public ReaderBase { @@ -77,7 +77,7 @@ class DecoratedReader : public ReaderBase { }; ``` -All the `FileReader` and `DecoratedReader` share exactly the same interfaces as defined in `ReaderBase`. So they can be decorated for more than one time: We can **shuffle** a reader's outputs and then **batch** the shuffle outputs. The interface consistency also allows related ops use readers without knowing what they are exactly. +Both the `FileReader` and `DecoratedReader` share exactly the same interface as defined in `ReaderBase`. So they can be decorated for multiple times: We can **shuffle** a reader's outputs and then **batch** the shuffled outputs. The interface consistency also allows related ops use readers without knowing their underlying type. ### MultipleReader @@ -139,7 +139,7 @@ A reader is only a Variable. It cannot trigger the reading process by itself. So ## Program with Readers -A `Program` holds readers as its persistable variables. These variables are created by `CreateReaderOp` or `OpenFilesOp`. Obviously, these ops shall run only once. So they shall be settled in the `startup_program`. `HasNextOp`, `ResetOp` and `ReadOp` are required by training loop, so they shall be in the `main_program`. +A `Program` holds readers as its persistable variables. These variables are created by `CreateReaderOp` or `OpenFilesOp`. These ops shall run only once. So they shall be settled in the `startup_program`. `HasNextOp`, `ResetOp` and `ReadOp` are required by training loop, so they shall be in the `main_program`. The ops of a `startup_program` with readers would be like this: @@ -164,7 +164,7 @@ while_op { } ``` -Two things are worth mentioning when considering these two programs: +Two important considerations for these programs are as follows: 1. The multiple\_reader is the batch\_reader's underlying reader, and the batch\_reader is the double\_buffer\_reader's underlying reader. `read_op`, `has_next_op` and other reader related ops will only invoke the top-most reader. In this case, it's the double\_buffer\_reader. From c95156e40ec24573f7d50753c7ae3d2b3aff4fdc Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Thu, 15 Mar 2018 10:25:41 +0800 Subject: [PATCH 35/75] update graph url --- doc/design/distributed_lookup_table_design.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/design/distributed_lookup_table_design.md b/doc/design/distributed_lookup_table_design.md index d335027593..a09f2818c8 100644 --- a/doc/design/distributed_lookup_table_design.md +++ b/doc/design/distributed_lookup_table_design.md @@ -59,7 +59,9 @@ memcached, as the storage service, and we run the optimization algorithm on parameter servers of PaddlePaddle. The following figure illustrates the training process. -![Alt text](https://g.gravizo.com/svg? + + + Each trainer runs the forward and backward passes using their local data: From 714007115290164d68ebe2fa85b4e37749023cf0 Mon Sep 17 00:00:00 2001 From: dzhwinter Date: Thu, 15 Mar 2018 10:29:37 +0800 Subject: [PATCH 36/75] "exported scatter to python" (#9038) * "exported scatter to python" * Revert ""exported scatter to python"" This reverts commit 38745a626c3f937bec836c92c98a76deadf0a03d. * "polish scatter and export to python" --- paddle/fluid/operators/scatter_op.cc | 35 +++++++++---------- paddle/fluid/operators/scatter_op.cu | 20 +++++------ paddle/fluid/operators/scatter_op.h | 22 ++++++------ python/paddle/fluid/layers/ops.py | 32 ++++------------- .../fluid/tests/unittests/test_scatter_op.py | 2 +- 5 files changed, 46 insertions(+), 65 deletions(-) diff --git a/paddle/fluid/operators/scatter_op.cc b/paddle/fluid/operators/scatter_op.cc index 3fb8b56d26..d6fd621471 100644 --- a/paddle/fluid/operators/scatter_op.cc +++ b/paddle/fluid/operators/scatter_op.cc @@ -23,24 +23,24 @@ class ScatterOp : public framework::OperatorWithKernel { using framework::OperatorWithKernel::OperatorWithKernel; void InferShape(framework::InferShapeContext* ctx) const override { - PADDLE_ENFORCE(ctx->HasInput("Ref"), - "Input(Ref) of ScatterOp should not be null."); - PADDLE_ENFORCE(ctx->HasInput("Index"), - "Input(Index) of ScatterOp should not be null."); + PADDLE_ENFORCE(ctx->HasInput("X"), + "Input(X) of ScatterOp should not be null."); + PADDLE_ENFORCE(ctx->HasInput("Ids"), + "Input(Ids) of ScatterOp should not be null."); PADDLE_ENFORCE(ctx->HasInput("Updates"), "Input(Updates) of ScatterOp should not be null."); PADDLE_ENFORCE(ctx->HasOutput("Out"), "Output(Out) of ScatterOp should not be null."); auto updates_dims = ctx->GetInputDim("Updates"); - auto ref_dims = ctx->GetInputDim("Ref"); - PADDLE_ENFORCE_EQ(ctx->GetInputDim("Index").size(), 1, - "Update Index should be 1-D."); + auto ref_dims = ctx->GetInputDim("X"); + PADDLE_ENFORCE_EQ(ctx->GetInputDim("Ids").size(), 1, + "Update Ids should be 1-D."); PADDLE_ENFORCE_EQ(ref_dims.size(), updates_dims.size(), - "Reference and Updates should have the same shape size"); + "Xerence and Updates should have the same shape size"); PADDLE_ENFORCE_EQ(ctx->GetInputDim("Updates")[0], - ctx->GetInputDim("Index")[0], - "Updates and Index should have same batch-size."); + ctx->GetInputDim("Ids")[0], + "Updates and Ids should have same batch-size."); framework::DDim data_dim(updates_dims); for (int i = 1; i < data_dim.size(); ++i) { PADDLE_ENFORCE_EQ(data_dim[i], updates_dims[i]); @@ -52,7 +52,7 @@ class ScatterOp : public framework::OperatorWithKernel { framework::OpKernelType GetExpectedKernelType( const framework::ExecutionContext& ctx) const override { return framework::OpKernelType( - framework::ToDataType(ctx.Input("Ref")->type()), + framework::ToDataType(ctx.Input("X")->type()), ctx.device_context()); } }; @@ -64,14 +64,14 @@ class ScatterGradOp : public framework::OperatorWithKernel { void InferShape(framework::InferShapeContext* ctx) const override { ctx->SetOutputDim(framework::GradVarName("Updates"), ctx->GetInputDim("Updates")); - ctx->SetOutputDim(framework::GradVarName("Ref"), ctx->GetInputDim("Ref")); + ctx->SetOutputDim(framework::GradVarName("X"), ctx->GetInputDim("X")); } protected: framework::OpKernelType GetExpectedKernelType( const framework::ExecutionContext& ctx) const override { return framework::OpKernelType( - framework::ToDataType(ctx.Input("Ref")->type()), + framework::ToDataType(ctx.Input("X")->type()), ctx.device_context()); } }; @@ -80,9 +80,8 @@ class ScatterOpMaker : public framework::OpProtoAndCheckerMaker { public: ScatterOpMaker(OpProto* proto, OpAttrChecker* op_checker) : OpProtoAndCheckerMaker(proto, op_checker) { - AddInput("Ref", "The source input of scatter op"); - AddInput("Index", - "The index input of scatter op where Ref will be updated"); + AddInput("X", "The source input of scatter op"); + AddInput("Ids", "The index input of scatter op where X will be updated"); AddInput("Updates", "The updated value of updates op"); AddOutput("Out", "The output of add op"); AddComment(R"DOC( @@ -91,8 +90,8 @@ Scatter Operator. This operator obtains output by updating the input on selected indices on the first axis: $$ -Out = Ref \\ -Out[Index] = Ref[Index] + Updates +Out = X \\ +Out[Ids] = X[Ids] + Updates $$ )DOC"); diff --git a/paddle/fluid/operators/scatter_op.cu b/paddle/fluid/operators/scatter_op.cu index bdabb29fa6..ef7d700659 100644 --- a/paddle/fluid/operators/scatter_op.cu +++ b/paddle/fluid/operators/scatter_op.cu @@ -25,14 +25,14 @@ class ScatterOpCUDAKernel : public framework::OpKernel { void Compute(const framework::ExecutionContext &ctx) const override { PADDLE_ENFORCE(platform::is_gpu_place(ctx.GetPlace()), "This kernel only runs on GPU device."); - auto *Ref = ctx.Input("Ref"); - auto *Index = ctx.Input("Index"); + auto *X = ctx.Input("X"); + auto *Ids = ctx.Input("Ids"); auto *Updates = ctx.Input("Updates"); auto *Out = ctx.Output("Out"); - Out->ShareDataWith(*Ref); + Out->ShareDataWith(*X); - GPUScatterAssign(ctx.device_context(), *Updates, *Index, Out); + GPUScatterAssign(ctx.device_context(), *Updates, *Ids, Out); } }; @@ -42,16 +42,16 @@ class ScatterGradOpCUDAKernel : public framework::OpKernel { void Compute(const framework::ExecutionContext &ctx) const override { PADDLE_ENFORCE(platform::is_gpu_place(ctx.GetPlace()), "This kernel only runs on GPU device."); - auto *dRef = ctx.Output(framework::GradVarName("Ref")); + auto *dX = ctx.Output(framework::GradVarName("X")); auto *dUpdates = ctx.Output(framework::GradVarName("Updates")); - auto *Index = ctx.Input("Index"); + auto *Ids = ctx.Input("Ids"); auto *dOut = ctx.Input(framework::GradVarName("Out")); - // In place gradient: dRef = dO - dRef->ShareDataWith(*dOut); + // In place gradient: dX = dO + dX->ShareDataWith(*dOut); dUpdates->mutable_data(ctx.GetPlace()); - // Gradient by Gather: dUpdates = dO[Index] - GPUGather(ctx.device_context(), *dOut, *Index, dUpdates); + // Gradient by Gather: dUpdates = dO[Ids] + GPUGather(ctx.device_context(), *dOut, *Ids, dUpdates); } }; diff --git a/paddle/fluid/operators/scatter_op.h b/paddle/fluid/operators/scatter_op.h index 3c6e7ece32..2151d8a924 100644 --- a/paddle/fluid/operators/scatter_op.h +++ b/paddle/fluid/operators/scatter_op.h @@ -29,15 +29,15 @@ class ScatterOpKernel : public framework::OpKernel { void Compute(const framework::ExecutionContext &ctx) const override { PADDLE_ENFORCE(platform::is_cpu_place(ctx.GetPlace()), "This kernel only runs on CPU."); - auto *Ref = ctx.Input("Ref"); - auto *Index = ctx.Input("Index"); + auto *X = ctx.Input("X"); + auto *Ids = ctx.Input("Ids"); auto *Updates = ctx.Input("Updates"); auto *Out = ctx.Output("Out"); - // In place output: Out = Ref, Out[Index] += Updates - Out->ShareDataWith(*Ref); + // In place output: Out = X, Out[Ids] += Updates + Out->ShareDataWith(*X); // Apply ScatterUpdate: Out[index] += Updates[:] - ScatterAssign(ctx.device_context(), *Updates, *Index, Out); + ScatterAssign(ctx.device_context(), *Updates, *Ids, Out); } }; @@ -47,16 +47,16 @@ class ScatterGradientOpKernel : public framework::OpKernel { void Compute(const framework::ExecutionContext &ctx) const override { PADDLE_ENFORCE(platform::is_cpu_place(ctx.GetPlace()), "This kernel only runs on CPU."); - auto *dRef = ctx.Output(framework::GradVarName("Ref")); + auto *dX = ctx.Output(framework::GradVarName("X")); auto *dUpdates = ctx.Output(framework::GradVarName("Updates")); - auto *Index = ctx.Input("Index"); + auto *Ids = ctx.Input("Ids"); auto *dOut = ctx.Input(framework::GradVarName("Out")); - // In place gradient: dRef = dO - dRef->ShareDataWith(*dOut); + // In place gradient: dX = dO + dX->ShareDataWith(*dOut); dUpdates->mutable_data(ctx.GetPlace()); - // Gradient by Gather: dUpdates += dO[Index] - CPUGather(ctx.device_context(), *dOut, *Index, dUpdates); + // Gradient by Gather: dUpdates += dO[Ids] + CPUGather(ctx.device_context(), *dOut, *Ids, dUpdates); } }; diff --git a/python/paddle/fluid/layers/ops.py b/python/paddle/fluid/layers/ops.py index 0b88b63962..14ad18d508 100644 --- a/python/paddle/fluid/layers/ops.py +++ b/python/paddle/fluid/layers/ops.py @@ -45,31 +45,13 @@ __activations__ = [ ] __all__ = [ - 'mean', - 'mul', - 'reshape', - 'scale', - 'sigmoid_cross_entropy_with_logits', - 'elementwise_add', - 'elementwise_div', - 'elementwise_sub', - 'elementwise_mul', - 'elementwise_max', - 'elementwise_min', - 'elementwise_pow', - 'clip', - 'clip_by_norm', - 'softmax', - 'sequence_softmax', - 'logical_and', - 'logical_or', - 'logical_xor', - 'logical_not', - 'uniform_random', - 'uniform_random_batch_size_like', - 'gaussian_random', - 'gaussian_random_batch_size_like', - 'cumsum', + 'mean', 'mul', 'reshape', 'scale', 'sigmoid_cross_entropy_with_logits', + 'elementwise_add', 'elementwise_div', 'elementwise_sub', 'elementwise_mul', + 'elementwise_max', 'elementwise_min', 'elementwise_pow', 'clip', + 'clip_by_norm', 'softmax', 'sequence_softmax', 'logical_and', 'logical_or', + 'logical_xor', 'logical_not', 'uniform_random', + 'uniform_random_batch_size_like', 'gaussian_random', + 'gaussian_random_batch_size_like', 'cumsum', 'scatter' ] + __activations__ for _OP in set(__all__): diff --git a/python/paddle/fluid/tests/unittests/test_scatter_op.py b/python/paddle/fluid/tests/unittests/test_scatter_op.py index bb02a40d44..fb17287436 100644 --- a/python/paddle/fluid/tests/unittests/test_scatter_op.py +++ b/python/paddle/fluid/tests/unittests/test_scatter_op.py @@ -25,7 +25,7 @@ class TestScatterOp(OpTest): updates_np = np.random.random((2, 3)).astype("float32") output_np = np.copy(ref_np) output_np[index_np] = updates_np - self.inputs = {'Ref': ref_np, 'Index': index_np, 'Updates': updates_np} + self.inputs = {'X': ref_np, 'Ids': index_np, 'Updates': updates_np} self.outputs = {'Out': output_np} def test_check_output(self): From fdc3843f22c63dc15523779212c19585f166b353 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Thu, 15 Mar 2018 10:30:34 +0800 Subject: [PATCH 37/75] The sphinx version is specified as 1.5.6 in the Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 60e76c7f2e..c4de740559 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,8 +55,8 @@ RUN localedef -i en_US -f UTF-8 en_US.UTF-8 # version util jupyter fixes this issue. RUN pip install --upgrade pip && \ pip install -U wheel && \ - pip install -U docopt PyYAML sphinx && \ - pip install -U sphinx-rtd-theme==0.1.9 recommonmark + pip install -U docopt PyYAML sphinx==1.5.6 && \ + pip install sphinx-rtd-theme==0.1.9 recommonmark RUN pip install pre-commit 'ipython==5.3.0' && \ pip install 'ipykernel==4.6.0' 'jupyter==1.0.0' && \ From e26f1123daee7d27f0e2bec1f8800630050d1a2e Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Wed, 14 Mar 2018 19:38:15 -0700 Subject: [PATCH 38/75] Add fp16 mul op support and bind paddle fp16 to numpy fp16 (#9017) * add fp16 mul op support * small fix * fix bug * small fix * fix PADDLE_WITH_CUDA compiling issue * reorg code * test for pybind * treate as float16 as uint16_t in pybind * bind np.float16 to paddle float16 * small fix * clean code * remove redundancy * fix mul_op test * address comments * small fix * add is_float16_supported func --- paddle/fluid/operators/mul_op.cc | 14 ++--- paddle/fluid/operators/mul_op.cu.cc | 10 +-- paddle/fluid/operators/mul_op.h | 2 +- paddle/fluid/pybind/pybind.cc | 10 ++- paddle/fluid/pybind/tensor_py.h | 62 +++++++++++++++++-- .../fluid/tests/unittests/test_mul_op.py | 38 ++++++++++++ 6 files changed, 117 insertions(+), 19 deletions(-) diff --git a/paddle/fluid/operators/mul_op.cc b/paddle/fluid/operators/mul_op.cc index e7bed2c397..90af1e2d60 100644 --- a/paddle/fluid/operators/mul_op.cc +++ b/paddle/fluid/operators/mul_op.cc @@ -17,11 +17,14 @@ limitations under the License. */ namespace paddle { namespace operators { +using framework::OpKernelType; using framework::Tensor; -class MulOpShapeInference : public framework::InferShapeBase { +class MulOp : public framework::OperatorWithKernel { public: - void operator()(framework::InferShapeContext* ctx) const override { + using framework::OperatorWithKernel::OperatorWithKernel; + + void InferShape(framework::InferShapeContext* ctx) const override { PADDLE_ENFORCE(ctx->HasInput("X"), "Input(X) of MulOp should not be null."); PADDLE_ENFORCE(ctx->HasInput("Y"), "Input(Y) of MulOp should not be null."); PADDLE_ENFORCE(ctx->HasOutput("Out"), @@ -122,7 +125,7 @@ or not. But the output only shares the LoD information with input $X$. } }; -class MulOpGrad : public framework::OperatorWithKernel { +class MulGradOp : public framework::OperatorWithKernel { public: using framework::OperatorWithKernel::OperatorWithKernel; @@ -156,10 +159,7 @@ class MulOpGrad : public framework::OperatorWithKernel { } // namespace paddle namespace ops = paddle::operators; -REGISTER_OPERATOR(mul, paddle::framework::OperatorWithKernel, ops::MulOpMaker, - ops::MulOpShapeInference, - paddle::framework::DefaultGradOpDescMaker); -REGISTER_OPERATOR(mul_grad, ops::MulOpGrad); +REGISTER_OP(mul, ops::MulOp, ops::MulOpMaker, mul_grad, ops::MulGradOp); REGISTER_OP_CPU_KERNEL( mul, ops::MulKernel); REGISTER_OP_CPU_KERNEL( diff --git a/paddle/fluid/operators/mul_op.cu.cc b/paddle/fluid/operators/mul_op.cu.cc index 0667530e94..757f9c3ee2 100644 --- a/paddle/fluid/operators/mul_op.cu.cc +++ b/paddle/fluid/operators/mul_op.cu.cc @@ -13,9 +13,11 @@ See the License for the specific language governing permissions and limitations under the License. */ #include "paddle/fluid/operators/mul_op.h" +#include "paddle/fluid/platform/float16.h" namespace ops = paddle::operators; -REGISTER_OP_CUDA_KERNEL( - mul, ops::MulKernel); -REGISTER_OP_CUDA_KERNEL( - mul_grad, ops::MulGradKernel); +namespace plat = paddle::platform; +REGISTER_OP_CUDA_KERNEL(mul, ops::MulKernel, + ops::MulKernel); +REGISTER_OP_CUDA_KERNEL(mul_grad, + ops::MulGradKernel); diff --git a/paddle/fluid/operators/mul_op.h b/paddle/fluid/operators/mul_op.h index 38311cf872..b1260d36eb 100644 --- a/paddle/fluid/operators/mul_op.h +++ b/paddle/fluid/operators/mul_op.h @@ -48,7 +48,7 @@ class MulKernel : public framework::OpKernel { } math::matmul( context.template device_context(), x_matrix, false, - y_matrix, false, 1, z, 0); + y_matrix, false, static_cast(1), z, static_cast(0)); if (z_dim.size() != 2) { z->Resize(z_dim); } diff --git a/paddle/fluid/pybind/pybind.cc b/paddle/fluid/pybind/pybind.cc index d2e883cacc..6c05442466 100644 --- a/paddle/fluid/pybind/pybind.cc +++ b/paddle/fluid/pybind/pybind.cc @@ -31,6 +31,7 @@ limitations under the License. */ #include "paddle/fluid/operators/cond_op.h" #include "paddle/fluid/operators/net_op.h" #include "paddle/fluid/platform/enforce.h" +#include "paddle/fluid/platform/gpu_info.h" #include "paddle/fluid/platform/place.h" #include "paddle/fluid/platform/profiler.h" #include "paddle/fluid/pybind/const_value.h" @@ -103,12 +104,14 @@ PYBIND11_PLUGIN(core) { .def("set", PyCPUTensorSetFromArray) .def("set", PyCPUTensorSetFromArray) .def("set", PyCPUTensorSetFromArray) + .def("set", PyCPUTensorSetFromArray) #ifdef PADDLE_WITH_CUDA .def("set", PyCUDATensorSetFromArray) .def("set", PyCUDATensorSetFromArray) .def("set", PyCUDATensorSetFromArray) .def("set", PyCUDATensorSetFromArray) .def("set", PyCUDATensorSetFromArray) + .def("set", PyCUDATensorSetFromArray) #endif .def("shape", [](Tensor &self) { return vectorize(self.dims()); }) .def("set_float_element", TensorSetElement) @@ -315,7 +318,6 @@ All parameter, weight, gradient are variables in Paddle. #endif }); // clang-format on - #ifdef PADDLE_WITH_CUDA py::class_(m, "Communicator").def(py::init<>()); #endif @@ -423,6 +425,12 @@ All parameter, weight, gradient are variables in Paddle. m.def("init_devices", &framework::InitDevices); m.def("is_compiled_with_cuda", IsCompiledWithCUDA); +#ifdef PADDLE_WITH_CUDA + m.def("is_float16_supported", [](const platform::CUDAPlace &place) -> bool { + // Only GPUs with Compute Capability >= 53 support float16 + return platform::GetCUDAComputeCapability(place.device) >= 53; + }); +#endif m.def("set_feed_variable", framework::SetFeedVariable); m.def("get_fetch_variable", framework::GetFetchVariable); diff --git a/paddle/fluid/pybind/tensor_py.h b/paddle/fluid/pybind/tensor_py.h index 1b0916ea03..3b206f2f87 100644 --- a/paddle/fluid/pybind/tensor_py.h +++ b/paddle/fluid/pybind/tensor_py.h @@ -17,6 +17,7 @@ limitations under the License. */ #include "paddle/fluid/framework/lod_tensor.h" #include "paddle/fluid/memory/memcpy.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/fluid/platform/float16.h" #include "pybind11/numpy.h" #include "pybind11/pybind11.h" @@ -77,21 +78,32 @@ struct CastToPyBufferImpl { } else if (paddle::platform::is_cpu_place(tensor.place())) { dst_tensor = tensor; } - return py::buffer_info(dst_tensor.data(), sizeof(CUR_TYPE), - py::format_descriptor::format(), - (size_t)framework::arity(dst_tensor.dims()), - dims_outside, strides); + + if (std::type_index(typeid(CUR_TYPE)) == + std::type_index(typeid(platform::float16))) { + return py::buffer_info(dst_tensor.data(), sizeof(CUR_TYPE), + "e", /* np.dtype('e') == np.float16 */ + (size_t)framework::arity(dst_tensor.dims()), + dims_outside, strides); + } else { + return py::buffer_info(dst_tensor.data(), sizeof(CUR_TYPE), + py::format_descriptor::format(), + (size_t)framework::arity(dst_tensor.dims()), + dims_outside, strides); + } } else { constexpr bool less = I + 1 < std::tuple_size>::value; return CastToPyBufferImpl()(tensor); } } }; + } // namespace details + inline py::buffer_info CastToPyBuffer(framework::Tensor &tensor) { auto buffer_info = - details::CastToPyBufferImpl()( - tensor); + details::CastToPyBufferImpl()(tensor); return buffer_info; } @@ -136,6 +148,22 @@ void PyCPUTensorSetFromArray( std::memcpy(dst, array.data(), sizeof(T) * array.size()); } +template <> +void PyCPUTensorSetFromArray( + framework::Tensor &self, + py::array_t array, + paddle::platform::CPUPlace &place) { + std::vector dims; + dims.reserve(array.ndim()); + for (size_t i = 0; i < array.ndim(); ++i) { + dims.push_back((int)array.shape()[i]); + } + + self.Resize(framework::make_ddim(dims)); + auto *dst = self.mutable_data(place); + std::memcpy(dst, array.data(), sizeof(uint16_t) * array.size()); +} + #ifdef PADDLE_WITH_CUDA template void PyCUDATensorSetFromArray( @@ -157,6 +185,28 @@ void PyCUDATensorSetFromArray( paddle::platform::GpuMemcpyAsync(dst, array.data(), sizeof(T) * array.size(), cudaMemcpyHostToDevice, dev_ctx->stream()); } + +template <> +void PyCUDATensorSetFromArray( + framework::Tensor &self, + py::array_t array, + paddle::platform::CUDAPlace &place) { + std::vector dims; + dims.reserve(array.ndim()); + for (size_t i = 0; i < array.ndim(); ++i) { + dims.push_back((int)array.shape()[i]); + } + + self.Resize(framework::make_ddim(dims)); + auto *dst = self.mutable_data(place); + + platform::DeviceContextPool &pool = platform::DeviceContextPool::Instance(); + auto dev_ctx = + static_cast(pool.Get(place)); + paddle::platform::GpuMemcpyAsync(dst, array.data(), + sizeof(uint16_t) * array.size(), + cudaMemcpyHostToDevice, dev_ctx->stream()); +} #endif } // namespace pybind diff --git a/python/paddle/fluid/tests/unittests/test_mul_op.py b/python/paddle/fluid/tests/unittests/test_mul_op.py index 9d1da420c7..40440bea12 100644 --- a/python/paddle/fluid/tests/unittests/test_mul_op.py +++ b/python/paddle/fluid/tests/unittests/test_mul_op.py @@ -14,6 +14,7 @@ import unittest import numpy as np +import paddle.fluid.core as core from op_test import OpTest @@ -69,5 +70,42 @@ class TestMulOp2(OpTest): ['X'], 'Out', max_relative_error=0.5, no_grad_set=set('Y')) +class TestFP16MulOp1(OpTest): + def setUp(self): + self.op_type = "mul" + x = np.random.random((32, 84)).astype("float16") + y = np.random.random((84, 100)).astype("float16") + self.inputs = {'X': x.view(np.uint16), 'Y': y.view(np.uint16)} + self.outputs = {'Out': np.dot(x, y)} + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-1) + + +class TestFP16MulOp2(OpTest): + def setUp(self): + self.op_type = "mul" + x = np.random.random((15, 4, 12, 10)).astype("float16") + y = np.random.random((4, 30, 8, 2, 9)).astype("float16") + self.inputs = {'X': x.view(np.uint16), 'Y': y.view(np.uint16)} + self.attrs = { + 'x_num_col_dims': 2, + 'y_num_col_dims': 2, + } + result = np.dot( + x.reshape(15 * 4, 12 * 10), y.reshape(4 * 30, 8 * 2 * 9)) + result = result.reshape(15, 4, 8, 2, 9) + self.outputs = {'Out': result} + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-1) + + if __name__ == "__main__": unittest.main() From 45eb94e61f1386fb39d9c5f10443da563c4fc0f8 Mon Sep 17 00:00:00 2001 From: weixing02 <564445201@qq.com> Date: Thu, 15 Mar 2018 11:04:46 +0800 Subject: [PATCH 39/75] Add comments --- Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index c4de740559..fbec88c796 100644 --- a/Dockerfile +++ b/Dockerfile @@ -53,6 +53,10 @@ RUN localedef -i en_US -f UTF-8 en_US.UTF-8 # FIXME: due to temporary ipykernel dependency issue, specify ipykernel jupyter # version util jupyter fixes this issue. + +# specify sphinx version as 1.5.6 and remove -U option for [pip install -U +# sphinx-rtd-theme] since -U option will cause sphinx being updated to newest +# version(1.7.1 for now), which causes building documentation failed. RUN pip install --upgrade pip && \ pip install -U wheel && \ pip install -U docopt PyYAML sphinx==1.5.6 && \ From 128adf53cb4517f2a4f123044c1ffffd6a3fa74d Mon Sep 17 00:00:00 2001 From: dzhwinter Date: Thu, 15 Mar 2018 12:44:05 +0800 Subject: [PATCH 40/75] [Speed]implement cudnn sequence softmax cudnn (#8978) * "add softmax cudnn functor support" * "add testing" * "refine cmakelist" * "sequence softmax forward speed up" * "add softmax grad" * "fix sequence softmax test" * "add double precision' * "fix softmax test" * "add softmax cudnn support" * "fix softmax cudnn test" * "add softmax to nn.py" * "fix compile bug" * "refine cmakelist" * "fix ci" * "fix based on comment" * "fix based on comments" * "fix ci" --- paddle/fluid/operators/math/softmax.cu | 73 ++++++++++++ paddle/fluid/operators/math/softmax.h | 17 +++ .../operators/sequence_softmax_cudnn_op.cu.cc | 105 ++++++++++++++++++ paddle/fluid/operators/sequence_softmax_op.cc | 63 ++++++++++- .../fluid/operators/sequence_softmax_op.cu.cc | 7 +- paddle/fluid/operators/softmax_cudnn_op.cu.cc | 62 +++++++++++ paddle/fluid/operators/softmax_op.cc | 57 ++++++++++ paddle/fluid/platform/cudnn_helper.h | 2 +- python/paddle/fluid/layers/detection.py | 2 +- python/paddle/fluid/layers/nn.py | 26 +++++ python/paddle/fluid/layers/ops.py | 31 ++++-- .../fluid/tests/unittests/test_layers.py | 4 +- .../unittests/test_sequence_softmax_op.py | 27 ++++- .../fluid/tests/unittests/test_softmax_op.py | 24 +++- 14 files changed, 481 insertions(+), 19 deletions(-) create mode 100644 paddle/fluid/operators/sequence_softmax_cudnn_op.cu.cc create mode 100644 paddle/fluid/operators/softmax_cudnn_op.cu.cc diff --git a/paddle/fluid/operators/math/softmax.cu b/paddle/fluid/operators/math/softmax.cu index 38e93fdf15..34ea6a91ce 100644 --- a/paddle/fluid/operators/math/softmax.cu +++ b/paddle/fluid/operators/math/softmax.cu @@ -14,13 +14,86 @@ limitations under the License. */ #define EIGEN_USE_GPU +#include "paddle/fluid/operators/math/math_function.h" #include "paddle/fluid/operators/math/softmax.h" #include "paddle/fluid/operators/math/softmax_impl.h" +#include "paddle/fluid/platform/cudnn_helper.h" namespace paddle { namespace operators { namespace math { +using Tensor = framework::Tensor; +using ScopedTensorDescriptor = platform::ScopedTensorDescriptor; +using DataLayout = platform::DataLayout; +template +using CudnnDataType = platform::CudnnDataType; + +template +void SoftmaxCUDNNFunctor::operator()( + const platform::CUDADeviceContext& context, const framework::Tensor* X, + framework::Tensor* Y) { + // ------------------- cudnn descriptors --------------------- + ScopedTensorDescriptor xDesc; + ScopedTensorDescriptor yDesc; + std::vector cudnn_tensor_dims = framework::vectorize2int(X->dims()); + DataLayout layout = DataLayout::kNCHW; + if (cudnn_tensor_dims.size() == 5) { + layout = DataLayout::kNCDHW; + } + // NOTE(*) : cudnn softmax only support >= 4D Tensor, + // fill 1 at unused dims + if (cudnn_tensor_dims.size() <= 2) { + cudnn_tensor_dims.resize(4, 1); + } + cudnnTensorDescriptor_t cudnn_x_desc = + xDesc.descriptor(layout, cudnn_tensor_dims); + cudnnTensorDescriptor_t cudnn_y_desc = + xDesc.descriptor(layout, cudnn_tensor_dims); + PADDLE_ENFORCE(platform::dynload::cudnnSoftmaxForward( + context.cudnn_handle(), CUDNN_SOFTMAX_ACCURATE, + CUDNN_SOFTMAX_MODE_INSTANCE, CudnnDataType::kOne(), cudnn_x_desc, + X->data(), CudnnDataType::kZero(), cudnn_y_desc, + Y->mutable_data(context.GetPlace()))); +} + +template +void SoftmaxGradCUDNNFunctor::operator()( + const platform::CUDADeviceContext& context, const framework::Tensor* Y, + const framework::Tensor* YGrad, framework::Tensor* XGrad) { + // ------------------- cudnn descriptors --------------------- + ScopedTensorDescriptor yDesc; + ScopedTensorDescriptor dyDesc; + ScopedTensorDescriptor dxDesc; + std::vector cudnn_tensor_dims = framework::vectorize2int(Y->dims()); + DataLayout layout = DataLayout::kNCHW; + if (cudnn_tensor_dims.size() == 5) { + layout = DataLayout::kNCDHW; + } + // NOTE(*) : cudnn softmax only support >= 4D Tensor, + // fill 1 at unused dims + if (cudnn_tensor_dims.size() <= 2) { + cudnn_tensor_dims.resize(4, 1); + } + cudnnTensorDescriptor_t cudnn_y_desc = + yDesc.descriptor(layout, cudnn_tensor_dims); + cudnnTensorDescriptor_t cudnn_xgrad_desc = + dxDesc.descriptor(layout, cudnn_tensor_dims); + cudnnTensorDescriptor_t cudnn_ygrad_desc = + dyDesc.descriptor(layout, cudnn_tensor_dims); + PADDLE_ENFORCE(platform::dynload::cudnnSoftmaxBackward( + context.cudnn_handle(), CUDNN_SOFTMAX_ACCURATE, + CUDNN_SOFTMAX_MODE_INSTANCE, CudnnDataType::kOne(), cudnn_y_desc, + Y->data(), cudnn_ygrad_desc, YGrad->data(), + CudnnDataType::kZero(), cudnn_xgrad_desc, + XGrad->mutable_data(context.GetPlace()))); +} + +template class SoftmaxCUDNNFunctor; +template class SoftmaxCUDNNFunctor; +template class SoftmaxGradCUDNNFunctor; +template class SoftmaxGradCUDNNFunctor; + template class SoftmaxFunctor; template class SoftmaxFunctor; template class SoftmaxGradFunctor; diff --git a/paddle/fluid/operators/math/softmax.h b/paddle/fluid/operators/math/softmax.h index 14b2690c2a..da1f0b672d 100644 --- a/paddle/fluid/operators/math/softmax.h +++ b/paddle/fluid/operators/math/softmax.h @@ -33,6 +33,23 @@ class SoftmaxGradFunctor { const framework::Tensor* y_grad, framework::Tensor* x_grad); }; +#ifdef PADDLE_WITH_CUDA +template +class SoftmaxCUDNNFunctor { + public: + void operator()(const platform::CUDADeviceContext& context, + const framework::Tensor* X, framework::Tensor* Y); +}; + +template +class SoftmaxGradCUDNNFunctor { + public: + void operator()(const platform::CUDADeviceContext& context, + const framework::Tensor* Y, const framework::Tensor* y_grad, + framework::Tensor* x_grad); +}; +#endif + } // namespace math } // namespace operators } // namespace paddle diff --git a/paddle/fluid/operators/sequence_softmax_cudnn_op.cu.cc b/paddle/fluid/operators/sequence_softmax_cudnn_op.cu.cc new file mode 100644 index 0000000000..5661f4b42f --- /dev/null +++ b/paddle/fluid/operators/sequence_softmax_cudnn_op.cu.cc @@ -0,0 +1,105 @@ +/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#include "paddle/fluid/framework/op_registry.h" +#include "paddle/fluid/operators/math/math_function.h" +#include "paddle/fluid/operators/math/softmax.h" + +namespace paddle { +namespace operators { + +using Tensor = framework::Tensor; +using LoDTensor = framework::LoDTensor; + +template +class SequenceSoftmaxCUDNNKernel : public framework::OpKernel { + public: + void Compute(const framework::ExecutionContext& ctx) const override { + auto* x = ctx.Input("X"); + auto* out = ctx.Output("Out"); + + auto lod = x->lod(); + auto dims = x->dims(); + + const size_t level = lod.size() - 1; + PADDLE_ENFORCE_EQ(dims[0], static_cast(lod[level].back()), + "The first dimension of Input(X) should be equal to the " + "sum of all sequences' lengths."); + PADDLE_ENFORCE_EQ(dims[0], x->numel(), + "The width of each timestep in Input(X) of " + "SequenceSoftmaxOp should be 1."); + + out->mutable_data(ctx.GetPlace()); + for (int i = 0; i < static_cast(lod[level].size()) - 1; ++i) { + int start_pos = static_cast(lod[level][i]); + int end_pos = static_cast(lod[level][i + 1]); + Tensor x_i = x->Slice(start_pos, end_pos); + Tensor out_i = out->Slice(start_pos, end_pos); + + // Reshape from (end_pos - start_pos) x 1UL to 1UL x (end_pos - start_pos) + framework::DDim dims_i = + // framework::make_ddim({1UL, end_pos - start_pos, 1UL, 1UL}); + framework::make_ddim({1UL, end_pos - start_pos}); + x_i.Resize(dims_i); + out_i.Resize(dims_i); + math::SoftmaxCUDNNFunctor()( + ctx.template device_context(), &x_i, + &out_i); + } + } +}; + +template +class SequenceSoftmaxGradCUDNNKernel : public framework::OpKernel { + public: + void Compute(const framework::ExecutionContext& ctx) const override { + auto* out = ctx.Input("Out"); + auto* out_grad = ctx.Input(framework::GradVarName("Out")); + auto* x = ctx.Input("X"); + auto* x_grad = ctx.Output(framework::GradVarName("X")); + + auto lod = x->lod(); + const size_t level = lod.size() - 1; + + x_grad->mutable_data(ctx.GetPlace()); + for (int i = 0; i < static_cast(lod[level].size()) - 1; ++i) { + int start_pos = static_cast(lod[level][i]); + int end_pos = static_cast(lod[level][i + 1]); + + Tensor out_i = out->Slice(start_pos, end_pos); + Tensor out_grad_i = out_grad->Slice(start_pos, end_pos); + Tensor x_grad_i = x_grad->Slice(start_pos, end_pos); + + // Reshape from (end_pos - start_pos) x 1UL to 1UL x (end_pos - start_pos) + framework::DDim dims_i = framework::make_ddim({1UL, end_pos - start_pos}); + out_i.Resize(dims_i); + out_grad_i.Resize(dims_i); + x_grad_i.Resize(dims_i); + math::SoftmaxGradCUDNNFunctor()( + ctx.template device_context(), &out_i, + &out_grad_i, &x_grad_i); + } + } +}; + +} // namespace operators +} // namespace paddle + +namespace ops = paddle::operators; +REGISTER_OP_KERNEL(sequence_softmax, CUDNN, ::paddle::platform::CUDAPlace, + ops::SequenceSoftmaxCUDNNKernel, + ops::SequenceSoftmaxCUDNNKernel) +REGISTER_OP_KERNEL(sequence_softmax_grad, CUDNN, ::paddle::platform::CUDAPlace, + ops::SequenceSoftmaxGradCUDNNKernel, + ops::SequenceSoftmaxGradCUDNNKernel) diff --git a/paddle/fluid/operators/sequence_softmax_op.cc b/paddle/fluid/operators/sequence_softmax_op.cc index 7e685eb3dc..e8b4df0428 100644 --- a/paddle/fluid/operators/sequence_softmax_op.cc +++ b/paddle/fluid/operators/sequence_softmax_op.cc @@ -29,6 +29,29 @@ class SequenceSoftmaxOp : public framework::OperatorWithKernel { ctx->SetOutputDim("Out", ctx->GetInputDim("X")); ctx->ShareLoD("X", /*->*/ "Out"); } + + protected: + framework::OpKernelType GetExpectedKernelType( + const framework::ExecutionContext& ctx) const override { + // choose cudnn kernel if the runtime supported. + bool use_cudnn = ctx.Attr("use_cudnn"); + bool runtime_cudnn_support = false; +#ifdef PADDLE_WITH_CUDA + if (platform::is_gpu_place(ctx.GetPlace())) { + auto& dev_ctx = + ctx.template device_context(); + runtime_cudnn_support = dev_ctx.cudnn_handle() != nullptr ? true : false; + } +#endif + framework::LibraryType library_ = framework::LibraryType::kPlain; + if (use_cudnn && runtime_cudnn_support) { + library_ = framework::LibraryType::kCUDNN; + } + std::string data_format = ctx.Attr("data_format"); + return framework::OpKernelType( + framework::ToDataType(ctx.Input("X")->type()), ctx.GetPlace(), + framework::StringToDataLayout(data_format), library_); + } }; class SequenceSoftmaxOpMaker : public framework::OpProtoAndCheckerMaker { @@ -41,6 +64,17 @@ class SequenceSoftmaxOpMaker : public framework::OpProtoAndCheckerMaker { AddOutput("Out", "(LoDTensor) 1-D or 2-D output LoDTensor with the 2-nd dimension " "of length 1."); + AddAttr( + "use_cudnn", + "(bool, default false) Only used in cudnn kernel, need install cudnn") + .SetDefault(false); + AddAttr( + "data_format", + "(string, default NCHW) Only used in " + "An optional string from: \"NHWC\", \"NCHW\". " + "Defaults to \"NHWC\". Specify the data format of the output data, " + "the input will be transformed automatically. ") + .SetDefault("AnyLayout"); AddComment(R"DOC( Sequence Softmax Operator. @@ -91,6 +125,29 @@ class SequenceSoftmaxGradOp : public framework::OperatorWithKernel { ctx->SetOutputDim(framework::GradVarName("X"), ctx->GetInputDim("X")); } + + protected: + framework::OpKernelType GetExpectedKernelType( + const framework::ExecutionContext& ctx) const override { + // choose cudnn kernel if the runtime supported. + bool use_cudnn = ctx.Attr("use_cudnn"); + bool runtime_cudnn_support = false; +#ifdef PADDLE_WITH_CUDA + if (platform::is_gpu_place(ctx.GetPlace())) { + auto& dev_ctx = + ctx.template device_context(); + runtime_cudnn_support = dev_ctx.cudnn_handle() != nullptr ? true : false; + } +#endif + framework::LibraryType library_ = framework::LibraryType::kPlain; + if (use_cudnn && runtime_cudnn_support) { + library_ = framework::LibraryType::kCUDNN; + } + std::string data_format = ctx.Attr("data_format"); + return framework::OpKernelType( + framework::ToDataType(ctx.Input("X")->type()), ctx.GetPlace(), + framework::StringToDataLayout(data_format), library_); + } }; } // namespace operators @@ -102,7 +159,9 @@ REGISTER_OP(sequence_softmax, ops::SequenceSoftmaxOp, ops::SequenceSoftmaxGradOp); REGISTER_OP_CPU_KERNEL( sequence_softmax, - ops::SequenceSoftmaxKernel); + ops::SequenceSoftmaxKernel, + ops::SequenceSoftmaxKernel); REGISTER_OP_CPU_KERNEL( sequence_softmax_grad, - ops::SequenceSoftmaxGradKernel); + ops::SequenceSoftmaxGradKernel, + ops::SequenceSoftmaxGradKernel); diff --git a/paddle/fluid/operators/sequence_softmax_op.cu.cc b/paddle/fluid/operators/sequence_softmax_op.cu.cc index 295c68c5b9..57adea3a1b 100644 --- a/paddle/fluid/operators/sequence_softmax_op.cu.cc +++ b/paddle/fluid/operators/sequence_softmax_op.cu.cc @@ -17,7 +17,10 @@ limitations under the License. */ namespace ops = paddle::operators; REGISTER_OP_CUDA_KERNEL( sequence_softmax, - ops::SequenceSoftmaxKernel) + ops::SequenceSoftmaxKernel, + ops::SequenceSoftmaxKernel) REGISTER_OP_CUDA_KERNEL( sequence_softmax_grad, - ops::SequenceSoftmaxGradKernel); + ops::SequenceSoftmaxGradKernel, + ops::SequenceSoftmaxGradKernel); diff --git a/paddle/fluid/operators/softmax_cudnn_op.cu.cc b/paddle/fluid/operators/softmax_cudnn_op.cu.cc new file mode 100644 index 0000000000..47cb336d87 --- /dev/null +++ b/paddle/fluid/operators/softmax_cudnn_op.cu.cc @@ -0,0 +1,62 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#include "paddle/fluid/operators/math/softmax.h" +#include "paddle/fluid/framework/op_registry.h" + +namespace paddle { +namespace operators { + +using Tensor = framework::Tensor; + +template +class SoftmaxCUDNNKernel : public framework::OpKernel { + public: + void Compute(const framework::ExecutionContext& context) const override { + auto* X = context.Input("X"); + auto* Out = context.Output("Out"); + + // allocate memory on device. + Out->mutable_data(context.GetPlace()); + + math::SoftmaxCUDNNFunctor()( + context.template device_context(), X, Out); + } +}; + +template +class SoftmaxGradCUDNNKernel : public framework::OpKernel { + public: + void Compute(const framework::ExecutionContext& context) const override { + auto* Out = context.Input("Out"); + auto* dOut = context.Input(framework::GradVarName("Out")); + auto* dX = context.Output(framework::GradVarName("X")); + + // allocate memory on device. + dX->mutable_data(context.GetPlace()); + + math::SoftmaxGradCUDNNFunctor()( + context.template device_context(), Out, + dOut, dX); + } +}; + +} // namespace operators +} // namespace paddle + +namespace ops = paddle::operators; +REGISTER_OP_KERNEL(softmax, CUDNN, ::paddle::platform::CUDAPlace, + ops::SoftmaxCUDNNKernel); +REGISTER_OP_KERNEL(softmax_grad, CUDNN, ::paddle::platform::CUDAPlace, + ops::SoftmaxGradCUDNNKernel); diff --git a/paddle/fluid/operators/softmax_op.cc b/paddle/fluid/operators/softmax_op.cc index 09275ef290..1b63f8a499 100644 --- a/paddle/fluid/operators/softmax_op.cc +++ b/paddle/fluid/operators/softmax_op.cc @@ -33,6 +33,29 @@ class SoftmaxOp : public framework::OperatorWithKernel { ctx->SetOutputDim("Out", x_dims); ctx->ShareLoD("X", /*->*/ "Out"); } + + protected: + framework::OpKernelType GetExpectedKernelType( + const framework::ExecutionContext& ctx) const override { + // choose cudnn kernel if the runtime supported. + bool use_cudnn = ctx.Attr("use_cudnn"); + bool runtime_cudnn_support = false; +#ifdef PADDLE_WITH_CUDA + if (platform::is_gpu_place(ctx.GetPlace())) { + auto& dev_ctx = + ctx.template device_context(); + runtime_cudnn_support = dev_ctx.cudnn_handle() != nullptr ? true : false; + } +#endif + framework::LibraryType library_ = framework::LibraryType::kPlain; + if (use_cudnn && runtime_cudnn_support) { + library_ = framework::LibraryType::kCUDNN; + } + std::string data_format = ctx.Attr("data_format"); + return framework::OpKernelType( + framework::ToDataType(ctx.Input("X")->type()), ctx.GetPlace(), + framework::StringToDataLayout(data_format), library_); + } }; class SoftmaxOpMaker : public framework::OpProtoAndCheckerMaker { @@ -43,6 +66,17 @@ class SoftmaxOpMaker : public framework::OpProtoAndCheckerMaker { "The input tensor of softmax. " "2-D with shape [batch_size, input_feature_dimensions]."); AddOutput("Out", "The normalized values with the same shape as X."); + AddAttr( + "use_cudnn", + "(bool, default false) Only used in cudnn kernel, need install cudnn") + .SetDefault(false); + AddAttr( + "data_format", + "(string, default NCHW) Only used in " + "An optional string from: \"NHWC\", \"NCHW\". " + "Defaults to \"NHWC\". Specify the data format of the output data, " + "the input will be transformed automatically. ") + .SetDefault("AnyLayout"); AddComment(R"DOC( Softmax Operator. @@ -80,6 +114,29 @@ class SoftmaxOpGrad : public framework::OperatorWithKernel { ctx->SetOutputDim(framework::GradVarName("X"), ctx->GetInputDim("X")); } + + protected: + framework::OpKernelType GetExpectedKernelType( + const framework::ExecutionContext& ctx) const override { + // choose cudnn kernel if the runtime supported. + bool use_cudnn = ctx.Attr("use_cudnn"); + bool runtime_cudnn_support = false; +#ifdef PADDLE_WITH_CUDA + if (platform::is_gpu_place(ctx.GetPlace())) { + auto& dev_ctx = + ctx.template device_context(); + runtime_cudnn_support = dev_ctx.cudnn_handle() != nullptr ? true : false; + } +#endif + framework::LibraryType library_ = framework::LibraryType::kPlain; + if (use_cudnn && runtime_cudnn_support) { + library_ = framework::LibraryType::kCUDNN; + } + std::string data_format = ctx.Attr("data_format"); + return framework::OpKernelType( + framework::ToDataType(ctx.Input("X")->type()), ctx.GetPlace(), + framework::StringToDataLayout(data_format), library_); + } }; } // namespace operators diff --git a/paddle/fluid/platform/cudnn_helper.h b/paddle/fluid/platform/cudnn_helper.h index 1842ecd745..9a2ac3ff33 100644 --- a/paddle/fluid/platform/cudnn_helper.h +++ b/paddle/fluid/platform/cudnn_helper.h @@ -289,7 +289,7 @@ inline bool CanCUDNNBeUsed(const framework::ExecutionContext& ctx) { use_cudnn &= paddle::platform::is_gpu_place(ctx.GetPlace()); #ifdef PADDLE_WITH_CUDA if (use_cudnn) { - auto& dev_ctx = ctx.template device_context(); + auto& dev_ctx = ctx.device_context(); use_cudnn &= dev_ctx.cudnn_handle() != nullptr; } #endif diff --git a/python/paddle/fluid/layers/detection.py b/python/paddle/fluid/layers/detection.py index ea189749bc..a889ab6bdc 100644 --- a/python/paddle/fluid/layers/detection.py +++ b/python/paddle/fluid/layers/detection.py @@ -132,7 +132,7 @@ def detection_output(loc, old_shape = scores.shape scores = ops.reshape(x=scores, shape=(-1, old_shape[-1])) - scores = ops.softmax(x=scores) + scores = nn.softmax(input=scores) scores = ops.reshape(x=scores, shape=old_shape) scores = nn.transpose(scores, perm=[0, 2, 1]) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index f107261f3d..bf161d6618 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -39,6 +39,8 @@ __all__ = [ 'sequence_conv', 'conv2d', 'sequence_pool', + 'sequence_softmax', + 'softmax', 'pool2d', 'batch_norm', 'beam_search_decode', @@ -1085,6 +1087,30 @@ def sequence_conv(input, return helper.append_activation(pre_act) +def sequence_softmax(input, param_attr=None, bias_attr=None, use_cudnn=True): + helper = LayerHelper('sequence_softmax', **locals()) + dtype = helper.input_dtype() + softmax_out = helper.create_tmp_variable(dtype) + helper.append_op( + type="sequence_softmax", + inputs={"X": input}, + outputs={"Out": softmax_out}, + attrs={"use_cudnn": use_cudnn}) + return softmax_out + + +def softmax(input, param_attr=None, bias_attr=None, use_cudnn=True): + helper = LayerHelper('softmax', **locals()) + dtype = helper.input_dtype() + softmax_out = helper.create_tmp_variable(dtype) + helper.append_op( + type="softmax", + inputs={"X": input}, + outputs={"Out": softmax_out}, + attrs={"use_cudnn": use_cudnn}) + return softmax_out + + def conv2d(input, num_filters, filter_size, diff --git a/python/paddle/fluid/layers/ops.py b/python/paddle/fluid/layers/ops.py index 14ad18d508..d7bad221c5 100644 --- a/python/paddle/fluid/layers/ops.py +++ b/python/paddle/fluid/layers/ops.py @@ -45,13 +45,30 @@ __activations__ = [ ] __all__ = [ - 'mean', 'mul', 'reshape', 'scale', 'sigmoid_cross_entropy_with_logits', - 'elementwise_add', 'elementwise_div', 'elementwise_sub', 'elementwise_mul', - 'elementwise_max', 'elementwise_min', 'elementwise_pow', 'clip', - 'clip_by_norm', 'softmax', 'sequence_softmax', 'logical_and', 'logical_or', - 'logical_xor', 'logical_not', 'uniform_random', - 'uniform_random_batch_size_like', 'gaussian_random', - 'gaussian_random_batch_size_like', 'cumsum', 'scatter' + 'mean', + 'mul', + 'reshape', + 'scale', + 'sigmoid_cross_entropy_with_logits', + 'elementwise_add', + 'elementwise_div', + 'elementwise_sub', + 'elementwise_mul', + 'elementwise_max', + 'elementwise_min', + 'elementwise_pow', + 'clip', + 'clip_by_norm', + 'logical_and', + 'logical_or', + 'logical_xor', + 'logical_not', + 'uniform_random', + 'uniform_random_batch_size_like', + 'gaussian_random', + 'gaussian_random_batch_size_like', + 'cumsum', + 'scatter', ] + __activations__ for _OP in set(__all__): diff --git a/python/paddle/fluid/tests/unittests/test_layers.py b/python/paddle/fluid/tests/unittests/test_layers.py index 6944cca394..90d70aa39f 100644 --- a/python/paddle/fluid/tests/unittests/test_layers.py +++ b/python/paddle/fluid/tests/unittests/test_layers.py @@ -220,7 +220,7 @@ class TestBook(unittest.TestCase): seq_data = layers.data( name='seq_data', shape=[10, 10], dtype='float32', lod_level=1) seq = layers.fc(input=seq_data, size=20) - self.assertIsNotNone(layers.sequence_softmax(x=seq)) + self.assertIsNotNone(layers.sequence_softmax(seq)) print(str(program)) def test_softmax(self): @@ -228,7 +228,7 @@ class TestBook(unittest.TestCase): with program_guard(program): data = layers.data(name='data', shape=[10], dtype='float32') hid = layers.fc(input=data, size=20) - self.assertIsNotNone(layers.softmax(x=hid)) + self.assertIsNotNone(layers.softmax(hid)) print(str(program)) def test_get_places(self): diff --git a/python/paddle/fluid/tests/unittests/test_sequence_softmax_op.py b/python/paddle/fluid/tests/unittests/test_sequence_softmax_op.py index 9e5c1e7a3d..d6dc99bb31 100644 --- a/python/paddle/fluid/tests/unittests/test_sequence_softmax_op.py +++ b/python/paddle/fluid/tests/unittests/test_sequence_softmax_op.py @@ -16,11 +16,15 @@ import unittest import numpy as np from op_test import OpTest from test_softmax_op import stable_softmax +import paddle.fluid.core as core class TestSequenceSoftmaxOp(OpTest): def setUp(self): self.op_type = "sequence_softmax" + self.use_cudnn = False + self.init_op_type() + x = np.random.uniform(0.1, 1, (11, 1)).astype("float32") lod = [[0, 4, 5, 8, 11]] @@ -34,12 +38,31 @@ class TestSequenceSoftmaxOp(OpTest): self.inputs = {"X": (x, lod)} self.outputs = {"Out": out} + self.attrs = {'use_cudnn': self.use_cudnn, } + + def init_op_type(self): + pass def test_check_output(self): - self.check_output() + if self.use_cudnn: + place = core.CUDAPlace(0) + self.check_output_with_place(place, atol=1e-5) + else: + self.check_output() def test_check_grad(self): - self.check_grad(["X"], "Out", max_relative_error=0.01) + if self.use_cudnn: + place = core.CUDAPlace(0) + self.check_grad_with_place( + place, ["X"], "Out", max_relative_error=0.01) + else: + self.check_grad(["X"], "Out", max_relative_error=0.01) + + +# ----------------cudnn Sequencesoftmax---------------- +class TestSequenceSoftmaxCUDNNOp(TestSequenceSoftmaxOp): + def init_op_type(self): + self.use_cudnn = True if __name__ == "__main__": diff --git a/python/paddle/fluid/tests/unittests/test_softmax_op.py b/python/paddle/fluid/tests/unittests/test_softmax_op.py index 8f8312edca..4f20da2b92 100644 --- a/python/paddle/fluid/tests/unittests/test_softmax_op.py +++ b/python/paddle/fluid/tests/unittests/test_softmax_op.py @@ -15,6 +15,7 @@ import unittest import numpy as np from op_test import OpTest +import paddle.fluid.core as core def stable_softmax(x): @@ -27,18 +28,37 @@ def stable_softmax(x): class TestSoftmaxOp(OpTest): def setUp(self): self.op_type = "softmax" + self.use_cudnn = False self.inputs = { 'X': np.random.uniform(0.1, 1, [10, 10]).astype("float32") } self.outputs = { 'Out': np.apply_along_axis(stable_softmax, 1, self.inputs['X']) } + self.attrs = {'use_cudnn': self.use_cudnn, } + + def init_op_type(self): + pass def test_check_output(self): - self.check_output() + if self.use_cudnn: + place = core.CUDAPlace(0) + self.check_output_with_place(place, atol=1e-5) + else: + self.check_output() def test_check_grad(self): - self.check_grad(['X'], 'Out') + if self.use_cudnn: + place = core.CUDAPlace(0) + self.check_grad_with_place( + place, ["X"], "Out", max_relative_error=0.01) + else: + self.check_grad(["X"], "Out", max_relative_error=0.01) + + +class TestSoftmaxCUDNNOp(TestSoftmaxOp): + def init_op_type(self): + self.use_cudnn = True if __name__ == "__main__": From 45073b7c3971771ab14d82baec09ca13b2fe3953 Mon Sep 17 00:00:00 2001 From: qingqing01 Date: Thu, 15 Mar 2018 16:57:14 +0800 Subject: [PATCH 41/75] Always synchronize when copy data on GPU from C++ to Numpy array. (#9110) --- paddle/fluid/pybind/tensor_py.h | 1 + 1 file changed, 1 insertion(+) diff --git a/paddle/fluid/pybind/tensor_py.h b/paddle/fluid/pybind/tensor_py.h index 3b206f2f87..6f8c597f8e 100644 --- a/paddle/fluid/pybind/tensor_py.h +++ b/paddle/fluid/pybind/tensor_py.h @@ -72,6 +72,7 @@ struct CastToPyBufferImpl { paddle::platform::GpuMemcpyAsync( dst_ptr, src_ptr, sizeof(CUR_TYPE) * tensor.numel(), cudaMemcpyDeviceToHost, dev_ctx->stream()); + dev_ctx->Wait(); #else PADDLE_THROW("'CUDAPlace' is not supported in CPU only device."); #endif From 1e4c504e6001843fb4f556e9b4452ee5a8a1eb41 Mon Sep 17 00:00:00 2001 From: Thuan Nguyen Date: Thu, 15 Mar 2018 02:01:04 -0700 Subject: [PATCH 42/75] Implement Select OP (#9088) * Fix old documentation for channel_recv * Initial design of CSP select * Redesign channel implementation for Select Op * Remove unecessary header * Initial checkin of select op, currently will read all the conditional_op in the cases block and also pull out all channels involved in the select. * Init python select op API * Python select bug fix when checking op creates block * Add case_to_execute as (a) input to select, (b) into the passed inputs into the select op * Add in addition code for select op * Init fibonacci test from python * implement fibonnaci sequence test * update fib unit test * Improve select test cases * Shorten non-pep-8-ed lines * Add methods on channel needed by select op * Fix compile issues, finish implementation, still need to debug code * Fix issue with fibonncci test, it works now! * Change QueueMessage callback to take in an ChannelAction enum, fix select unit test * Fix case attributes * Fix issue with select control flow * Make cases - previously on each selectcase conditional_block - attributes to select * Use class constants for type of channel * Change select op to take in "cases" attribute * return boolean from select callback function to tell Channel if this RECV or SEND should be executed * Improve attributes and inputs comments on select op * Fix issues with python unit test * Assert fibonacci final output * Fix issue when channel name / channel var is null for "default" case in select op * Assert base select test output * Make QueueMessage use shared pointer and modify the order of the callback * Fixing the order in which the callback is called * Move channel utility methods to paddle/fluid/operators/concurrency/channel_util * Create channel_util and move channel util methods * Fix crash when calling select_op * Fix deadlock * Fix issue of channel destructor deadlock * Fix precommit issues * Accidentally checked in changes to beam_search_op, reverting change. * Fix dependency issue in concurrency cmake * add device_context dependency for concurrency target --- paddle/fluid/framework/CMakeLists.txt | 3 +- paddle/fluid/framework/channel.h | 30 +- paddle/fluid/framework/channel_impl.h | 6 +- paddle/fluid/framework/concurrency_test.cc | 208 ++++++++- paddle/fluid/operators/CMakeLists.txt | 5 + paddle/fluid/operators/channel_recv_op.cc | 22 +- paddle/fluid/operators/channel_send_op.cc | 21 +- .../operators/concurrency/CMakeLists.txt | 1 + .../operators/concurrency/channel_util.cc | 111 +++++ .../operators/concurrency/channel_util.h | 38 ++ paddle/fluid/operators/select_op.cc | 414 ++++++++++++++++++ python/paddle/fluid/__init__.py | 2 +- python/paddle/fluid/concurrency.py | 11 +- python/paddle/fluid/framework.py | 2 +- python/paddle/fluid/layers/control_flow.py | 183 +++++++- python/paddle/fluid/tests/test_concurrency.py | 130 +++++- 16 files changed, 1096 insertions(+), 91 deletions(-) create mode 100644 paddle/fluid/operators/concurrency/CMakeLists.txt create mode 100644 paddle/fluid/operators/concurrency/channel_util.cc create mode 100644 paddle/fluid/operators/concurrency/channel_util.h create mode 100644 paddle/fluid/operators/select_op.cc diff --git a/paddle/fluid/framework/CMakeLists.txt b/paddle/fluid/framework/CMakeLists.txt index 15e5574ecf..a4ea74a6d2 100644 --- a/paddle/fluid/framework/CMakeLists.txt +++ b/paddle/fluid/framework/CMakeLists.txt @@ -103,4 +103,5 @@ cc_test(cow_ptr_tests SRCS details/cow_ptr_test.cc) cc_test(channel_test SRCS channel_test.cc) cc_test(tuple_test SRCS tuple_test.cc ) cc_test(concurrency_test SRCS concurrency_test.cc DEPS go_op channel_close_op channel_create_op - channel_send_op channel_recv_op sum_op elementwise_add_op executor proto_desc) + channel_send_op channel_recv_op sum_op select_op elementwise_add_op compare_op + conditional_block_op while_op assign_op print_op executor proto_desc) diff --git a/paddle/fluid/framework/channel.h b/paddle/fluid/framework/channel.h index 51e2b03f9c..adfaba26ac 100644 --- a/paddle/fluid/framework/channel.h +++ b/paddle/fluid/framework/channel.h @@ -162,24 +162,12 @@ class ChannelHolder { } } - template void RemoveFromSendQ(const void* referrer) { - if (IsInitialized()) { - Channel* channel = static_cast*>(holder_->Ptr()); - if (channel != nullptr) { - channel->RemoveFromSendQ(referrer); - } - } + if (IsInitialized()) holder_->RemoveFromSendQ(referrer); } - template void RemoveFromReceiveQ(const void* referrer) { - if (IsInitialized()) { - Channel* channel = static_cast*>(holder_->Ptr()); - if (channel != nullptr) { - channel->RemoveFromReceiveQ(referrer); - } - } + if (IsInitialized()) holder_->RemoveFromReceiveQ(referrer); } inline bool IsInitialized() const { return holder_ != nullptr; } @@ -201,6 +189,8 @@ class ChannelHolder { virtual bool IsClosed() = 0; virtual bool CanSend() = 0; virtual bool CanReceive() = 0; + virtual void RemoveFromSendQ(const void* referrer) = 0; + virtual void RemoveFromReceiveQ(const void* referrer) = 0; virtual void Close() = 0; virtual void Lock() = 0; virtual void Unlock() = 0; @@ -238,6 +228,18 @@ class ChannelHolder { return false; } + virtual void RemoveFromSendQ(const void* referrer) { + if (channel_) { + channel_->RemoveFromSendQ(referrer); + } + } + + virtual void RemoveFromReceiveQ(const void* referrer) { + if (channel_) { + channel_->RemoveFromReceiveQ(referrer); + } + } + virtual void Close() { if (channel_) channel_->Close(); } diff --git a/paddle/fluid/framework/channel_impl.h b/paddle/fluid/framework/channel_impl.h index c194c03e26..457abbf373 100644 --- a/paddle/fluid/framework/channel_impl.h +++ b/paddle/fluid/framework/channel_impl.h @@ -151,7 +151,7 @@ bool ChannelImpl::Send(T *item) { // We do not care about notifying other // because they would have been notified // by the executed select case. - return Send(item); + return send_return(Send(item)); // Wake up the blocked process and unlock m->Notify(); @@ -214,7 +214,7 @@ bool ChannelImpl::Receive(T *item) { // We do not care about notifying other // because they would have been notified // by the executed select case. - return Receive(item); + return recv_return(Receive(item)); // Wake up the blocked process and unlock m->Notify(); @@ -331,7 +331,6 @@ void ChannelImpl::RemoveFromSendQ(const void *referrer) { if (sendMsg->referrer == referrer) { it = sendq.erase(it); - send_ctr--; } else { ++it; } @@ -347,7 +346,6 @@ void ChannelImpl::RemoveFromReceiveQ(const void *referrer) { if (recvMsg->referrer == referrer) { it = recvq.erase(it); - recv_ctr--; } else { ++it; } diff --git a/paddle/fluid/framework/concurrency_test.cc b/paddle/fluid/framework/concurrency_test.cc index 5770b0a5a1..25152054eb 100644 --- a/paddle/fluid/framework/concurrency_test.cc +++ b/paddle/fluid/framework/concurrency_test.cc @@ -19,7 +19,6 @@ limitations under the License. */ #include "paddle/fluid/framework/channel.h" #include "paddle/fluid/framework/executor.h" #include "paddle/fluid/framework/op_registry.h" -#include "paddle/fluid/framework/program_desc.h" USE_NO_KERNEL_OP(go); USE_NO_KERNEL_OP(channel_close); @@ -27,6 +26,12 @@ USE_NO_KERNEL_OP(channel_create); USE_NO_KERNEL_OP(channel_recv); USE_NO_KERNEL_OP(channel_send); USE_NO_KERNEL_OP(elementwise_add); +USE_NO_KERNEL_OP(select); +USE_NO_KERNEL_OP(conditional_block); +USE_NO_KERNEL_OP(equal); +USE_NO_KERNEL_OP(assign); +USE_NO_KERNEL_OP(while); +USE_NO_KERNEL_OP(print); namespace f = paddle::framework; namespace p = paddle::platform; @@ -35,27 +40,15 @@ namespace paddle { namespace framework { template -void CreateIntVariable(Scope &scope, p::CPUPlace &place, std::string name, - T value) { - // Create LoDTensor of dim [1,1] +LoDTensor *CreateVariable(Scope &scope, p::CPUPlace &place, std::string name, + T value) { + // Create LoDTensor of dim [1] auto var = scope.Var(name); auto tensor = var->GetMutable(); - tensor->Resize({1, 1}); + tensor->Resize({1}); T *expect = tensor->mutable_data(place); expect[0] = value; -} - -void InitTensorsInScope(Scope &scope, p::CPUPlace &place) { - p::CPUDeviceContext ctx(place); - - // Create channel variable - scope.Var("Channel"); - - // Create Variables, x0 will be put into channel, - // result will be pulled from channel - CreateIntVariable(scope, place, "Status", false); - CreateIntVariable(scope, place, "x0", 99); - CreateIntVariable(scope, place, "result", 0); + return tensor; } void AddOp(const std::string &type, const VariableNameMap &inputs, @@ -73,12 +66,116 @@ void AddOp(const std::string &type, const VariableNameMap &inputs, op->SetAttrMap(attrs); } +void AddCase(ProgramDesc *program, Scope *scope, p::CPUPlace *place, + BlockDesc *casesBlock, int caseId, int caseType, + std::string caseChannel, std::string caseVarName, + std::function func) { + std::string caseCondName = std::string("caseCond") + std::to_string(caseId); + std::string caseCondXVarName = + std::string("caseCondX") + std::to_string(caseId); + + BlockDesc *caseBlock = program->AppendBlock(*casesBlock); + func(caseBlock, scope); + + CreateVariable(*scope, *place, caseCondName, false); + CreateVariable(*scope, *place, caseCondXVarName, caseId); + CreateVariable(*scope, *place, caseVarName, caseId); + + scope->Var("step_scope"); + + AddOp("equal", {{"X", {caseCondXVarName}}, {"Y", {"caseToExecute"}}}, + {{"Out", {caseCondName}}}, {}, casesBlock); + + AddOp("conditional_block", {{"X", {caseCondName}}, {"Params", {}}}, + {{"Out", {}}, {"Scope", {"step_scope"}}}, + {{"sub_block", caseBlock}, {"is_scalar_condition", true}}, casesBlock); +} + +void AddFibonacciSelect(Scope *scope, p::CPUPlace *place, ProgramDesc *program, + BlockDesc *parentBlock, std::string dataChanName, + std::string quitChanName) { + BlockDesc *whileBlock = program->AppendBlock(*parentBlock); + + CreateVariable(*scope, *place, "whileExitCond", true); + CreateVariable(*scope, *place, "caseToExecute", -1); + CreateVariable(*scope, *place, "case1var", 0); + + CreateVariable(*scope, *place, "xtemp", 0); + + // TODO(thuan): Need to create fibXToSend, since channel send moves the actual + // data, + // which causes the data to be no longer accessible to do the fib calculation + // TODO(abhinav): Change channel send to do a copy instead of a move! + CreateVariable(*scope, *place, "fibXToSend", 0); + + CreateVariable(*scope, *place, "fibX", 0); + CreateVariable(*scope, *place, "fibY", 1); + CreateVariable(*scope, *place, "quitVar", 0); + + BlockDesc *casesBlock = program->AppendBlock(*whileBlock); + std::function f = [](BlockDesc *caseBlock) {}; + + // TODO(thuan): Remove this once we change channel send to do a copy instead + // of move + AddOp("assign", {{"X", {"fibX"}}}, {{"Out", {"fibXToSend"}}}, {}, whileBlock); + + // Case 0: Send to dataChanName + std::function case0Func = [&]( + BlockDesc *caseBlock, Scope *scope) { + AddOp("assign", {{"X", {"fibX"}}}, {{"Out", {"xtemp"}}}, {}, caseBlock); + AddOp("assign", {{"X", {"fibY"}}}, {{"Out", {"fibX"}}}, {}, caseBlock); + AddOp("elementwise_add", {{"X", {"xtemp"}}, {"Y", {"fibY"}}}, + {{"Out", {"fibY"}}}, {}, caseBlock); + }; + AddCase(program, scope, place, casesBlock, 0, 1, dataChanName, "fibXToSend", + case0Func); + std::string case0Config = + std::string("0,1,") + dataChanName + std::string(",fibXToSend"); + + // Case 1: Receive from quitChanName + std::function case2Func = [&]( + BlockDesc *caseBlock, Scope *scope) { + // Exit the while loop after we receive from quit channel. + // We assign a false to "whileExitCond" variable, which will + // break out of while_op loop + CreateVariable(*scope, *place, "whileFalse", false); + AddOp("assign", {{"X", {"whileFalse"}}}, {{"Out", {"whileExitCond"}}}, {}, + caseBlock); + }; + AddCase(program, scope, place, casesBlock, 1, 2, quitChanName, "quitVar", + case2Func); + std::string case1Config = + std::string("1,2,") + quitChanName + std::string(",quitVar"); + + // Select block + AddOp("select", {{"X", {dataChanName, quitChanName}}, + {"case_to_execute", {"caseToExecute"}}}, + {}, {{"sub_block", casesBlock}, + {"cases", std::vector{case0Config, case1Config}}}, + whileBlock); + + scope->Var("stepScopes"); + AddOp("while", + {{"X", {dataChanName, quitChanName}}, {"Condition", {"whileExitCond"}}}, + {{"Out", {}}, {"StepScopes", {"stepScopes"}}}, + {{"sub_block", whileBlock}}, parentBlock); +} + TEST(Concurrency, Go_Op) { Scope scope; p::CPUPlace place; // Initialize scope variables - InitTensorsInScope(scope, place); + p::CPUDeviceContext ctx(place); + + // Create channel variable + scope.Var("Channel"); + + // Create Variables, x0 will be put into channel, + // result will be pulled from channel + CreateVariable(scope, place, "Status", false); + CreateVariable(scope, place, "x0", 99); + CreateVariable(scope, place, "result", 0); framework::Executor executor(place); ProgramDesc program; @@ -118,5 +215,78 @@ TEST(Concurrency, Go_Op) { auto *finalData = tensor.data(); EXPECT_EQ(finalData[0], 99); } + +/** + * This test implements the fibonacci function using go_op and select_op + */ +TEST(Concurrency, Select) { + Scope scope; + p::CPUPlace place; + + // Initialize scope variables + p::CPUDeviceContext ctx(place); + + CreateVariable(scope, place, "Status", false); + CreateVariable(scope, place, "result", 0); + CreateVariable(scope, place, "currentXFib", 0); + + framework::Executor executor(place); + ProgramDesc program; + BlockDesc *block = program.MutableBlock(0); + + // Create channel OP + std::string dataChanName = "Channel"; + scope.Var(dataChanName); + AddOp("channel_create", {}, {{"Out", {dataChanName}}}, + {{"capacity", 0}, {"data_type", f::proto::VarType::LOD_TENSOR}}, block); + + std::string quitChanName = "Quit"; + scope.Var(quitChanName); + AddOp("channel_create", {}, {{"Out", {quitChanName}}}, + {{"capacity", 0}, {"data_type", f::proto::VarType::LOD_TENSOR}}, block); + + // Create Go Op routine, which loops 10 times over fibonacci sequence + CreateVariable(scope, place, "xReceiveVar", 0); + + BlockDesc *goOpBlock = program.AppendBlock(program.Block(0)); + for (int i = 0; i < 10; ++i) { + AddOp("channel_recv", {{"Channel", {dataChanName}}}, + {{"Status", {"Status"}}, {"Out", {"currentXFib"}}}, {}, goOpBlock); + AddOp("print", {{"In", {"currentXFib"}}}, {{"Out", {"currentXFib"}}}, + {{"first_n", 100}, + {"summarize", -1}, + {"print_tensor_name", false}, + {"print_tensor_type", true}, + {"print_tensor_shape", false}, + {"print_tensor_lod", false}, + {"print_phase", std::string("FORWARD")}, + {"message", std::string("X: ")}}, + goOpBlock); + } + + CreateVariable(scope, place, "quitSignal", 0); + AddOp("channel_send", {{"Channel", {quitChanName}}, {"X", {"quitSignal"}}}, + {{"Status", {"Status"}}}, {}, goOpBlock); + + // Create Go Op + AddOp("go", {{"X", {dataChanName, quitChanName}}}, {}, + {{"sub_block", goOpBlock}}, block); + + AddFibonacciSelect(&scope, &place, &program, block, dataChanName, + quitChanName); + + // Create Channel Close Op + AddOp("channel_close", {{"Channel", {dataChanName}}}, {}, {}, block); + AddOp("channel_close", {{"Channel", {quitChanName}}}, {}, {}, block); + + executor.Run(program, &scope, 0, true, true); + + // After we call executor.run, "result" variable should be equal to 34 + // (which is 10 loops through fibonacci sequence) + const LoDTensor &tensor = (scope.FindVar("currentXFib"))->Get(); + auto *finalData = tensor.data(); + EXPECT_EQ(finalData[0], 34); +} + } // namespace framework } // namespace paddle diff --git a/paddle/fluid/operators/CMakeLists.txt b/paddle/fluid/operators/CMakeLists.txt index 625e0f7561..84dc265575 100644 --- a/paddle/fluid/operators/CMakeLists.txt +++ b/paddle/fluid/operators/CMakeLists.txt @@ -203,6 +203,11 @@ op_library(save_combine_op DEPS lod_tensor) op_library(load_combine_op DEPS lod_tensor) op_library(concat_op DEPS concat) +# FIXME(thuan): Move CSP operators to paddle/fluid/framework/operators/concurrency +add_subdirectory(concurrency) +op_library(channel_send_op DEPS concurrency) +op_library(channel_recv_op DEPS concurrency) + list(REMOVE_ITEM GENERAL_OPS ${DEPS_OPS}) foreach(src ${GENERAL_OPS}) op_library(${src}) diff --git a/paddle/fluid/operators/channel_recv_op.cc b/paddle/fluid/operators/channel_recv_op.cc index c12b88e7a9..844b3ae3b7 100644 --- a/paddle/fluid/operators/channel_recv_op.cc +++ b/paddle/fluid/operators/channel_recv_op.cc @@ -18,6 +18,7 @@ limitations under the License. */ #include #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/framework/var_type.h" +#include "paddle/fluid/operators/concurrency/channel_util.h" #include "paddle/fluid/operators/math/math_function.h" static constexpr char Channel[] = "Channel"; @@ -36,25 +37,6 @@ void SetReceiveStatus(const platform::Place &dev_place, status_tensor[0] = status; } -bool ChannelReceive(framework::ChannelHolder *ch, framework::Variable *var) { - // Get type of channel and use that to call mutable data for Variable - auto type = framework::ToVarType(ch->Type()); - if (type == framework::proto::VarType_Type_LOD_TENSOR) - return ch->Receive(var->GetMutable()); - else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) - return ch->Receive(var->GetMutable()); - else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) - return ch->Receive(var->GetMutable()); - else if (type == framework::proto::VarType_Type_SELECTED_ROWS) - return ch->Receive(var->GetMutable()); - else if (type == framework::proto::VarType_Type_READER) - return ch->Receive(var->GetMutable()); - else if (type == framework::proto::VarType_Type_CHANNEL) - return ch->Receive(var->GetMutable()); - else - PADDLE_THROW("ChannelReceive:Unsupported type"); -} - class ChannelRecvOp : public framework::OperatorBase { public: ChannelRecvOp(const std::string &type, @@ -81,7 +63,7 @@ class ChannelRecvOp : public framework::OperatorBase { scope.FindVar(Input(Channel))->GetMutable(); auto output_var = scope.FindVar(Output(Out)); // Receive the data from the channel. - bool ok = ChannelReceive(ch, output_var); + bool ok = concurrency::ChannelReceive(ch, output_var); // Set the status output of the `ChannelReceive` call. SetReceiveStatus(dev_place, *scope.FindVar(Output(Status)), ok); diff --git a/paddle/fluid/operators/channel_send_op.cc b/paddle/fluid/operators/channel_send_op.cc index 6d7715ad22..47cf7d7efc 100644 --- a/paddle/fluid/operators/channel_send_op.cc +++ b/paddle/fluid/operators/channel_send_op.cc @@ -18,6 +18,7 @@ limitations under the License. */ #include #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/framework/var_type.h" +#include "paddle/fluid/operators/concurrency/channel_util.h" #include "paddle/fluid/operators/math/math_function.h" static constexpr char Channel[] = "Channel"; @@ -37,24 +38,6 @@ void SetSendStatus(const platform::Place &dev_place, status_tensor[0] = status; } -bool ChannelSend(framework::ChannelHolder *ch, framework::Variable *var) { - auto type = framework::ToVarType(var->Type()); - if (type == framework::proto::VarType_Type_LOD_TENSOR) - return ch->Send(var->GetMutable()); - else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) - return ch->Send(var->GetMutable()); - else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) - return ch->Send(var->GetMutable()); - else if (type == framework::proto::VarType_Type_SELECTED_ROWS) - return ch->Send(var->GetMutable()); - else if (type == framework::proto::VarType_Type_READER) - return ch->Send(var->GetMutable()); - else if (type == framework::proto::VarType_Type_CHANNEL) - return ch->Send(var->GetMutable()); - else - PADDLE_THROW("ChannelSend:Unsupported type"); -} - class ChannelSendOp : public framework::OperatorBase { public: ChannelSendOp(const std::string &type, @@ -82,7 +65,7 @@ class ChannelSendOp : public framework::OperatorBase { auto input_var = scope.FindVar(Input(X)); // Send the input data through the channel. - bool ok = ChannelSend(ch, input_var); + bool ok = concurrency::ChannelSend(ch, input_var); // Set the status output of the `ChannelSend` call. SetSendStatus(dev_place, *scope.FindVar(Output(Status)), ok); diff --git a/paddle/fluid/operators/concurrency/CMakeLists.txt b/paddle/fluid/operators/concurrency/CMakeLists.txt new file mode 100644 index 0000000000..e4617440d1 --- /dev/null +++ b/paddle/fluid/operators/concurrency/CMakeLists.txt @@ -0,0 +1 @@ +cc_library(concurrency SRCS channel_util.cc DEPS device_context framework_proto boost eigen3) diff --git a/paddle/fluid/operators/concurrency/channel_util.cc b/paddle/fluid/operators/concurrency/channel_util.cc new file mode 100644 index 0000000000..a483af7aff --- /dev/null +++ b/paddle/fluid/operators/concurrency/channel_util.cc @@ -0,0 +1,111 @@ +/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#include "channel_util.h" +#include "paddle/fluid/framework/var_type.h" + +namespace poc = paddle::operators::concurrency; + +bool poc::ChannelSend(framework::ChannelHolder *ch, framework::Variable *var) { + auto type = framework::ToVarType(var->Type()); + if (type == framework::proto::VarType_Type_LOD_TENSOR) + return ch->Send(var->GetMutable()); + else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) + return ch->Send(var->GetMutable()); + else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) + return ch->Send(var->GetMutable()); + else if (type == framework::proto::VarType_Type_SELECTED_ROWS) + return ch->Send(var->GetMutable()); + else if (type == framework::proto::VarType_Type_READER) + return ch->Send(var->GetMutable()); + else if (type == framework::proto::VarType_Type_CHANNEL) + return ch->Send(var->GetMutable()); + else + PADDLE_THROW("ChannelSend:Unsupported type"); +} + +bool poc::ChannelReceive(framework::ChannelHolder *ch, + framework::Variable *var) { + // Get type of channel and use that to call mutable data for Variable + auto type = framework::ToVarType(ch->Type()); + if (type == framework::proto::VarType_Type_LOD_TENSOR) + return ch->Receive(var->GetMutable()); + else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) + return ch->Receive(var->GetMutable()); + else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) + return ch->Receive(var->GetMutable()); + else if (type == framework::proto::VarType_Type_SELECTED_ROWS) + return ch->Receive(var->GetMutable()); + else if (type == framework::proto::VarType_Type_READER) + return ch->Receive(var->GetMutable()); + else if (type == framework::proto::VarType_Type_CHANNEL) + return ch->Receive(var->GetMutable()); + else + PADDLE_THROW("ChannelReceive:Unsupported type"); +} + +void poc::ChannelAddToSendQ(framework::ChannelHolder *ch, const void *referrer, + framework::Variable *var, + std::shared_ptr cond, + std::function cb) { + auto type = framework::ToVarType(var->Type()); + if (type == framework::proto::VarType_Type_LOD_TENSOR) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, cb); + } else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, + cb); + } else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, + cb); + } else if (type == framework::proto::VarType_Type_SELECTED_ROWS) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, + cb); + } else if (type == framework::proto::VarType_Type_READER) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, + cb); + } else if (type == framework::proto::VarType_Type_CHANNEL) { + ch->AddToSendQ(referrer, var->GetMutable(), cond, + cb); + } else { + PADDLE_THROW("ChannelAddToSendQ:Unsupported type"); + } +} + +void poc::ChannelAddToReceiveQ( + framework::ChannelHolder *ch, const void *referrer, + framework::Variable *var, std::shared_ptr cond, + std::function cb) { + auto type = framework::ToVarType(var->Type()); + if (type == framework::proto::VarType_Type_LOD_TENSOR) { + ch->AddToReceiveQ(referrer, var->GetMutable(), cond, + cb); + } else if (type == framework::proto::VarType_Type_LOD_RANK_TABLE) { + ch->AddToReceiveQ(referrer, var->GetMutable(), + cond, cb); + } else if (type == framework::proto::VarType_Type_LOD_TENSOR_ARRAY) { + ch->AddToReceiveQ(referrer, var->GetMutable(), + cond, cb); + } else if (type == framework::proto::VarType_Type_SELECTED_ROWS) { + ch->AddToReceiveQ(referrer, var->GetMutable(), + cond, cb); + } else if (type == framework::proto::VarType_Type_READER) { + ch->AddToReceiveQ(referrer, var->GetMutable(), + cond, cb); + } else if (type == framework::proto::VarType_Type_CHANNEL) { + ch->AddToReceiveQ(referrer, var->GetMutable(), + cond, cb); + } else { + PADDLE_THROW("ChannelAddToReceiveQ:Unsupported type"); + } +} diff --git a/paddle/fluid/operators/concurrency/channel_util.h b/paddle/fluid/operators/concurrency/channel_util.h new file mode 100644 index 0000000000..c3674bd981 --- /dev/null +++ b/paddle/fluid/operators/concurrency/channel_util.h @@ -0,0 +1,38 @@ +/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#pragma once + +#include "paddle/fluid/framework/channel.h" +#include "paddle/fluid/framework/variable.h" + +namespace paddle { +namespace operators { +namespace concurrency { + +bool ChannelSend(framework::ChannelHolder *ch, framework::Variable *var); +bool ChannelReceive(framework::ChannelHolder *ch, framework::Variable *var); + +void ChannelAddToSendQ(framework::ChannelHolder *ch, const void *referrer, + framework::Variable *var, + std::shared_ptr cond, + std::function cb); +void ChannelAddToReceiveQ(framework::ChannelHolder *ch, const void *referrer, + framework::Variable *var, + std::shared_ptr cond, + std::function cb); + +} // namespace concurrency +} // namespace operators +} // namespace paddle diff --git a/paddle/fluid/operators/select_op.cc b/paddle/fluid/operators/select_op.cc new file mode 100644 index 0000000000..8344a239df --- /dev/null +++ b/paddle/fluid/operators/select_op.cc @@ -0,0 +1,414 @@ +/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#include +#include +#include +#include +#include "paddle/fluid/framework/channel.h" +#include "paddle/fluid/framework/executor.h" +#include "paddle/fluid/framework/lod_tensor.h" +#include "paddle/fluid/framework/op_registry.h" +#include "paddle/fluid/operators/concurrency/channel_util.h" + +namespace paddle { +namespace operators { + +static constexpr char kX[] = "X"; +static constexpr char kCaseToExecute[] = "case_to_execute"; + +static constexpr char kCases[] = "cases"; +static constexpr char kCasesBlock[] = "sub_block"; + +class SelectOp : public framework::OperatorBase { + public: + SelectOp(const std::string &type, const framework::VariableNameMap &inputs, + const framework::VariableNameMap &outputs, + const framework::AttributeMap &attrs) + : framework::OperatorBase(type, inputs, outputs, attrs) {} + + private: + enum class SelectOpCaseType { + DEFAULT = 0, + SEND = 1, + RECEIVE = 2, + }; + + struct SelectOpCase { + int caseIndex; + SelectOpCaseType caseType; + std::string channelName; + std::string varName; + + SelectOpCase() {} + + SelectOpCase(int caseIndex, SelectOpCaseType caseType, + std::string channelName, std::string varName) + : caseIndex(caseIndex), + caseType(caseType), + channelName(channelName), + varName(varName) {} + }; + + void RunImpl(const framework::Scope &scope, + const platform::Place &dev_place) const override { + std::vector casesConfigs = + Attr>(kCases); + + framework::BlockDesc *casesBlock = + Attr(kCasesBlock); + + framework::Scope &casesBlockScope = scope.NewScope(); + + std::string caseToExecuteVarName = Input(kCaseToExecute); + framework::Variable *caseToExecuteVar = + casesBlockScope.FindVar(caseToExecuteVarName); + + // Construct cases from "conditional_block_op"(s) in the casesBlock + std::vector> cases = + ParseAndShuffleCases(&casesConfigs); + + // Get all unique channels involved in select + std::set channelsSet; + for (auto c : cases) { + if (!c->channelName.empty()) { + auto channelVar = scope.FindVar(c->channelName); + framework::ChannelHolder *ch = + channelVar->GetMutable(); + + if (channelsSet.find(ch) == channelsSet.end()) { + channelsSet.insert(ch); + } + } + } + + // Order all channels by their pointer address + std::vector channels(channelsSet.begin(), + channelsSet.end()); + std::sort(channels.begin(), channels.end()); + + // Poll all cases + int32_t caseToExecute = pollCases(&scope, &cases, channels); + + // At this point, the case to execute has already been determined, + // so we can proceed with executing the cases block + framework::LoDTensor *caseToExecuteTensor = + caseToExecuteVar->GetMutable(); + caseToExecuteTensor->data()[0] = caseToExecute; + + // Execute the cases block, only one case will be executed since we set the + // case_to_execute value to the index of the case we want to execute + framework::Executor executor(dev_place); + framework::ProgramDesc *program = casesBlock->Program(); + executor.Run(*program, &casesBlockScope, casesBlock->ID(), + false /*create_local_scope*/); + } + + /** + * Goes through all operators in the casesConfigs and processes + * "conditional_block" operators. These operators are mapped to our + * SelectOpCase objects. We randomize the case orders, and set the + * default case (if any exists) as the last case) + * @param casesBlock + * @return + */ + std::vector> ParseAndShuffleCases( + std::vector *casesConfigs) const { + std::vector> cases; + std::shared_ptr defaultCase; + + if (casesConfigs != nullptr) { + boost::char_delimiters_separator sep(false, ",", ""); + for (std::vector::iterator itr = casesConfigs->begin(); + itr < casesConfigs->end(); ++itr) { + std::string caseConfig = *itr; + boost::tokenizer<> tokens(caseConfig, sep); + + boost::tokenizer<>::iterator tok_iter = tokens.begin(); + PADDLE_ENFORCE(tok_iter != tokens.end(), "Cannot get case index"); + std::string caseIndexString = *tok_iter; + int caseIndex = std::stoi(caseIndexString); + + ++tok_iter; + PADDLE_ENFORCE(tok_iter != tokens.end(), "Cannot get case type"); + std::string caseTypeString = *tok_iter; + SelectOpCaseType caseType = (SelectOpCaseType)std::stoi(caseTypeString); + + std::string caseChannel; + std::string caseChannelVar; + + ++tok_iter; + if (caseType != SelectOpCaseType::DEFAULT) { + PADDLE_ENFORCE(tok_iter != tokens.end(), "Cannot get case channel"); + caseChannel = *tok_iter; + + ++tok_iter; + PADDLE_ENFORCE(tok_iter != tokens.end(), + "Cannot get case channel variable"); + caseChannelVar = *tok_iter; + } + + auto c = std::make_shared(caseIndex, caseType, + caseChannel, caseChannelVar); + + if (caseType == SelectOpCaseType::DEFAULT) { + PADDLE_ENFORCE(defaultCase == nullptr, + "Select can only contain one default case."); + defaultCase = c; + } else { + cases.push_back(c); + } + } + } + + // Randomly sort cases, with default case being last + std::random_shuffle(cases.begin(), cases.end()); + if (defaultCase != nullptr) { + cases.push_back(defaultCase); + } + + return cases; + } + + /** + * This method will recursively poll the cases and determines if any case + * condition is true. + * If none of the cases conditions are true (and there is no default case), + * then block + * the thread. The thread may be woken up by a channel operation, at which + * point we + * execute the case. + * @param scope + * @param cases + * @param channels + * @return + */ + int32_t pollCases(const framework::Scope *scope, + std::vector> *cases, + std::vector channels) const { + // Lock all involved channels + lockChannels(channels); + + std::atomic caseToExecute(-1); + + std::vector>::iterator it = cases->begin(); + while (it != cases->end()) { + std::shared_ptr c = *it; + + auto chVar = scope->FindVar(c->channelName); + framework::ChannelHolder *ch = + chVar->GetMutable(); + + switch (c->caseType) { + case SelectOpCaseType::SEND: + PADDLE_ENFORCE(!ch->IsClosed(), "Cannot send to a closed channel"); + if (ch->CanSend()) { + // We can send to channel directly, send the data to channel + // and execute case + auto chVar = scope->FindVar(c->varName); + concurrency::ChannelSend(ch, chVar); + caseToExecute = c->caseIndex; + } + break; + case SelectOpCaseType::RECEIVE: + if (ch->CanReceive()) { + // We can receive from channel directly, send the data to channel + // and execute case + auto chVar = scope->FindVar(c->varName); + concurrency::ChannelReceive(ch, chVar); + caseToExecute = c->caseIndex; + } + break; + case SelectOpCaseType::DEFAULT: + caseToExecute = c->caseIndex; + break; + } + + if (caseToExecute != -1) { + // We found a case to execute, stop looking at other case statements + break; + } + + ++it; + } + + if (caseToExecute == -1) { + // None of the cases are eligible to execute, enqueue current thread + // into all the sending/receiving queue of each involved channel + std::atomic completed(false); + std::recursive_mutex mutex; + std::unique_lock lock{mutex}; + // std::condition_variable_any selectCond; + auto selectCond = std::make_shared(); + + std::recursive_mutex callbackMutex; + pushThreadOnChannelQueues(scope, cases, selectCond, caseToExecute, + completed, callbackMutex); + + // TODO(thuan): Atomically unlock all channels and sleep current thread + unlockChannels(channels); + selectCond->wait(lock, [&completed]() { return completed.load(); }); + + // Select has been woken up by case operation + lockChannels(channels); + removeThreadOnChannelQueues(scope, cases); + + if (caseToExecute == -1) { + // Recursively poll cases, since we were woken up by a channel close + // TODO(thuan): Need to test if this is a valid case + unlockChannels(channels); + return pollCases(scope, cases, channels); + } + } + + // At this point, caseToExecute != -1, and we can proceed with executing + // the case block + unlockChannels(channels); + + return caseToExecute; + } + + void lockChannels(std::vector chs) const { + std::vector::iterator it = chs.begin(); + while (it != chs.end()) { + framework::ChannelHolder *ch = *it; + ch->Lock(); + ++it; + } + } + + void unlockChannels(std::vector chs) const { + std::vector::reverse_iterator it = chs.rbegin(); + while (it != chs.rend()) { + framework::ChannelHolder *ch = *it; + ch->Unlock(); + ++it; + } + } + + void pushThreadOnChannelQueues( + const framework::Scope *scope, + std::vector> *cases, + std::shared_ptr rCond, + std::atomic &caseToExecute, std::atomic &completed, + std::recursive_mutex &callbackMutex) const { + std::vector>::iterator it = cases->begin(); + while (it != cases->end()) { + std::shared_ptr c = *it; + + auto chVar = scope->FindVar(c->channelName); + framework::ChannelHolder *ch = + chVar->GetMutable(); + + std::function cb = + [&caseToExecute, &completed, &callbackMutex, + c](framework::ChannelAction channelAction) { + std::lock_guard lock{callbackMutex}; + + bool canProcess = false; + if (!completed) { + // If the channel wasn't closed, we set the caseToExecute index + // as this current case + if (channelAction != framework::ChannelAction::CLOSE) { + caseToExecute = c->caseIndex; + } + // This will allow our conditional variable to break out of wait + completed = true; + canProcess = true; + } + + return canProcess; + }; + + switch (c->caseType) { + case SelectOpCaseType::SEND: { + auto chOutputVar = scope->FindVar(c->varName); + concurrency::ChannelAddToSendQ(ch, this, chOutputVar, rCond, cb); + break; + } + case SelectOpCaseType::RECEIVE: { + auto chOutputVar = scope->FindVar(c->varName); + concurrency::ChannelAddToReceiveQ(ch, this, chOutputVar, rCond, cb); + break; + } + default: + break; + } + ++it; + } + } + + void removeThreadOnChannelQueues( + const framework::Scope *scope, + std::vector> *cases) const { + std::vector>::iterator it = cases->begin(); + while (it != cases->end()) { + std::shared_ptr c = *it; + + auto chVar = scope->FindVar(c->channelName); + framework::ChannelHolder *ch = + chVar->GetMutable(); + switch (c->caseType) { + case SelectOpCaseType::SEND: { + ch->RemoveFromSendQ(this); + break; + } + case SelectOpCaseType::RECEIVE: { + ch->RemoveFromReceiveQ(this); + break; + } + default: + break; + } + ++it; + } + } +}; + +class SelectOpMaker : public framework::OpProtoAndCheckerMaker { + public: + SelectOpMaker(OpProto *proto, OpAttrChecker *op_checker) + : OpProtoAndCheckerMaker(proto, op_checker) { + AddInput(kX, + "A set of variables, which are required by operators inside the " + "cases of Select Op") + .AsDuplicable(); + AddInput(kCaseToExecute, + "(Int) The variable the sets the index of the case to execute, " + "after evaluating the channels being sent to and received from") + .AsDuplicable(); + AddAttr>(kCases, + "(String vector) Serialized list of" + "all cases in the select op. Each" + "case is serialized as: " + "',,,'" + "where type is 0 for default, 1 for" + "send, and 2 for receive" + "No channel and values are needed for" + "default cases."); + AddAttr(kCasesBlock, + "The cases block inside select_op"); + AddComment(R"DOC( +)DOC"); + } +}; + +// TODO(thuan): Implement Gradient Operator for SELECT_OP + +} // namespace operators +} // namespace paddle + +REGISTER_OPERATOR(select, paddle::operators::SelectOp, + paddle::framework::EmptyGradOpMaker, + paddle::operators::SelectOpMaker); diff --git a/python/paddle/fluid/__init__.py b/python/paddle/fluid/__init__.py index dcde08632a..fcea282204 100644 --- a/python/paddle/fluid/__init__.py +++ b/python/paddle/fluid/__init__.py @@ -35,7 +35,7 @@ from core import LoDTensor, CPUPlace, CUDAPlace from distribute_transpiler import DistributeTranspiler from distribute_transpiler_simple import SimpleDistributeTranspiler from concurrency import (Go, make_channel, channel_send, channel_recv, - channel_close) + channel_close, Select) import clip from memory_optimization_transpiler import memory_optimize, release_memory import profiler diff --git a/python/paddle/fluid/concurrency.py b/python/paddle/fluid/concurrency.py index dec224fc88..535e881c42 100644 --- a/python/paddle/fluid/concurrency.py +++ b/python/paddle/fluid/concurrency.py @@ -12,17 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from layers.control_flow import BlockGuard +from layers.control_flow import BlockGuard, Select from layer_helper import LayerHelper, unique_name from layers import fill_constant import core __all__ = [ - 'Go', - 'make_channel', - 'channel_send', - 'channel_recv', - 'channel_close', + 'Go', 'make_channel', 'channel_send', 'channel_recv', 'channel_close', + 'Select' ] @@ -198,7 +195,7 @@ def channel_recv(channel, return_value): ch = fluid.make_channel(dtype='int32', capacity=10) with fluid.Go(): - returned_value = fluid.channel_recv(ch, 'int32') + returned_value, return_status = fluid.channel_recv(ch, 'int32') # Code to send data through the channel. """ diff --git a/python/paddle/fluid/framework.py b/python/paddle/fluid/framework.py index d14d6349b1..70ecffd910 100644 --- a/python/paddle/fluid/framework.py +++ b/python/paddle/fluid/framework.py @@ -487,7 +487,7 @@ class Operator(object): 'rnn_memory_helper_grad', 'conditional_block', 'while', 'send', 'recv', 'listen_and_serv', 'parallel_do', 'save_combine', 'load_combine', 'ncclInit', 'channel_create', 'channel_close', - 'channel_send', 'channel_recv' + 'channel_send', 'channel_recv', 'select' } if type not in no_kernel_op_set: self.desc.infer_var_type(self.block.desc) diff --git a/python/paddle/fluid/layers/control_flow.py b/python/paddle/fluid/layers/control_flow.py index 1bb1aa30ee..02cd0a05a1 100644 --- a/python/paddle/fluid/layers/control_flow.py +++ b/python/paddle/fluid/layers/control_flow.py @@ -16,7 +16,7 @@ import contextlib from layer_function_generator import autodoc from tensor import assign, fill_constant from .. import core -from ..framework import Program, Variable, Operator +from ..framework import Program, Variable, Operator, Block from ..layer_helper import LayerHelper, unique_name from ops import logical_and, logical_not, logical_or @@ -29,6 +29,7 @@ __all__ = [ 'WhileGuard', 'While', 'Switch', + 'Select', 'lod_rank_table', 'max_sequence_len', 'topk', @@ -1211,6 +1212,186 @@ class Switch(object): return True +class SelectCase(object): + DEFAULT = 0 + SEND = 1 + RECEIVE = 2 + + def __init__(self, + case_idx, + case_to_execute, + channel_action_fn=None, + channel=None, + value=None): + self.helper = LayerHelper('conditional_block') + self.main_program = self.helper.main_program + self.is_scalar_condition = True + + self.case_to_execute = case_to_execute + self.idx = case_idx + + # Since we aren't going to use the `channel_send` or `channel_recv` + # functions directly, we just need to capture the name. + self.action = (self.SEND + if channel_action_fn.__name__ == ('channel_send') else + self.RECEIVE) if channel_action_fn else (self.DEFAULT) + self.value = value + self.channel = channel + + def __enter__(self): + self.block = self.main_program.create_block() + + def construct_op(self): + main_program = self.helper.main_program + cases_block = main_program.current_block() + + inner_outputs = set() + input_set = set() + params = set() + + for op in self.block.ops: + # Iterate over all operators, get all the inputs + # and add as input to the SelectCase operator. + for iname in op.input_names: + for in_var_name in op.input(iname): + if in_var_name not in inner_outputs: + input_set.add(in_var_name) + + for oname in op.output_names: + for out_var_name in op.output(oname): + inner_outputs.add(out_var_name) + + param_list = [ + cases_block.var(each_name) for each_name in params + if each_name not in input_set + ] + + # Iterate over all operators, get all the outputs + # add to the output list of SelectCase operator only if + # they exist in the parent block. + out_vars = [] + for inner_out_name in inner_outputs: + if inner_out_name in cases_block.vars: + out_vars.append(cases_block.var(inner_out_name)) + + # First, create an op that will determine whether or not this is the + # conditional variable to execute. + should_execute_block = equal( + fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=self.idx), + self.case_to_execute) + + step_scope = cases_block.create_var( + type=core.VarDesc.VarType.STEP_SCOPES) + + cases_block.append_op( + type='conditional_block', + inputs={'X': [should_execute_block], + 'Params': param_list}, + outputs={'Out': out_vars, + 'Scope': [step_scope]}, + attrs={ + 'sub_block': self.block, + 'is_scalar_condition': self.is_scalar_condition + }) + + return '%s,%s,%s,%s' % (self.idx, self.action, self.channel.name + if self.channel else '', self.value.name + if self.value else '') + + def __exit__(self, exc_type, exc_val, exc_tb): + self.main_program.rollback() + if exc_type is not None: + return False # re-raise exception + return True + + +class Select(BlockGuard): + def __init__(self, name=None): + self.helper = LayerHelper('select', name=name) + self.cases = [] + + super(Select, self).__init__(self.helper.main_program) + self.case_to_execute = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=-1) + + def __enter__(self): + super(Select, self).__enter__() + return self + + def case(self, channel_action_fn, channel, value): + """Create a new block for this condition. + """ + select_case = SelectCase( + len(self.cases), self.case_to_execute, channel_action_fn, channel, + value) + + self.cases.append(select_case) + + return select_case + + def default(self): + """Create a default case block for this condition. + """ + default_case = SelectCase(len(self.cases), self.case_to_execute) + + self.cases.append(default_case) + + return default_case + + def __exit__(self, exc_type, exc_val, exc_tb): + if exc_type is not None: + return False + + # Create a select op and another block to wrap its + # case blocks. + select_block = self.helper.main_program.current_block() + parent_block = self.helper.main_program.block(select_block.parent_idx) + + # Construct each case op, inside the newly created select block. + serialized_cases = [] + for case in self.cases: + serialized_cases.append(case.construct_op()) + + intermediate = set() + params = set() + + for case_block in select_block.ops: + if case_block.attrs and 'sub_block' in case_block.attrs: + for each_op in case_block.attrs['sub_block'].ops: + assert isinstance(each_op, Operator) + for iname in each_op.input_names: + for in_var_name in each_op.input(iname): + if in_var_name not in intermediate: + params.add(in_var_name) + + for oname in each_op.output_names: + for out_var_name in each_op.output(oname): + intermediate.add(out_var_name) + + # TODO(varunarora): Figure out if defining output is needed. + out_list = [ + parent_block.var(var_name) for var_name in parent_block.vars + if var_name in intermediate + ] + + X = [select_block.var_recursive(x_name) for x_name in params] + + # Needs to be used by `equal` inside the cases block. + X.append(self.case_to_execute) + + # Construct the select op. + parent_block.append_op( + type='select', + inputs={'X': X, + 'case_to_execute': self.case_to_execute}, + attrs={'sub_block': select_block, + 'cases': serialized_cases}, + outputs={}) + + return super(Select, self).__exit__(exc_type, exc_val, exc_tb) + + class IfElseBlockGuard(object): def __init__(self, is_true, ifelse): if not isinstance(ifelse, IfElse): diff --git a/python/paddle/fluid/tests/test_concurrency.py b/python/paddle/fluid/tests/test_concurrency.py index 9f7bf63c5e..3aa51610cd 100644 --- a/python/paddle/fluid/tests/test_concurrency.py +++ b/python/paddle/fluid/tests/test_concurrency.py @@ -15,9 +15,9 @@ import unittest import paddle.fluid as fluid import paddle.fluid.core as core -from paddle.fluid import framework, unique_name +from paddle.fluid import framework, unique_name, layer_helper from paddle.fluid.executor import Executor -from paddle.fluid.layers import fill_constant +from paddle.fluid.layers import fill_constant, assign, While, elementwise_add, Print class TestRoutineOp(unittest.TestCase): @@ -86,8 +86,7 @@ class TestRoutineOp(unittest.TestCase): self.assertEqual(leftmost_data[0][0], n + 1) def _create_one_dim_tensor(self, value): - one_dim_tensor = fill_constant( - shape=[1], dtype=core.VarDesc.VarType.INT64, value=value) + one_dim_tensor = fill_constant(shape=[1], dtype='int', value=value) one_dim_tensor.stop_gradient = True return one_dim_tensor @@ -95,6 +94,129 @@ class TestRoutineOp(unittest.TestCase): return framework.default_main_program().current_block().create_var( name=unique_name.generate(name), type=type, dtype=dtype) + def _create_persistable_tensor(self, name, type, dtype): + return framework.default_main_program().current_block().create_var( + name=unique_name.generate(name), + type=type, + dtype=dtype, + persistable=True) + + def test_select(self): + with framework.program_guard(framework.Program()): + ch1 = fluid.make_channel( + dtype=core.VarDesc.VarType.LOD_TENSOR, capacity=1) + + result1 = self._create_tensor('return_value', + core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.FP64) + + input_value = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.FP64, value=10) + + with fluid.Select() as select: + with select.case(fluid.channel_send, ch1, input_value): + # Execute something. + pass + + with select.default(): + pass + + # This should not block because we are using a buffered channel. + result1, status = fluid.channel_recv(ch1, result1) + fluid.channel_close(ch1) + + cpu = core.CPUPlace() + exe = Executor(cpu) + + result = exe.run(fetch_list=[result1]) + self.assertEqual(result[0][0], 10) + + def test_fibonacci(self): + """ + Mimics Fibonacci Go example: https://tour.golang.org/concurrency/5 + """ + with framework.program_guard(framework.Program()): + quit_ch_input_var = self._create_persistable_tensor( + 'quit_ch_input', core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.INT32) + quit_ch_input = fill_constant( + shape=[1], + dtype=core.VarDesc.VarType.INT32, + value=0, + out=quit_ch_input_var) + + result = self._create_persistable_tensor( + 'result', core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.INT32) + fill_constant( + shape=[1], + dtype=core.VarDesc.VarType.INT32, + value=0, + out=result) + + x = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=0) + y = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=1) + + while_cond = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.BOOL, value=True) + + while_false = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.BOOL, value=False) + + x_tmp = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=0) + + def fibonacci(channel, quit_channel): + while_op = While(cond=while_cond) + with while_op.block(): + result2 = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=0) + x_to_send_tmp = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.INT32, value=0) + + # TODO(abhinav): Need to perform copy when doing a channel send. + # Once this is complete, we can remove these lines + assign(input=x, output=x_to_send_tmp) + + with fluid.Select() as select: + with select.case(fluid.channel_send, channel, + x_to_send_tmp): + assign(input=x, output=x_tmp) + assign(input=y, output=x) + assign(elementwise_add(x=x_tmp, y=y), output=y) + + with select.case(fluid.channel_recv, quit_channel, + result2): + # Quit + helper = layer_helper.LayerHelper('assign') + helper.append_op( + type='assign', + inputs={'X': [while_false]}, + outputs={'Out': [while_cond]}) + + ch1 = fluid.make_channel(dtype=core.VarDesc.VarType.LOD_TENSOR) + quit_ch = fluid.make_channel(dtype=core.VarDesc.VarType.LOD_TENSOR) + + with fluid.Go(): + for i in xrange(10): + fluid.channel_recv(ch1, result) + Print(result) + + fluid.channel_send(quit_ch, quit_ch_input) + + fibonacci(ch1, quit_ch) + + fluid.channel_close(ch1) + fluid.channel_close(quit_ch) + + cpu = core.CPUPlace() + exe = Executor(cpu) + + exe_result = exe.run(fetch_list=[result]) + self.assertEqual(exe_result[0][0], 34) + if __name__ == '__main__': unittest.main() From b5a16dca205cfd2a903e1a68bae0b1518eb5a26e Mon Sep 17 00:00:00 2001 From: qingqing01 Date: Thu, 15 Mar 2018 19:09:12 +0800 Subject: [PATCH 43/75] Fix a critical bug in softmax_with_cross_entropy_op backward. (#9120) * Fix a critical bug in softmax_with_cross_entropy_op, which will lead to the wrong gradients. * Enhance unit testing. --- .../softmax_with_cross_entropy_op.cu | 48 +++++++++---------- .../test_softmax_with_cross_entropy_op.py | 4 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/paddle/fluid/operators/softmax_with_cross_entropy_op.cu b/paddle/fluid/operators/softmax_with_cross_entropy_op.cu index 39b246a5be..8f7840cee1 100644 --- a/paddle/fluid/operators/softmax_with_cross_entropy_op.cu +++ b/paddle/fluid/operators/softmax_with_cross_entropy_op.cu @@ -23,21 +23,21 @@ using Tensor = framework::Tensor; namespace { template -__global__ void CrossEntropyGrad(T* logit_grad, const T* loss_grad, - const int64_t* labels, const int batch_size, - const int class_num) { - int tid = blockIdx.x * blockDim.x + threadIdx.x; - int sample_idx = tid / class_num; - - if (tid < batch_size) { - PADDLE_ASSERT(labels[sample_idx] >= 0 && labels[sample_idx] < class_num); - logit_grad[tid * class_num + labels[tid]] -= static_cast(1.); +__global__ void CrossEntropyGrad(T* logit_grad, const int64_t* labels, + const int batch_size, const int class_num) { + for (int i = blockIdx.x * blockDim.x + threadIdx.x; i < batch_size; + i += blockDim.x * gridDim.x) { + int idx = i * class_num + labels[i]; + logit_grad[idx] -= static_cast(1.); } +} - __syncthreads(); - - if (tid < batch_size * class_num) { - logit_grad[tid] *= loss_grad[sample_idx]; +template +__global__ void Scale(T* logit_grad, const T* loss_grad, const int num, + const int class_num) { + for (int i = blockIdx.x * blockDim.x + threadIdx.x; i < num; + i += blockDim.x * gridDim.x) { + logit_grad[i] *= loss_grad[i / class_num]; } } @@ -94,22 +94,22 @@ class SoftmaxWithCrossEntropyGradCUDAKernel : public framework::OpKernel { const int batch_size = logit_grad->dims()[0]; const int class_num = logit_grad->dims()[1]; int block = 512; - int grid = (batch_size * class_num + block - 1) / block; + auto stream = context.cuda_device_context().stream(); if (context.Attr("soft_label")) { + int grid = (batch_size * class_num + block - 1) / block; const T* label_data = labels->data(); - SoftCrossEntropyGradientKernel< - T><<() - .stream()>>>(logit_grad_data, loss_grad_data, label_data, - batch_size, class_num); + SoftCrossEntropyGradientKernel<<>>( + logit_grad_data, loss_grad_data, label_data, batch_size, class_num); } else { + int grid = (batch_size + block - 1) / block; const int64_t* label_data = labels->data(); - CrossEntropyGrad< - T><<() - .stream()>>>(logit_grad_data, loss_grad_data, label_data, - batch_size, class_num); + CrossEntropyGrad<<>>( + logit_grad_data, label_data, batch_size, class_num); + int num = batch_size * class_num; + grid = (num + block - 1) / block; + Scale<<>>(logit_grad_data, loss_grad_data, num, + class_num); } } }; diff --git a/python/paddle/fluid/tests/unittests/test_softmax_with_cross_entropy_op.py b/python/paddle/fluid/tests/unittests/test_softmax_with_cross_entropy_op.py index 889fea2ce6..c0d9fc8f22 100644 --- a/python/paddle/fluid/tests/unittests/test_softmax_with_cross_entropy_op.py +++ b/python/paddle/fluid/tests/unittests/test_softmax_with_cross_entropy_op.py @@ -26,7 +26,7 @@ class TestSoftmaxWithCrossEntropyOp(OpTest): def setUp(self): self.op_type = "softmax_with_cross_entropy" - batch_size = 2 + batch_size = 41 class_num = 37 logits = np.random.uniform(0.1, 1.0, @@ -59,7 +59,7 @@ class TestSoftmaxWithCrossEntropyOp2(OpTest): def setUp(self): self.op_type = "softmax_with_cross_entropy" - batch_size = 2 + batch_size = 41 class_num = 37 logits = np.random.uniform(0.1, 1.0, From 64775126f3765401838d1794b0758cee86037571 Mon Sep 17 00:00:00 2001 From: ranqiu Date: Thu, 15 Mar 2018 14:15:23 +0800 Subject: [PATCH 44/75] change the dir of docs --- .../design/algorithm}/images/asgd.gif | Bin .../design/algorithm}/images/theta_star.gif | Bin .../design/algorithm}/parameter_average.md | 0 .../design/concepts}/README.md | 0 doc/{design => fluid/design/concepts}/block.md | 0 .../design/concepts}/cpp_data_feeding.md | 0 doc/{design => fluid/design/concepts}/executor.md | 0 .../design/concepts}/functions_operators_layers.md | 0 .../fluid/design/concepts}/lod_tensor.md | 0 doc/{design => fluid/design/concepts}/program.md | 0 doc/{design => fluid/design/concepts}/scope.md | 0 .../fluid/design/concepts}/tensor.md | 0 .../design/concepts}/tensor_array.md | 0 doc/{design => fluid/design/concepts}/var_desc.md | 0 .../fluid/design/concepts}/variable.md | 0 .../design/concurrent}/concurrent_programming.md | 0 doc/{design => fluid/design/concurrent}/csp.md | 0 .../design/concurrent}/parallel_do.md | 0 doc/{design => fluid/design/data_type}/float16.md | 0 .../design/dynamic_rnn}/2_level_rnn.dot | 0 .../design/dynamic_rnn}/2_level_rnn.png | Bin .../ops/images => fluid/design/dynamic_rnn}/rnn.dot | 0 .../ops/images => fluid/design/dynamic_rnn}/rnn.jpg | Bin doc/{design/ops => fluid/design/dynamic_rnn}/rnn.md | 0 .../ops/images => fluid/design/dynamic_rnn}/rnn.png | Bin .../design/dynamic_rnn}/rnn_2level_data.dot | 0 .../design/dynamic_rnn}/rnn_2level_data.png | Bin .../fluid/design/dynamic_rnn}/rnn_design.md | 0 .../design/execution}/if_else_op.md | 0 doc/{design => fluid/design/execution}/switch.md | 0 .../design/interface}/00.why_plain_c.md | 0 .../interface}/01.inference_implementation.md | 0 {paddle/fluid => doc/fluid/design}/memory/README.md | 0 .../design/memory}/images/control_flow_graph.png | Bin .../design/memory}/images/dataflow_equations.png | Bin .../design/memory}/images/deep_learning.png | Bin .../design/memory}/memory_optimization.md | 0 doc/{design => fluid/design/modules}/backward.md | 0 .../fluid/design/modules}/batch_norm_op.md | 0 doc/{design => fluid/design/modules}/evaluator.md | 0 .../design/modules}/images/batch_norm_fork.dot | 0 .../design/modules}/images/batch_norm_fork.png | Bin .../design/modules}/images/batch_norm_op_kernel.png | Bin .../design/modules}/images/feed_forward.png | Bin .../modules}/images/feed_forward_regularized.png | Bin .../design/modules}/images/l1_regularization.png | Bin .../design/modules}/images/l2_regularization.png | Bin .../design/modules}/images/loss_equation.png | Bin .../design/modules}/infer_var_type.md | 0 .../fluid/design/modules}/net_op_design.md | 0 doc/{design => fluid/design/modules}/optimizer.md | 0 doc/{design => fluid/design/modules}/prune.md | 0 doc/{design => fluid/design/modules}/python_api.md | 0 .../design/modules}/register_grad_op.md | 0 .../design/modules}/regularization.md | 0 .../design/modules}/selected_rows.md | 0 doc/{design => fluid/design/motivation}/api.md | 0 .../design/motivation}/fluid-compiler.graffle | Bin .../design/motivation}/fluid-compiler.png | Bin doc/{design => fluid/design/motivation}/fluid.md | 0 .../design/motivation}/fluid_compiler.md | 0 .../design/motivation}/refactorization.md | 0 .../design/muti_devices}/kernel_hint_design.md | 0 .../design/muti_devices}/kernel_selection.md | 0 .../design/muti_devices}/operator_kernel_type.md | 0 .../design/network}/deep_speech_2.md | 4 ++-- .../LOD-and-shape-changes-during-decoding.jpg | Bin .../design/network/images}/beam_search.png | Bin .../design/network/images}/ds2_network.png | Bin .../design/network}/sequence_decoder.md | 0 .../design/others}/auto_gradient_check.md | 0 doc/{design => fluid/design/others}/dcgan.png | Bin doc/{design => fluid/design/others}/gan_api.md | 0 doc/{design => fluid/design/others}/graph.md | 0 doc/{design => fluid/design/others}/graph_survey.md | 0 .../others}/images/graph_construction_example.bash | 0 .../others}/images/graph_construction_example.dot | 0 .../images/graph_construction_example_all.png | Bin .../graph_construction_example_forward_backward.png | Bin .../graph_construction_example_forward_only.png | Bin .../design/others}/parameters_in_cpp.md | 0 .../design/others}/simple_op_design.md | 0 doc/{design => fluid/design/others}/test.dot | 0 doc/{design => fluid/design/others}/test.dot.png | Bin doc/{design => fluid/dev}/ci_build_whl.png | Bin .../fluid/dev}/name_convention.md | 0 .../fluid/dev}/op_markdown_format.md | 0 doc/{design => fluid/dev}/releasing_process.md | 0 doc/{design => fluid/dev}/support_new_device.md | 0 .../getstarted/concepts}/reader/README.md | 0 .../getstarted/concepts/save_model}/model_format.md | 0 .../howto/performance}/error_clip.md | 0 .../howto/performance}/images/profiler.png | Bin doc/{design => fluid/howto/performance}/profiler.md | 0 .../third_party}/images/multigpu_allreduce.graffle | Bin .../third_party}/images/multigpu_allreduce.png | Bin .../images/multigpu_before_convert.graffle | Bin .../third_party}/images/multigpu_before_convert.png | Bin .../mkl => fluid/howto/third_party}/mkldnn_fluid.md | 0 .../howto/third_party}/paddle_nccl.md | 0 doc/{ => v2}/design/cluster_train/README.md | 0 doc/{ => v2}/design/cluster_train/checkpointing.md | 0 doc/{ => v2}/design/cluster_train/data_dispatch.md | 0 .../design/cluster_train/large_model_dist_train.md | 0 doc/{ => v2}/design/cluster_train/master_server.md | 0 doc/{ => v2}/design/cluster_train/pserver_client.md | 0 .../cluster_train/remote_parameter_updater.md | 0 doc/{ => v2}/design/cluster_train/save_model.md | 0 .../design/cluster_train/src/checkpointing.png | Bin .../design/cluster_train/src/data_dispatch.png | Bin .../design/cluster_train/src/dataset.graffle | Bin doc/{ => v2}/design/cluster_train/src/dataset.png | Bin .../design/cluster_train/src/file_storage.graffle | Bin .../design/cluster_train/src/file_storage.png | Bin .../design/cluster_train/src/init_lock.graffle | Bin doc/{ => v2}/design/cluster_train/src/init_lock.png | Bin .../src/paddle-cloud-in-data-center.png | Bin .../design/cluster_train/src/paddle-etcd.graffle | Bin .../design/cluster_train/src/paddle-etcd.png | Bin .../cluster_train/src/paddle-model-sharding.graffle | Bin .../cluster_train/src/paddle-model-sharding.png | Bin .../design/cluster_train/src/paddle-ps-0.png | Bin .../design/cluster_train/src/paddle-ps-1.png | Bin .../design/cluster_train/src/paddle-ps.graffle | Bin .../cluster_train/src/paddle-task-queues.graffle | Bin .../design/cluster_train/src/paddle-task-queues.png | Bin .../cluster_train/src/paddle-task-states.graffle | Bin .../design/cluster_train/src/paddle-task-states.png | Bin .../design/cluster_train/src/pserver_init.graffle | Bin .../design/cluster_train/src/pserver_init.png | Bin .../design/cluster_train/src/submit-job.graffle | Bin .../design/cluster_train/src/submit-job.png | Bin .../design/cluster_train/src/trainer.graffle | Bin doc/{ => v2}/design/cluster_train/src/trainer.png | Bin doc/{ => v2}/design/cluster_train/submit-job.md | 0 doc/{ => v2}/design/mkl/image/engine.png | Bin doc/{ => v2}/design/mkl/image/gradients.png | Bin doc/{ => v2}/design/mkl/image/layers.png | Bin doc/{ => v2}/design/mkl/image/matrix.png | Bin doc/{ => v2}/design/mkl/image/overview.png | Bin doc/{ => v2}/design/mkl/mkl_packed.md | 0 doc/{ => v2}/design/mkl/mkldnn.md | 0 142 files changed, 2 insertions(+), 2 deletions(-) rename doc/{design => fluid/design/algorithm}/images/asgd.gif (100%) rename doc/{design => fluid/design/algorithm}/images/theta_star.gif (100%) rename doc/{design => fluid/design/algorithm}/parameter_average.md (100%) rename doc/{design/build_system => fluid/design/concepts}/README.md (100%) rename doc/{design => fluid/design/concepts}/block.md (100%) rename doc/{design => fluid/design/concepts}/cpp_data_feeding.md (100%) rename doc/{design => fluid/design/concepts}/executor.md (100%) rename doc/{design => fluid/design/concepts}/functions_operators_layers.md (100%) rename {paddle/fluid/framework => doc/fluid/design/concepts}/lod_tensor.md (100%) rename doc/{design => fluid/design/concepts}/program.md (100%) rename doc/{design => fluid/design/concepts}/scope.md (100%) rename {paddle/fluid/framework => doc/fluid/design/concepts}/tensor.md (100%) rename doc/{design => fluid/design/concepts}/tensor_array.md (100%) rename doc/{design => fluid/design/concepts}/var_desc.md (100%) rename {paddle/fluid/framework => doc/fluid/design/concepts}/variable.md (100%) rename doc/{design => fluid/design/concurrent}/concurrent_programming.md (100%) rename doc/{design => fluid/design/concurrent}/csp.md (100%) rename doc/{design => fluid/design/concurrent}/parallel_do.md (100%) rename doc/{design => fluid/design/data_type}/float16.md (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/2_level_rnn.dot (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/2_level_rnn.png (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/rnn.dot (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/rnn.jpg (100%) rename doc/{design/ops => fluid/design/dynamic_rnn}/rnn.md (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/rnn.png (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/rnn_2level_data.dot (100%) rename doc/{design/ops/images => fluid/design/dynamic_rnn}/rnn_2level_data.png (100%) rename {paddle/fluid/operators/op_documentation => doc/fluid/design/dynamic_rnn}/rnn_design.md (100%) rename doc/{design => fluid/design/execution}/if_else_op.md (100%) rename doc/{design => fluid/design/execution}/switch.md (100%) rename doc/{design/multi_language_interface => fluid/design/interface}/00.why_plain_c.md (100%) rename doc/{design/multi_language_interface => fluid/design/interface}/01.inference_implementation.md (100%) rename {paddle/fluid => doc/fluid/design}/memory/README.md (100%) rename doc/{design => fluid/design/memory}/images/control_flow_graph.png (100%) rename doc/{design => fluid/design/memory}/images/dataflow_equations.png (100%) rename doc/{design => fluid/design/memory}/images/deep_learning.png (100%) rename doc/{design => fluid/design/memory}/memory_optimization.md (100%) rename doc/{design => fluid/design/modules}/backward.md (100%) rename {paddle/fluid/operators/op_documentation => doc/fluid/design/modules}/batch_norm_op.md (100%) rename doc/{design => fluid/design/modules}/evaluator.md (100%) rename {paddle/fluid/operators => doc/fluid/design/modules}/images/batch_norm_fork.dot (100%) rename {paddle/fluid/operators => doc/fluid/design/modules}/images/batch_norm_fork.png (100%) rename {paddle/fluid/operators => doc/fluid/design/modules}/images/batch_norm_op_kernel.png (100%) rename doc/{design => fluid/design/modules}/images/feed_forward.png (100%) rename doc/{design => fluid/design/modules}/images/feed_forward_regularized.png (100%) rename doc/{design => fluid/design/modules}/images/l1_regularization.png (100%) rename doc/{design => fluid/design/modules}/images/l2_regularization.png (100%) rename doc/{design => fluid/design/modules}/images/loss_equation.png (100%) rename doc/{design => fluid/design/modules}/infer_var_type.md (100%) rename {paddle/fluid/operators/op_documentation => doc/fluid/design/modules}/net_op_design.md (100%) rename doc/{design => fluid/design/modules}/optimizer.md (100%) rename doc/{design => fluid/design/modules}/prune.md (100%) rename doc/{design => fluid/design/modules}/python_api.md (100%) rename doc/{design => fluid/design/modules}/register_grad_op.md (100%) rename doc/{design => fluid/design/modules}/regularization.md (100%) rename doc/{design => fluid/design/modules}/selected_rows.md (100%) rename doc/{design => fluid/design/motivation}/api.md (100%) rename doc/{design => fluid/design/motivation}/fluid-compiler.graffle (100%) rename doc/{design => fluid/design/motivation}/fluid-compiler.png (100%) rename doc/{design => fluid/design/motivation}/fluid.md (100%) rename doc/{design => fluid/design/motivation}/fluid_compiler.md (100%) rename doc/{design => fluid/design/motivation}/refactorization.md (100%) rename doc/{design => fluid/design/muti_devices}/kernel_hint_design.md (100%) rename doc/{design => fluid/design/muti_devices}/kernel_selection.md (100%) rename doc/{design => fluid/design/muti_devices}/operator_kernel_type.md (100%) rename doc/{design/speech => fluid/design/network}/deep_speech_2.md (98%) rename doc/{design/ops => fluid/design/network}/images/LOD-and-shape-changes-during-decoding.jpg (100%) rename doc/{design/speech/image => fluid/design/network/images}/beam_search.png (100%) rename doc/{design/speech/image => fluid/design/network/images}/ds2_network.png (100%) rename doc/{design/ops => fluid/design/network}/sequence_decoder.md (100%) rename doc/{design => fluid/design/others}/auto_gradient_check.md (100%) rename doc/{design => fluid/design/others}/dcgan.png (100%) rename doc/{design => fluid/design/others}/gan_api.md (100%) rename doc/{design => fluid/design/others}/graph.md (100%) rename doc/{design => fluid/design/others}/graph_survey.md (100%) rename doc/{design => fluid/design/others}/images/graph_construction_example.bash (100%) rename doc/{design => fluid/design/others}/images/graph_construction_example.dot (100%) rename doc/{design => fluid/design/others}/images/graph_construction_example_all.png (100%) rename doc/{design => fluid/design/others}/images/graph_construction_example_forward_backward.png (100%) rename doc/{design => fluid/design/others}/images/graph_construction_example_forward_only.png (100%) rename doc/{design => fluid/design/others}/parameters_in_cpp.md (100%) rename doc/{design => fluid/design/others}/simple_op_design.md (100%) rename doc/{design => fluid/design/others}/test.dot (100%) rename doc/{design => fluid/design/others}/test.dot.png (100%) rename doc/{design => fluid/dev}/ci_build_whl.png (100%) rename {paddle/fluid/operators/op_documentation => doc/fluid/dev}/name_convention.md (100%) rename {paddle/fluid/operators/op_documentation => doc/fluid/dev}/op_markdown_format.md (100%) rename doc/{design => fluid/dev}/releasing_process.md (100%) rename doc/{design => fluid/dev}/support_new_device.md (100%) rename doc/{design => fluid/getstarted/concepts}/reader/README.md (100%) rename doc/{design => fluid/getstarted/concepts/save_model}/model_format.md (100%) rename doc/{design => fluid/howto/performance}/error_clip.md (100%) rename doc/{design => fluid/howto/performance}/images/profiler.png (100%) rename doc/{design => fluid/howto/performance}/profiler.md (100%) rename doc/{design => fluid/howto/third_party}/images/multigpu_allreduce.graffle (100%) rename doc/{design => fluid/howto/third_party}/images/multigpu_allreduce.png (100%) rename doc/{design => fluid/howto/third_party}/images/multigpu_before_convert.graffle (100%) rename doc/{design => fluid/howto/third_party}/images/multigpu_before_convert.png (100%) rename doc/{design/mkl => fluid/howto/third_party}/mkldnn_fluid.md (100%) rename doc/{design => fluid/howto/third_party}/paddle_nccl.md (100%) rename doc/{ => v2}/design/cluster_train/README.md (100%) rename doc/{ => v2}/design/cluster_train/checkpointing.md (100%) rename doc/{ => v2}/design/cluster_train/data_dispatch.md (100%) rename doc/{ => v2}/design/cluster_train/large_model_dist_train.md (100%) rename doc/{ => v2}/design/cluster_train/master_server.md (100%) rename doc/{ => v2}/design/cluster_train/pserver_client.md (100%) rename doc/{ => v2}/design/cluster_train/remote_parameter_updater.md (100%) rename doc/{ => v2}/design/cluster_train/save_model.md (100%) rename doc/{ => v2}/design/cluster_train/src/checkpointing.png (100%) rename doc/{ => v2}/design/cluster_train/src/data_dispatch.png (100%) rename doc/{ => v2}/design/cluster_train/src/dataset.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/dataset.png (100%) rename doc/{ => v2}/design/cluster_train/src/file_storage.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/file_storage.png (100%) rename doc/{ => v2}/design/cluster_train/src/init_lock.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/init_lock.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-cloud-in-data-center.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-etcd.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-etcd.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-model-sharding.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-model-sharding.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-ps-0.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-ps-1.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-ps.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-task-queues.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-task-queues.png (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-task-states.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/paddle-task-states.png (100%) rename doc/{ => v2}/design/cluster_train/src/pserver_init.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/pserver_init.png (100%) rename doc/{ => v2}/design/cluster_train/src/submit-job.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/submit-job.png (100%) rename doc/{ => v2}/design/cluster_train/src/trainer.graffle (100%) rename doc/{ => v2}/design/cluster_train/src/trainer.png (100%) rename doc/{ => v2}/design/cluster_train/submit-job.md (100%) rename doc/{ => v2}/design/mkl/image/engine.png (100%) rename doc/{ => v2}/design/mkl/image/gradients.png (100%) rename doc/{ => v2}/design/mkl/image/layers.png (100%) rename doc/{ => v2}/design/mkl/image/matrix.png (100%) rename doc/{ => v2}/design/mkl/image/overview.png (100%) rename doc/{ => v2}/design/mkl/mkl_packed.md (100%) rename doc/{ => v2}/design/mkl/mkldnn.md (100%) diff --git a/doc/design/images/asgd.gif b/doc/fluid/design/algorithm/images/asgd.gif similarity index 100% rename from doc/design/images/asgd.gif rename to doc/fluid/design/algorithm/images/asgd.gif diff --git a/doc/design/images/theta_star.gif b/doc/fluid/design/algorithm/images/theta_star.gif similarity index 100% rename from doc/design/images/theta_star.gif rename to doc/fluid/design/algorithm/images/theta_star.gif diff --git a/doc/design/parameter_average.md b/doc/fluid/design/algorithm/parameter_average.md similarity index 100% rename from doc/design/parameter_average.md rename to doc/fluid/design/algorithm/parameter_average.md diff --git a/doc/design/build_system/README.md b/doc/fluid/design/concepts/README.md similarity index 100% rename from doc/design/build_system/README.md rename to doc/fluid/design/concepts/README.md diff --git a/doc/design/block.md b/doc/fluid/design/concepts/block.md similarity index 100% rename from doc/design/block.md rename to doc/fluid/design/concepts/block.md diff --git a/doc/design/cpp_data_feeding.md b/doc/fluid/design/concepts/cpp_data_feeding.md similarity index 100% rename from doc/design/cpp_data_feeding.md rename to doc/fluid/design/concepts/cpp_data_feeding.md diff --git a/doc/design/executor.md b/doc/fluid/design/concepts/executor.md similarity index 100% rename from doc/design/executor.md rename to doc/fluid/design/concepts/executor.md diff --git a/doc/design/functions_operators_layers.md b/doc/fluid/design/concepts/functions_operators_layers.md similarity index 100% rename from doc/design/functions_operators_layers.md rename to doc/fluid/design/concepts/functions_operators_layers.md diff --git a/paddle/fluid/framework/lod_tensor.md b/doc/fluid/design/concepts/lod_tensor.md similarity index 100% rename from paddle/fluid/framework/lod_tensor.md rename to doc/fluid/design/concepts/lod_tensor.md diff --git a/doc/design/program.md b/doc/fluid/design/concepts/program.md similarity index 100% rename from doc/design/program.md rename to doc/fluid/design/concepts/program.md diff --git a/doc/design/scope.md b/doc/fluid/design/concepts/scope.md similarity index 100% rename from doc/design/scope.md rename to doc/fluid/design/concepts/scope.md diff --git a/paddle/fluid/framework/tensor.md b/doc/fluid/design/concepts/tensor.md similarity index 100% rename from paddle/fluid/framework/tensor.md rename to doc/fluid/design/concepts/tensor.md diff --git a/doc/design/tensor_array.md b/doc/fluid/design/concepts/tensor_array.md similarity index 100% rename from doc/design/tensor_array.md rename to doc/fluid/design/concepts/tensor_array.md diff --git a/doc/design/var_desc.md b/doc/fluid/design/concepts/var_desc.md similarity index 100% rename from doc/design/var_desc.md rename to doc/fluid/design/concepts/var_desc.md diff --git a/paddle/fluid/framework/variable.md b/doc/fluid/design/concepts/variable.md similarity index 100% rename from paddle/fluid/framework/variable.md rename to doc/fluid/design/concepts/variable.md diff --git a/doc/design/concurrent_programming.md b/doc/fluid/design/concurrent/concurrent_programming.md similarity index 100% rename from doc/design/concurrent_programming.md rename to doc/fluid/design/concurrent/concurrent_programming.md diff --git a/doc/design/csp.md b/doc/fluid/design/concurrent/csp.md similarity index 100% rename from doc/design/csp.md rename to doc/fluid/design/concurrent/csp.md diff --git a/doc/design/parallel_do.md b/doc/fluid/design/concurrent/parallel_do.md similarity index 100% rename from doc/design/parallel_do.md rename to doc/fluid/design/concurrent/parallel_do.md diff --git a/doc/design/float16.md b/doc/fluid/design/data_type/float16.md similarity index 100% rename from doc/design/float16.md rename to doc/fluid/design/data_type/float16.md diff --git a/doc/design/ops/images/2_level_rnn.dot b/doc/fluid/design/dynamic_rnn/2_level_rnn.dot similarity index 100% rename from doc/design/ops/images/2_level_rnn.dot rename to doc/fluid/design/dynamic_rnn/2_level_rnn.dot diff --git a/doc/design/ops/images/2_level_rnn.png b/doc/fluid/design/dynamic_rnn/2_level_rnn.png similarity index 100% rename from doc/design/ops/images/2_level_rnn.png rename to doc/fluid/design/dynamic_rnn/2_level_rnn.png diff --git a/doc/design/ops/images/rnn.dot b/doc/fluid/design/dynamic_rnn/rnn.dot similarity index 100% rename from doc/design/ops/images/rnn.dot rename to doc/fluid/design/dynamic_rnn/rnn.dot diff --git a/doc/design/ops/images/rnn.jpg b/doc/fluid/design/dynamic_rnn/rnn.jpg similarity index 100% rename from doc/design/ops/images/rnn.jpg rename to doc/fluid/design/dynamic_rnn/rnn.jpg diff --git a/doc/design/ops/rnn.md b/doc/fluid/design/dynamic_rnn/rnn.md similarity index 100% rename from doc/design/ops/rnn.md rename to doc/fluid/design/dynamic_rnn/rnn.md diff --git a/doc/design/ops/images/rnn.png b/doc/fluid/design/dynamic_rnn/rnn.png similarity index 100% rename from doc/design/ops/images/rnn.png rename to doc/fluid/design/dynamic_rnn/rnn.png diff --git a/doc/design/ops/images/rnn_2level_data.dot b/doc/fluid/design/dynamic_rnn/rnn_2level_data.dot similarity index 100% rename from doc/design/ops/images/rnn_2level_data.dot rename to doc/fluid/design/dynamic_rnn/rnn_2level_data.dot diff --git a/doc/design/ops/images/rnn_2level_data.png b/doc/fluid/design/dynamic_rnn/rnn_2level_data.png similarity index 100% rename from doc/design/ops/images/rnn_2level_data.png rename to doc/fluid/design/dynamic_rnn/rnn_2level_data.png diff --git a/paddle/fluid/operators/op_documentation/rnn_design.md b/doc/fluid/design/dynamic_rnn/rnn_design.md similarity index 100% rename from paddle/fluid/operators/op_documentation/rnn_design.md rename to doc/fluid/design/dynamic_rnn/rnn_design.md diff --git a/doc/design/if_else_op.md b/doc/fluid/design/execution/if_else_op.md similarity index 100% rename from doc/design/if_else_op.md rename to doc/fluid/design/execution/if_else_op.md diff --git a/doc/design/switch.md b/doc/fluid/design/execution/switch.md similarity index 100% rename from doc/design/switch.md rename to doc/fluid/design/execution/switch.md diff --git a/doc/design/multi_language_interface/00.why_plain_c.md b/doc/fluid/design/interface/00.why_plain_c.md similarity index 100% rename from doc/design/multi_language_interface/00.why_plain_c.md rename to doc/fluid/design/interface/00.why_plain_c.md diff --git a/doc/design/multi_language_interface/01.inference_implementation.md b/doc/fluid/design/interface/01.inference_implementation.md similarity index 100% rename from doc/design/multi_language_interface/01.inference_implementation.md rename to doc/fluid/design/interface/01.inference_implementation.md diff --git a/paddle/fluid/memory/README.md b/doc/fluid/design/memory/README.md similarity index 100% rename from paddle/fluid/memory/README.md rename to doc/fluid/design/memory/README.md diff --git a/doc/design/images/control_flow_graph.png b/doc/fluid/design/memory/images/control_flow_graph.png similarity index 100% rename from doc/design/images/control_flow_graph.png rename to doc/fluid/design/memory/images/control_flow_graph.png diff --git a/doc/design/images/dataflow_equations.png b/doc/fluid/design/memory/images/dataflow_equations.png similarity index 100% rename from doc/design/images/dataflow_equations.png rename to doc/fluid/design/memory/images/dataflow_equations.png diff --git a/doc/design/images/deep_learning.png b/doc/fluid/design/memory/images/deep_learning.png similarity index 100% rename from doc/design/images/deep_learning.png rename to doc/fluid/design/memory/images/deep_learning.png diff --git a/doc/design/memory_optimization.md b/doc/fluid/design/memory/memory_optimization.md similarity index 100% rename from doc/design/memory_optimization.md rename to doc/fluid/design/memory/memory_optimization.md diff --git a/doc/design/backward.md b/doc/fluid/design/modules/backward.md similarity index 100% rename from doc/design/backward.md rename to doc/fluid/design/modules/backward.md diff --git a/paddle/fluid/operators/op_documentation/batch_norm_op.md b/doc/fluid/design/modules/batch_norm_op.md similarity index 100% rename from paddle/fluid/operators/op_documentation/batch_norm_op.md rename to doc/fluid/design/modules/batch_norm_op.md diff --git a/doc/design/evaluator.md b/doc/fluid/design/modules/evaluator.md similarity index 100% rename from doc/design/evaluator.md rename to doc/fluid/design/modules/evaluator.md diff --git a/paddle/fluid/operators/images/batch_norm_fork.dot b/doc/fluid/design/modules/images/batch_norm_fork.dot similarity index 100% rename from paddle/fluid/operators/images/batch_norm_fork.dot rename to doc/fluid/design/modules/images/batch_norm_fork.dot diff --git a/paddle/fluid/operators/images/batch_norm_fork.png b/doc/fluid/design/modules/images/batch_norm_fork.png similarity index 100% rename from paddle/fluid/operators/images/batch_norm_fork.png rename to doc/fluid/design/modules/images/batch_norm_fork.png diff --git a/paddle/fluid/operators/images/batch_norm_op_kernel.png b/doc/fluid/design/modules/images/batch_norm_op_kernel.png similarity index 100% rename from paddle/fluid/operators/images/batch_norm_op_kernel.png rename to doc/fluid/design/modules/images/batch_norm_op_kernel.png diff --git a/doc/design/images/feed_forward.png b/doc/fluid/design/modules/images/feed_forward.png similarity index 100% rename from doc/design/images/feed_forward.png rename to doc/fluid/design/modules/images/feed_forward.png diff --git a/doc/design/images/feed_forward_regularized.png b/doc/fluid/design/modules/images/feed_forward_regularized.png similarity index 100% rename from doc/design/images/feed_forward_regularized.png rename to doc/fluid/design/modules/images/feed_forward_regularized.png diff --git a/doc/design/images/l1_regularization.png b/doc/fluid/design/modules/images/l1_regularization.png similarity index 100% rename from doc/design/images/l1_regularization.png rename to doc/fluid/design/modules/images/l1_regularization.png diff --git a/doc/design/images/l2_regularization.png b/doc/fluid/design/modules/images/l2_regularization.png similarity index 100% rename from doc/design/images/l2_regularization.png rename to doc/fluid/design/modules/images/l2_regularization.png diff --git a/doc/design/images/loss_equation.png b/doc/fluid/design/modules/images/loss_equation.png similarity index 100% rename from doc/design/images/loss_equation.png rename to doc/fluid/design/modules/images/loss_equation.png diff --git a/doc/design/infer_var_type.md b/doc/fluid/design/modules/infer_var_type.md similarity index 100% rename from doc/design/infer_var_type.md rename to doc/fluid/design/modules/infer_var_type.md diff --git a/paddle/fluid/operators/op_documentation/net_op_design.md b/doc/fluid/design/modules/net_op_design.md similarity index 100% rename from paddle/fluid/operators/op_documentation/net_op_design.md rename to doc/fluid/design/modules/net_op_design.md diff --git a/doc/design/optimizer.md b/doc/fluid/design/modules/optimizer.md similarity index 100% rename from doc/design/optimizer.md rename to doc/fluid/design/modules/optimizer.md diff --git a/doc/design/prune.md b/doc/fluid/design/modules/prune.md similarity index 100% rename from doc/design/prune.md rename to doc/fluid/design/modules/prune.md diff --git a/doc/design/python_api.md b/doc/fluid/design/modules/python_api.md similarity index 100% rename from doc/design/python_api.md rename to doc/fluid/design/modules/python_api.md diff --git a/doc/design/register_grad_op.md b/doc/fluid/design/modules/register_grad_op.md similarity index 100% rename from doc/design/register_grad_op.md rename to doc/fluid/design/modules/register_grad_op.md diff --git a/doc/design/regularization.md b/doc/fluid/design/modules/regularization.md similarity index 100% rename from doc/design/regularization.md rename to doc/fluid/design/modules/regularization.md diff --git a/doc/design/selected_rows.md b/doc/fluid/design/modules/selected_rows.md similarity index 100% rename from doc/design/selected_rows.md rename to doc/fluid/design/modules/selected_rows.md diff --git a/doc/design/api.md b/doc/fluid/design/motivation/api.md similarity index 100% rename from doc/design/api.md rename to doc/fluid/design/motivation/api.md diff --git a/doc/design/fluid-compiler.graffle b/doc/fluid/design/motivation/fluid-compiler.graffle similarity index 100% rename from doc/design/fluid-compiler.graffle rename to doc/fluid/design/motivation/fluid-compiler.graffle diff --git a/doc/design/fluid-compiler.png b/doc/fluid/design/motivation/fluid-compiler.png similarity index 100% rename from doc/design/fluid-compiler.png rename to doc/fluid/design/motivation/fluid-compiler.png diff --git a/doc/design/fluid.md b/doc/fluid/design/motivation/fluid.md similarity index 100% rename from doc/design/fluid.md rename to doc/fluid/design/motivation/fluid.md diff --git a/doc/design/fluid_compiler.md b/doc/fluid/design/motivation/fluid_compiler.md similarity index 100% rename from doc/design/fluid_compiler.md rename to doc/fluid/design/motivation/fluid_compiler.md diff --git a/doc/design/refactorization.md b/doc/fluid/design/motivation/refactorization.md similarity index 100% rename from doc/design/refactorization.md rename to doc/fluid/design/motivation/refactorization.md diff --git a/doc/design/kernel_hint_design.md b/doc/fluid/design/muti_devices/kernel_hint_design.md similarity index 100% rename from doc/design/kernel_hint_design.md rename to doc/fluid/design/muti_devices/kernel_hint_design.md diff --git a/doc/design/kernel_selection.md b/doc/fluid/design/muti_devices/kernel_selection.md similarity index 100% rename from doc/design/kernel_selection.md rename to doc/fluid/design/muti_devices/kernel_selection.md diff --git a/doc/design/operator_kernel_type.md b/doc/fluid/design/muti_devices/operator_kernel_type.md similarity index 100% rename from doc/design/operator_kernel_type.md rename to doc/fluid/design/muti_devices/operator_kernel_type.md diff --git a/doc/design/speech/deep_speech_2.md b/doc/fluid/design/network/deep_speech_2.md similarity index 98% rename from doc/design/speech/deep_speech_2.md rename to doc/fluid/design/network/deep_speech_2.md index cfdc4d6df0..af0c6ef36f 100644 --- a/doc/design/speech/deep_speech_2.md +++ b/doc/fluid/design/network/deep_speech_2.md @@ -94,7 +94,7 @@ The classical DS2 network contains 15 layers (from bottom to top): - **One** CTC-loss layer

@@ -141,7 +141,7 @@ TODO by Assignees ### Beam Search with CTC and LM
-
+
Figure 2. Algorithm for CTC Beam Search Decoder.
diff --git a/doc/design/ops/images/LOD-and-shape-changes-during-decoding.jpg b/doc/fluid/design/network/images/LOD-and-shape-changes-during-decoding.jpg similarity index 100% rename from doc/design/ops/images/LOD-and-shape-changes-during-decoding.jpg rename to doc/fluid/design/network/images/LOD-and-shape-changes-during-decoding.jpg diff --git a/doc/design/speech/image/beam_search.png b/doc/fluid/design/network/images/beam_search.png similarity index 100% rename from doc/design/speech/image/beam_search.png rename to doc/fluid/design/network/images/beam_search.png diff --git a/doc/design/speech/image/ds2_network.png b/doc/fluid/design/network/images/ds2_network.png similarity index 100% rename from doc/design/speech/image/ds2_network.png rename to doc/fluid/design/network/images/ds2_network.png diff --git a/doc/design/ops/sequence_decoder.md b/doc/fluid/design/network/sequence_decoder.md similarity index 100% rename from doc/design/ops/sequence_decoder.md rename to doc/fluid/design/network/sequence_decoder.md diff --git a/doc/design/auto_gradient_check.md b/doc/fluid/design/others/auto_gradient_check.md similarity index 100% rename from doc/design/auto_gradient_check.md rename to doc/fluid/design/others/auto_gradient_check.md diff --git a/doc/design/dcgan.png b/doc/fluid/design/others/dcgan.png similarity index 100% rename from doc/design/dcgan.png rename to doc/fluid/design/others/dcgan.png diff --git a/doc/design/gan_api.md b/doc/fluid/design/others/gan_api.md similarity index 100% rename from doc/design/gan_api.md rename to doc/fluid/design/others/gan_api.md diff --git a/doc/design/graph.md b/doc/fluid/design/others/graph.md similarity index 100% rename from doc/design/graph.md rename to doc/fluid/design/others/graph.md diff --git a/doc/design/graph_survey.md b/doc/fluid/design/others/graph_survey.md similarity index 100% rename from doc/design/graph_survey.md rename to doc/fluid/design/others/graph_survey.md diff --git a/doc/design/images/graph_construction_example.bash b/doc/fluid/design/others/images/graph_construction_example.bash similarity index 100% rename from doc/design/images/graph_construction_example.bash rename to doc/fluid/design/others/images/graph_construction_example.bash diff --git a/doc/design/images/graph_construction_example.dot b/doc/fluid/design/others/images/graph_construction_example.dot similarity index 100% rename from doc/design/images/graph_construction_example.dot rename to doc/fluid/design/others/images/graph_construction_example.dot diff --git a/doc/design/images/graph_construction_example_all.png b/doc/fluid/design/others/images/graph_construction_example_all.png similarity index 100% rename from doc/design/images/graph_construction_example_all.png rename to doc/fluid/design/others/images/graph_construction_example_all.png diff --git a/doc/design/images/graph_construction_example_forward_backward.png b/doc/fluid/design/others/images/graph_construction_example_forward_backward.png similarity index 100% rename from doc/design/images/graph_construction_example_forward_backward.png rename to doc/fluid/design/others/images/graph_construction_example_forward_backward.png diff --git a/doc/design/images/graph_construction_example_forward_only.png b/doc/fluid/design/others/images/graph_construction_example_forward_only.png similarity index 100% rename from doc/design/images/graph_construction_example_forward_only.png rename to doc/fluid/design/others/images/graph_construction_example_forward_only.png diff --git a/doc/design/parameters_in_cpp.md b/doc/fluid/design/others/parameters_in_cpp.md similarity index 100% rename from doc/design/parameters_in_cpp.md rename to doc/fluid/design/others/parameters_in_cpp.md diff --git a/doc/design/simple_op_design.md b/doc/fluid/design/others/simple_op_design.md similarity index 100% rename from doc/design/simple_op_design.md rename to doc/fluid/design/others/simple_op_design.md diff --git a/doc/design/test.dot b/doc/fluid/design/others/test.dot similarity index 100% rename from doc/design/test.dot rename to doc/fluid/design/others/test.dot diff --git a/doc/design/test.dot.png b/doc/fluid/design/others/test.dot.png similarity index 100% rename from doc/design/test.dot.png rename to doc/fluid/design/others/test.dot.png diff --git a/doc/design/ci_build_whl.png b/doc/fluid/dev/ci_build_whl.png similarity index 100% rename from doc/design/ci_build_whl.png rename to doc/fluid/dev/ci_build_whl.png diff --git a/paddle/fluid/operators/op_documentation/name_convention.md b/doc/fluid/dev/name_convention.md similarity index 100% rename from paddle/fluid/operators/op_documentation/name_convention.md rename to doc/fluid/dev/name_convention.md diff --git a/paddle/fluid/operators/op_documentation/op_markdown_format.md b/doc/fluid/dev/op_markdown_format.md similarity index 100% rename from paddle/fluid/operators/op_documentation/op_markdown_format.md rename to doc/fluid/dev/op_markdown_format.md diff --git a/doc/design/releasing_process.md b/doc/fluid/dev/releasing_process.md similarity index 100% rename from doc/design/releasing_process.md rename to doc/fluid/dev/releasing_process.md diff --git a/doc/design/support_new_device.md b/doc/fluid/dev/support_new_device.md similarity index 100% rename from doc/design/support_new_device.md rename to doc/fluid/dev/support_new_device.md diff --git a/doc/design/reader/README.md b/doc/fluid/getstarted/concepts/reader/README.md similarity index 100% rename from doc/design/reader/README.md rename to doc/fluid/getstarted/concepts/reader/README.md diff --git a/doc/design/model_format.md b/doc/fluid/getstarted/concepts/save_model/model_format.md similarity index 100% rename from doc/design/model_format.md rename to doc/fluid/getstarted/concepts/save_model/model_format.md diff --git a/doc/design/error_clip.md b/doc/fluid/howto/performance/error_clip.md similarity index 100% rename from doc/design/error_clip.md rename to doc/fluid/howto/performance/error_clip.md diff --git a/doc/design/images/profiler.png b/doc/fluid/howto/performance/images/profiler.png similarity index 100% rename from doc/design/images/profiler.png rename to doc/fluid/howto/performance/images/profiler.png diff --git a/doc/design/profiler.md b/doc/fluid/howto/performance/profiler.md similarity index 100% rename from doc/design/profiler.md rename to doc/fluid/howto/performance/profiler.md diff --git a/doc/design/images/multigpu_allreduce.graffle b/doc/fluid/howto/third_party/images/multigpu_allreduce.graffle similarity index 100% rename from doc/design/images/multigpu_allreduce.graffle rename to doc/fluid/howto/third_party/images/multigpu_allreduce.graffle diff --git a/doc/design/images/multigpu_allreduce.png b/doc/fluid/howto/third_party/images/multigpu_allreduce.png similarity index 100% rename from doc/design/images/multigpu_allreduce.png rename to doc/fluid/howto/third_party/images/multigpu_allreduce.png diff --git a/doc/design/images/multigpu_before_convert.graffle b/doc/fluid/howto/third_party/images/multigpu_before_convert.graffle similarity index 100% rename from doc/design/images/multigpu_before_convert.graffle rename to doc/fluid/howto/third_party/images/multigpu_before_convert.graffle diff --git a/doc/design/images/multigpu_before_convert.png b/doc/fluid/howto/third_party/images/multigpu_before_convert.png similarity index 100% rename from doc/design/images/multigpu_before_convert.png rename to doc/fluid/howto/third_party/images/multigpu_before_convert.png diff --git a/doc/design/mkl/mkldnn_fluid.md b/doc/fluid/howto/third_party/mkldnn_fluid.md similarity index 100% rename from doc/design/mkl/mkldnn_fluid.md rename to doc/fluid/howto/third_party/mkldnn_fluid.md diff --git a/doc/design/paddle_nccl.md b/doc/fluid/howto/third_party/paddle_nccl.md similarity index 100% rename from doc/design/paddle_nccl.md rename to doc/fluid/howto/third_party/paddle_nccl.md diff --git a/doc/design/cluster_train/README.md b/doc/v2/design/cluster_train/README.md similarity index 100% rename from doc/design/cluster_train/README.md rename to doc/v2/design/cluster_train/README.md diff --git a/doc/design/cluster_train/checkpointing.md b/doc/v2/design/cluster_train/checkpointing.md similarity index 100% rename from doc/design/cluster_train/checkpointing.md rename to doc/v2/design/cluster_train/checkpointing.md diff --git a/doc/design/cluster_train/data_dispatch.md b/doc/v2/design/cluster_train/data_dispatch.md similarity index 100% rename from doc/design/cluster_train/data_dispatch.md rename to doc/v2/design/cluster_train/data_dispatch.md diff --git a/doc/design/cluster_train/large_model_dist_train.md b/doc/v2/design/cluster_train/large_model_dist_train.md similarity index 100% rename from doc/design/cluster_train/large_model_dist_train.md rename to doc/v2/design/cluster_train/large_model_dist_train.md diff --git a/doc/design/cluster_train/master_server.md b/doc/v2/design/cluster_train/master_server.md similarity index 100% rename from doc/design/cluster_train/master_server.md rename to doc/v2/design/cluster_train/master_server.md diff --git a/doc/design/cluster_train/pserver_client.md b/doc/v2/design/cluster_train/pserver_client.md similarity index 100% rename from doc/design/cluster_train/pserver_client.md rename to doc/v2/design/cluster_train/pserver_client.md diff --git a/doc/design/cluster_train/remote_parameter_updater.md b/doc/v2/design/cluster_train/remote_parameter_updater.md similarity index 100% rename from doc/design/cluster_train/remote_parameter_updater.md rename to doc/v2/design/cluster_train/remote_parameter_updater.md diff --git a/doc/design/cluster_train/save_model.md b/doc/v2/design/cluster_train/save_model.md similarity index 100% rename from doc/design/cluster_train/save_model.md rename to doc/v2/design/cluster_train/save_model.md diff --git a/doc/design/cluster_train/src/checkpointing.png b/doc/v2/design/cluster_train/src/checkpointing.png similarity index 100% rename from doc/design/cluster_train/src/checkpointing.png rename to doc/v2/design/cluster_train/src/checkpointing.png diff --git a/doc/design/cluster_train/src/data_dispatch.png b/doc/v2/design/cluster_train/src/data_dispatch.png similarity index 100% rename from doc/design/cluster_train/src/data_dispatch.png rename to doc/v2/design/cluster_train/src/data_dispatch.png diff --git a/doc/design/cluster_train/src/dataset.graffle b/doc/v2/design/cluster_train/src/dataset.graffle similarity index 100% rename from doc/design/cluster_train/src/dataset.graffle rename to doc/v2/design/cluster_train/src/dataset.graffle diff --git a/doc/design/cluster_train/src/dataset.png b/doc/v2/design/cluster_train/src/dataset.png similarity index 100% rename from doc/design/cluster_train/src/dataset.png rename to doc/v2/design/cluster_train/src/dataset.png diff --git a/doc/design/cluster_train/src/file_storage.graffle b/doc/v2/design/cluster_train/src/file_storage.graffle similarity index 100% rename from doc/design/cluster_train/src/file_storage.graffle rename to doc/v2/design/cluster_train/src/file_storage.graffle diff --git a/doc/design/cluster_train/src/file_storage.png b/doc/v2/design/cluster_train/src/file_storage.png similarity index 100% rename from doc/design/cluster_train/src/file_storage.png rename to doc/v2/design/cluster_train/src/file_storage.png diff --git a/doc/design/cluster_train/src/init_lock.graffle b/doc/v2/design/cluster_train/src/init_lock.graffle similarity index 100% rename from doc/design/cluster_train/src/init_lock.graffle rename to doc/v2/design/cluster_train/src/init_lock.graffle diff --git a/doc/design/cluster_train/src/init_lock.png b/doc/v2/design/cluster_train/src/init_lock.png similarity index 100% rename from doc/design/cluster_train/src/init_lock.png rename to doc/v2/design/cluster_train/src/init_lock.png diff --git a/doc/design/cluster_train/src/paddle-cloud-in-data-center.png b/doc/v2/design/cluster_train/src/paddle-cloud-in-data-center.png similarity index 100% rename from doc/design/cluster_train/src/paddle-cloud-in-data-center.png rename to doc/v2/design/cluster_train/src/paddle-cloud-in-data-center.png diff --git a/doc/design/cluster_train/src/paddle-etcd.graffle b/doc/v2/design/cluster_train/src/paddle-etcd.graffle similarity index 100% rename from doc/design/cluster_train/src/paddle-etcd.graffle rename to doc/v2/design/cluster_train/src/paddle-etcd.graffle diff --git a/doc/design/cluster_train/src/paddle-etcd.png b/doc/v2/design/cluster_train/src/paddle-etcd.png similarity index 100% rename from doc/design/cluster_train/src/paddle-etcd.png rename to doc/v2/design/cluster_train/src/paddle-etcd.png diff --git a/doc/design/cluster_train/src/paddle-model-sharding.graffle b/doc/v2/design/cluster_train/src/paddle-model-sharding.graffle similarity index 100% rename from doc/design/cluster_train/src/paddle-model-sharding.graffle rename to doc/v2/design/cluster_train/src/paddle-model-sharding.graffle diff --git a/doc/design/cluster_train/src/paddle-model-sharding.png b/doc/v2/design/cluster_train/src/paddle-model-sharding.png similarity index 100% rename from doc/design/cluster_train/src/paddle-model-sharding.png rename to doc/v2/design/cluster_train/src/paddle-model-sharding.png diff --git a/doc/design/cluster_train/src/paddle-ps-0.png b/doc/v2/design/cluster_train/src/paddle-ps-0.png similarity index 100% rename from doc/design/cluster_train/src/paddle-ps-0.png rename to doc/v2/design/cluster_train/src/paddle-ps-0.png diff --git a/doc/design/cluster_train/src/paddle-ps-1.png b/doc/v2/design/cluster_train/src/paddle-ps-1.png similarity index 100% rename from doc/design/cluster_train/src/paddle-ps-1.png rename to doc/v2/design/cluster_train/src/paddle-ps-1.png diff --git a/doc/design/cluster_train/src/paddle-ps.graffle b/doc/v2/design/cluster_train/src/paddle-ps.graffle similarity index 100% rename from doc/design/cluster_train/src/paddle-ps.graffle rename to doc/v2/design/cluster_train/src/paddle-ps.graffle diff --git a/doc/design/cluster_train/src/paddle-task-queues.graffle b/doc/v2/design/cluster_train/src/paddle-task-queues.graffle similarity index 100% rename from doc/design/cluster_train/src/paddle-task-queues.graffle rename to doc/v2/design/cluster_train/src/paddle-task-queues.graffle diff --git a/doc/design/cluster_train/src/paddle-task-queues.png b/doc/v2/design/cluster_train/src/paddle-task-queues.png similarity index 100% rename from doc/design/cluster_train/src/paddle-task-queues.png rename to doc/v2/design/cluster_train/src/paddle-task-queues.png diff --git a/doc/design/cluster_train/src/paddle-task-states.graffle b/doc/v2/design/cluster_train/src/paddle-task-states.graffle similarity index 100% rename from doc/design/cluster_train/src/paddle-task-states.graffle rename to doc/v2/design/cluster_train/src/paddle-task-states.graffle diff --git a/doc/design/cluster_train/src/paddle-task-states.png b/doc/v2/design/cluster_train/src/paddle-task-states.png similarity index 100% rename from doc/design/cluster_train/src/paddle-task-states.png rename to doc/v2/design/cluster_train/src/paddle-task-states.png diff --git a/doc/design/cluster_train/src/pserver_init.graffle b/doc/v2/design/cluster_train/src/pserver_init.graffle similarity index 100% rename from doc/design/cluster_train/src/pserver_init.graffle rename to doc/v2/design/cluster_train/src/pserver_init.graffle diff --git a/doc/design/cluster_train/src/pserver_init.png b/doc/v2/design/cluster_train/src/pserver_init.png similarity index 100% rename from doc/design/cluster_train/src/pserver_init.png rename to doc/v2/design/cluster_train/src/pserver_init.png diff --git a/doc/design/cluster_train/src/submit-job.graffle b/doc/v2/design/cluster_train/src/submit-job.graffle similarity index 100% rename from doc/design/cluster_train/src/submit-job.graffle rename to doc/v2/design/cluster_train/src/submit-job.graffle diff --git a/doc/design/cluster_train/src/submit-job.png b/doc/v2/design/cluster_train/src/submit-job.png similarity index 100% rename from doc/design/cluster_train/src/submit-job.png rename to doc/v2/design/cluster_train/src/submit-job.png diff --git a/doc/design/cluster_train/src/trainer.graffle b/doc/v2/design/cluster_train/src/trainer.graffle similarity index 100% rename from doc/design/cluster_train/src/trainer.graffle rename to doc/v2/design/cluster_train/src/trainer.graffle diff --git a/doc/design/cluster_train/src/trainer.png b/doc/v2/design/cluster_train/src/trainer.png similarity index 100% rename from doc/design/cluster_train/src/trainer.png rename to doc/v2/design/cluster_train/src/trainer.png diff --git a/doc/design/cluster_train/submit-job.md b/doc/v2/design/cluster_train/submit-job.md similarity index 100% rename from doc/design/cluster_train/submit-job.md rename to doc/v2/design/cluster_train/submit-job.md diff --git a/doc/design/mkl/image/engine.png b/doc/v2/design/mkl/image/engine.png similarity index 100% rename from doc/design/mkl/image/engine.png rename to doc/v2/design/mkl/image/engine.png diff --git a/doc/design/mkl/image/gradients.png b/doc/v2/design/mkl/image/gradients.png similarity index 100% rename from doc/design/mkl/image/gradients.png rename to doc/v2/design/mkl/image/gradients.png diff --git a/doc/design/mkl/image/layers.png b/doc/v2/design/mkl/image/layers.png similarity index 100% rename from doc/design/mkl/image/layers.png rename to doc/v2/design/mkl/image/layers.png diff --git a/doc/design/mkl/image/matrix.png b/doc/v2/design/mkl/image/matrix.png similarity index 100% rename from doc/design/mkl/image/matrix.png rename to doc/v2/design/mkl/image/matrix.png diff --git a/doc/design/mkl/image/overview.png b/doc/v2/design/mkl/image/overview.png similarity index 100% rename from doc/design/mkl/image/overview.png rename to doc/v2/design/mkl/image/overview.png diff --git a/doc/design/mkl/mkl_packed.md b/doc/v2/design/mkl/mkl_packed.md similarity index 100% rename from doc/design/mkl/mkl_packed.md rename to doc/v2/design/mkl/mkl_packed.md diff --git a/doc/design/mkl/mkldnn.md b/doc/v2/design/mkl/mkldnn.md similarity index 100% rename from doc/design/mkl/mkldnn.md rename to doc/v2/design/mkl/mkldnn.md From 1cd700d8e8c8aee9b64de6ca73f5a7b7190466e7 Mon Sep 17 00:00:00 2001 From: qingqing01 Date: Thu, 15 Mar 2018 20:45:07 +0800 Subject: [PATCH 45/75] Fix bug in LRN operator. (#9124) --- paddle/fluid/operators/lrn_op.cc | 4 ++-- python/paddle/fluid/tests/unittests/test_lrn_op.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/operators/lrn_op.cc b/paddle/fluid/operators/lrn_op.cc index b0c213d637..692e85dcff 100644 --- a/paddle/fluid/operators/lrn_op.cc +++ b/paddle/fluid/operators/lrn_op.cc @@ -36,7 +36,7 @@ struct LRNFunctor { auto e_x = framework::EigenTensor::From(input); for (int m = 0; m < N; m++) { for (int i = 0; i < C; i++) { - for (int c = start; c <= end; c++) { + for (int c = start; c < end; c++) { int ch = i + c; if (ch >= 0 && ch < C) { auto s = e_mid.slice(Eigen::array({{m, i, 0, 0}}), @@ -92,7 +92,7 @@ struct LRNGradFunctor { Eigen::array({{1, 1, H, W}})); i_x_g = i_mid.pow(-beta) * i_out_g; - for (int c = start; c <= end; c++) { + for (int c = start; c < end; c++) { int ch = i + c; if (ch < 0 || ch >= C) { continue; diff --git a/python/paddle/fluid/tests/unittests/test_lrn_op.py b/python/paddle/fluid/tests/unittests/test_lrn_op.py index 7f2352c588..eaff45cbb2 100644 --- a/python/paddle/fluid/tests/unittests/test_lrn_op.py +++ b/python/paddle/fluid/tests/unittests/test_lrn_op.py @@ -41,7 +41,7 @@ class TestLRNOp(OpTest): mid.fill(self.k) for m in range(0, self.N): for i in range(0, self.C): - for c in range(start, end + 1): + for c in range(start, end): ch = i + c if ch < 0 or ch >= self.C: continue From 8a3d7647d23aae9a41df0d41d5f9990bae116557 Mon Sep 17 00:00:00 2001 From: Luo Tao Date: Thu, 15 Mar 2018 21:43:33 +0800 Subject: [PATCH 46/75] fix AttributeError: 'module' object has no attribute 'framework_pb2' --- python/paddle/fluid/layers/layer_function_generator.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/python/paddle/fluid/layers/layer_function_generator.py b/python/paddle/fluid/layers/layer_function_generator.py index bd79022a0c..35b01a7991 100644 --- a/python/paddle/fluid/layers/layer_function_generator.py +++ b/python/paddle/fluid/layers/layer_function_generator.py @@ -16,10 +16,7 @@ import cStringIO import functools import warnings -from .. import proto - -framework_pb2 = proto.framework_pb2 - +from ..proto import framework_pb2 from ..framework import OpProtoHolder, Variable from ..layer_helper import LayerHelper From e382e42ac68f5146d335fa94f5933d550f817a1d Mon Sep 17 00:00:00 2001 From: Darcy Date: Thu, 15 Mar 2018 13:56:57 -0700 Subject: [PATCH 47/75] update en doc for Distributed Training (#9130) * update en doc for Distributed Training * typo fix --- doc/v2/howto/cluster/index_en.rst | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/v2/howto/cluster/index_en.rst b/doc/v2/howto/cluster/index_en.rst index 2640a09dcc..c965d30d54 100644 --- a/doc/v2/howto/cluster/index_en.rst +++ b/doc/v2/howto/cluster/index_en.rst @@ -1,8 +1,7 @@ Distributed Training ==================== -In this section, we'll explain how to run distributed training jobs with PaddlePaddle on different types of clusters. The diagram below shows the main architecture of a distributed trainning job: - +The effectiveness of the deep learning model is often directly related to the scale of the data: it can generally achieve better results after increasing the size of the dataset on the same model. However, it can not fit in one single computer when the amount of data increases to a certain extent. At this point, using multiple computers for distributed training is a natural solution. In distributed training, the training data is divided into multiple copies (sharding), and multiple machines participating in the training read their own data for training and collaboratively update the parameters of the overall model. .. image:: src/ps_en.png :width: 500 @@ -10,13 +9,27 @@ In this section, we'll explain how to run distributed training jobs with PaddleP - Trainer: each trainer reads the data shard, and train the neural network. Then the trainer will upload calculated "gradients" to parameter servers, and wait for parameters to be optimized on the parameter server side. When that finishes, the trainer download optimized parameters and continues its training. - Parameter server: every parameter server stores part of the whole neural network model data. They will do optimization calculations when gradients are uploaded from trainers, and then send updated parameters to trainers. -PaddlePaddle can support both synchronize stochastic gradient descent (SGD) and asynchronous SGD. +The training of synchronous random gradient descent for neural network can be achieved by cooperation of trainers and parameter servers. + +PaddlePaddle supports both synchronize stochastic gradient descent (SGD) and asynchronous SGD. -When training with synchronize SGD, PaddlePaddle uses an internal "synchronize barrier" which makes gradients update and parameter download in strict order. On the other hand, asynchronous SGD won't wait for all trainers to finish upload at a single step, this will increase the parallelism of distributed training: parameter servers do not depend on each other, they'll do parameter optimization concurrently. Parameter servers will not wait for trainers, so trainers will also do their work concurrently. But asynchronous SGD will introduce more randomness and noises in the gradient. +Before starting the cluster training, you need to prepare the cluster configuration, PaddlePaddle installation, and other preparations. To understand how to configure the basic environment for distributed training, check the link below: .. toctree:: :maxdepth: 1 preparations_en.md + +Cluster training has a large number of configurable parameters, such as the number of machines used, communication ports, etc. To learn how to configure the distributed training process by setting startup these parameters, check the link below: + +.. toctree:: + :maxdepth: 1 + cmd_argument_en.md + +PaddlePaddle is compatible with a variety of different clusters. Each cluster has its own advantages, To learn how to run PaddlePaddle in different types of them, check the link below: + +.. toctree:: + :maxdepth: 1 + multi_cluster/index_en.rst From d20c6eb6de9bbce1de800156217a1f459bea8990 Mon Sep 17 00:00:00 2001 From: Xi Chen Date: Thu, 15 Mar 2018 14:10:09 -0700 Subject: [PATCH 48/75] add math_function to selected_rows_functor dependency list --- paddle/fluid/operators/math/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/operators/math/CMakeLists.txt b/paddle/fluid/operators/math/CMakeLists.txt index a181d80226..fba1612d10 100644 --- a/paddle/fluid/operators/math/CMakeLists.txt +++ b/paddle/fluid/operators/math/CMakeLists.txt @@ -38,7 +38,7 @@ math_library(lstm_compute DEPS activation_functions) math_library(math_function DEPS cblas) math_library(maxouting) math_library(pooling) -math_library(selected_rows_functor DEPS selected_rows) +math_library(selected_rows_functor DEPS selected_rows math_function) math_library(sequence2batch) math_library(sequence_padding) math_library(sequence_pooling DEPS math_function) From e4de5dc3473f3a319ad6dabb2c665550c69e4434 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Thu, 15 Mar 2018 14:54:28 -0700 Subject: [PATCH 49/75] add conv2d fp16 support --- paddle/fluid/operators/conv_cudnn_op.cu.cc | 16 ++++--- paddle/fluid/operators/conv_op.cc | 17 +++++-- paddle/fluid/platform/cudnn_helper.h | 16 +++++++ .../paddle/fluid/tests/unittests/op_test.py | 25 +++++++++++ .../fluid/tests/unittests/test_conv2d_op.py | 44 ++++++++++++++++--- 5 files changed, 104 insertions(+), 14 deletions(-) diff --git a/paddle/fluid/operators/conv_cudnn_op.cu.cc b/paddle/fluid/operators/conv_cudnn_op.cu.cc index ff0fbf21f8..aec0aba6f7 100644 --- a/paddle/fluid/operators/conv_cudnn_op.cu.cc +++ b/paddle/fluid/operators/conv_cudnn_op.cu.cc @@ -18,6 +18,7 @@ limitations under the License. */ #include "paddle/fluid/operators/conv_op.h" #include "paddle/fluid/platform/assert.h" #include "paddle/fluid/platform/cudnn_helper.h" +#include "paddle/fluid/platform/float16.h" namespace paddle { namespace operators { @@ -133,7 +134,8 @@ class CUDNNConvOpKernel : public framework::OpKernel { platform::CUDAPlace gpu = boost::get(ctx.GetPlace()); cudnn_workspace = paddle::memory::Alloc(gpu, workspace_size_in_bytes); // ------------------- cudnn conv forward --------------------- - T alpha = 1.0f, beta = 0.0f; + T alpha = static_cast(1.0f); + T beta = static_cast(0.0f); for (int i = 0; i < groups; i++) { PADDLE_ENFORCE(platform::dynload::cudnnConvolutionForward( handle, &alpha, cudnn_input_desc, input_data + i * group_offset_in, @@ -315,16 +317,18 @@ class CUDNNConvGradOpKernel : public framework::OpKernel { } // namespace operators } // namespace paddle -REGISTER_OP_KERNEL(conv2d, CUDNN, ::paddle::platform::CUDAPlace, +namespace plat = paddle::platform; +REGISTER_OP_KERNEL(conv2d, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvOpKernel, - paddle::operators::CUDNNConvOpKernel); -REGISTER_OP_KERNEL(conv2d_grad, CUDNN, ::paddle::platform::CUDAPlace, + paddle::operators::CUDNNConvOpKernel, + paddle::operators::CUDNNConvOpKernel < plat::float16); +REGISTER_OP_KERNEL(conv2d_grad, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvGradOpKernel, paddle::operators::CUDNNConvGradOpKernel); -REGISTER_OP_KERNEL(conv3d, CUDNN, ::paddle::platform::CUDAPlace, +REGISTER_OP_KERNEL(conv3d, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvOpKernel, paddle::operators::CUDNNConvOpKernel); -REGISTER_OP_KERNEL(conv3d_grad, CUDNN, ::paddle::platform::CUDAPlace, +REGISTER_OP_KERNEL(conv3d_grad, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvGradOpKernel, paddle::operators::CUDNNConvGradOpKernel); diff --git a/paddle/fluid/operators/conv_op.cc b/paddle/fluid/operators/conv_op.cc index 4b02b80d77..e3fc21c90f 100644 --- a/paddle/fluid/operators/conv_op.cc +++ b/paddle/fluid/operators/conv_op.cc @@ -83,12 +83,23 @@ framework::OpKernelType ConvOp::GetExpectedKernelType( } #endif + auto input_data_type = + framework::ToDataType(ctx.Input("Input")->type()); + auto filter_data_type = + framework::ToDataType(ctx.Input("Filter")->type()); + PADDLE_ENFORCE_EQ(input_data_type, filter_data_type, + "input and filter data type should be consistent"); + + if (input_data_type == framework::proto::VarType::FP16) { + PADDLE_ENFORCE_EQ(library_, framework::LibraryType::kCUDNN, + "float16 can only be used when CUDNN is used"); + } + std::string data_format = ctx.Attr("data_format"); // TODO(pzelazko-intel): enable MKLDNN layout when it's ready framework::DataLayout layout_ = framework::StringToDataLayout(data_format); - return framework::OpKernelType( - framework::ToDataType(ctx.Input("Input")->type()), ctx.GetPlace(), - layout_, library_); + return framework::OpKernelType(input_data_type, ctx.GetPlace(), layout_, + library_); } Conv2DOpMaker::Conv2DOpMaker(OpProto* proto, OpAttrChecker* op_checker) diff --git a/paddle/fluid/platform/cudnn_helper.h b/paddle/fluid/platform/cudnn_helper.h index 9a2ac3ff33..510a1707ba 100644 --- a/paddle/fluid/platform/cudnn_helper.h +++ b/paddle/fluid/platform/cudnn_helper.h @@ -19,6 +19,7 @@ limitations under the License. */ #include "paddle/fluid/framework/operator.h" #include "paddle/fluid/platform/dynload/cudnn.h" #include "paddle/fluid/platform/enforce.h" +#include "paddle/fluid/platform/float16.h" #include "paddle/fluid/platform/macros.h" namespace paddle { @@ -80,6 +81,21 @@ enum class PoolingMode { template class CudnnDataType; +template <> +class CudnnDataType { + public: + static const cudnnDataType_t type = CUDNN_DATA_HALF; + typedef const float16 ScalingParamType; + static ScalingParamType* kOne() { + static ScalingParamType v = static_cast(1.0); + return &v; + } + static ScalingParamType* kZero() { + static ScalingParamType v = static_cast(0.0); + return &v; + } +}; + template <> class CudnnDataType { public: diff --git a/python/paddle/fluid/tests/unittests/op_test.py b/python/paddle/fluid/tests/unittests/op_test.py index f7e02595ec..6d4684b024 100644 --- a/python/paddle/fluid/tests/unittests/op_test.py +++ b/python/paddle/fluid/tests/unittests/op_test.py @@ -469,6 +469,31 @@ class OpTest(unittest.TestCase): tensor.set_lod(lod) return tensor + @staticmethod + def create_view(input): + """Create a view of the input numpy array + + numpy float16 is binded to paddle::platform::float16 + in tensor_py.h via the help of numpy uint16 because + the internal memory representation of float16 is + uint16_t in paddle or np.uint16 in numpy, which are + themselves binded together. + + Args: + input: input numpy array + + Returns: + input_view: if the dtype of input is np.float16, input_view + will reinterpret input as with dtype np.uint16. + Otherwise, input_view will be input itself. + """ + if input.dtype == np.float16: + # view will only reinterpret memory without copying + input_view = input.view(np.uint16) + else: + input_view = input + return input_view + def _get_gradient(self, input_to_check, place, output_names, no_grad_set): prog = Program() block = prog.global_block() diff --git a/python/paddle/fluid/tests/unittests/test_conv2d_op.py b/python/paddle/fluid/tests/unittests/test_conv2d_op.py index a49fecf095..a16b6c8e92 100644 --- a/python/paddle/fluid/tests/unittests/test_conv2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_conv2d_op.py @@ -68,6 +68,7 @@ class TestConv2dOp(OpTest): self.init_op_type() self.init_group() self.init_dilation() + self.init_data_type() self.init_test_case() conv2d_param = { @@ -75,12 +76,22 @@ class TestConv2dOp(OpTest): 'pad': self.pad, 'dilation': self.dilations } - input = np.random.random(self.input_size).astype("float32") - filter = np.random.random(self.filter_size).astype("float32") - output = conv2d_forward_naive(input, filter, self.groups, - conv2d_param).astype('float32') - self.inputs = {'Input': input, 'Filter': filter} + input = np.random.random(self.input_size).astype(self.dtype) + filter = np.random.random(self.filter_size).astype(self.dtype) + output = conv2d_forward_naive(self.input, self.filter, self.groups, + conv2d_param).astype(self.dtype) + + # numpy float16 is binded to paddle::platform::float16 + # in tensor_py.h via the help of numpy uint16 because + # the internal memory representation of float16 is + # uint16_t in paddle or np.uint16 in numpy, which are + # themselves binded together. + self.inputs = { + 'Input': input.view(np.uint16) + if self.dtype == np.float16 else input, + 'Filter': create_view(filter) + } self.attrs = { 'strides': self.stride, 'paddings': self.pad, @@ -148,6 +159,9 @@ class TestConv2dOp(OpTest): f_c = self.input_size[1] / self.groups self.filter_size = [6, f_c, 3, 3] + def init_data_type(self): + self.dtype = np.float32 + def init_dilation(self): self.dilations = [1, 1] @@ -232,6 +246,26 @@ class TestCUDNN(TestConv2dOp): self.op_type = "conv2d" +class TestFP16CUDNN(TestCUDNN): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-1) + + def test_check_grad(self): + pass + + def test_check_grad_no_filter(self): + pass + + def test_check_grad_no_input(self): + pass + + class TestCUDNNWithPad(TestWithPad): def init_op_type(self): self.use_cudnn = True From 26a92083941770cd6f380eef2de040f85779afbc Mon Sep 17 00:00:00 2001 From: Varun Arora Date: Thu, 15 Mar 2018 15:14:12 -0700 Subject: [PATCH 50/75] New PingPong test for testing channels / concurrency (#9132) * New test for testing channels / concurrency * Formatting fix --- python/paddle/fluid/tests/test_concurrency.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/python/paddle/fluid/tests/test_concurrency.py b/python/paddle/fluid/tests/test_concurrency.py index 3aa51610cd..924895a9af 100644 --- a/python/paddle/fluid/tests/test_concurrency.py +++ b/python/paddle/fluid/tests/test_concurrency.py @@ -217,6 +217,57 @@ class TestRoutineOp(unittest.TestCase): exe_result = exe.run(fetch_list=[result]) self.assertEqual(exe_result[0][0], 34) + def test_ping_pong(self): + """ + Mimics Ping Pong example: https://gobyexample.com/channel-directions + """ + with framework.program_guard(framework.Program()): + result = self._create_tensor('return_value', + core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.FP64) + + ping_result = self._create_tensor('ping_return_value', + core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.FP64) + + pong_result = self._create_tensor('pong_return_value', + core.VarDesc.VarType.LOD_TENSOR, + core.VarDesc.VarType.FP64) + + def ping(ch, message): + message_to_send_tmp = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.FP64, value=0) + + assign(input=message, output=message_to_send_tmp) + fluid.channel_send(ch, message_to_send_tmp) + + def pong(ch1, ch2): + fluid.channel_recv(ch1, ping_result) + assign(input=ping_result, output=pong_result) + fluid.channel_send(ch2, pong_result) + + pings = fluid.make_channel( + dtype=core.VarDesc.VarType.LOD_TENSOR, capacity=1) + pongs = fluid.make_channel( + dtype=core.VarDesc.VarType.LOD_TENSOR, capacity=1) + + msg = fill_constant( + shape=[1], dtype=core.VarDesc.VarType.FP64, value=9) + + ping(pings, msg) + pong(pings, pongs) + + fluid.channel_recv(pongs, result) + + fluid.channel_close(pings) + fluid.channel_close(pongs) + + cpu = core.CPUPlace() + exe = Executor(cpu) + + exe_result = exe.run(fetch_list=[result]) + self.assertEqual(exe_result[0][0], 9) + if __name__ == '__main__': unittest.main() From 845592708fa541d2aafb9d6e739967c6a88da57a Mon Sep 17 00:00:00 2001 From: Xi Chen Date: Thu, 15 Mar 2018 15:24:48 -0700 Subject: [PATCH 51/75] add gserver to capi dep --- paddle/capi/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/capi/CMakeLists.txt b/paddle/capi/CMakeLists.txt index ebb083c5a4..e06e9a2b36 100644 --- a/paddle/capi/CMakeLists.txt +++ b/paddle/capi/CMakeLists.txt @@ -36,7 +36,7 @@ target_include_directories(paddle_capi PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) add_style_check_target(paddle_capi ${CAPI_SOURCES} ${CAPI_HEADER} ${CAPI_PRIVATE_HEADER}) -add_dependencies(paddle_capi paddle_proto) +add_dependencies(paddle_capi paddle_proto paddle_gserver) # TODO: paddle_capi_whole will be removed. set(PADDLE_CAPI_LAYERS_LIBS From a13ec3432aeed9364c8e5727bbe5de900b56a372 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Thu, 15 Mar 2018 16:38:21 -0700 Subject: [PATCH 52/75] fix test error --- paddle/fluid/operators/conv_cudnn_op.cu.cc | 6 +++--- paddle/fluid/platform/cudnn_helper.h | 7 ++++--- .../paddle/fluid/tests/unittests/test_conv2d_op.py | 13 ++++++++----- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/paddle/fluid/operators/conv_cudnn_op.cu.cc b/paddle/fluid/operators/conv_cudnn_op.cu.cc index aec0aba6f7..bff62f050c 100644 --- a/paddle/fluid/operators/conv_cudnn_op.cu.cc +++ b/paddle/fluid/operators/conv_cudnn_op.cu.cc @@ -134,8 +134,8 @@ class CUDNNConvOpKernel : public framework::OpKernel { platform::CUDAPlace gpu = boost::get(ctx.GetPlace()); cudnn_workspace = paddle::memory::Alloc(gpu, workspace_size_in_bytes); // ------------------- cudnn conv forward --------------------- - T alpha = static_cast(1.0f); - T beta = static_cast(0.0f); + typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, + beta = 0.0f; for (int i = 0; i < groups; i++) { PADDLE_ENFORCE(platform::dynload::cudnnConvolutionForward( handle, &alpha, cudnn_input_desc, input_data + i * group_offset_in, @@ -321,7 +321,7 @@ namespace plat = paddle::platform; REGISTER_OP_KERNEL(conv2d, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvOpKernel, paddle::operators::CUDNNConvOpKernel, - paddle::operators::CUDNNConvOpKernel < plat::float16); + paddle::operators::CUDNNConvOpKernel); REGISTER_OP_KERNEL(conv2d_grad, CUDNN, plat::CUDAPlace, paddle::operators::CUDNNConvGradOpKernel, paddle::operators::CUDNNConvGradOpKernel); diff --git a/paddle/fluid/platform/cudnn_helper.h b/paddle/fluid/platform/cudnn_helper.h index 510a1707ba..7e001ecc56 100644 --- a/paddle/fluid/platform/cudnn_helper.h +++ b/paddle/fluid/platform/cudnn_helper.h @@ -85,13 +85,14 @@ template <> class CudnnDataType { public: static const cudnnDataType_t type = CUDNN_DATA_HALF; - typedef const float16 ScalingParamType; + // The scaling param type is float for HALF and FLOAT tensors + typedef const float ScalingParamType; static ScalingParamType* kOne() { - static ScalingParamType v = static_cast(1.0); + static ScalingParamType v = 1.0; return &v; } static ScalingParamType* kZero() { - static ScalingParamType v = static_cast(0.0); + static ScalingParamType v = 0.0; return &v; } }; diff --git a/python/paddle/fluid/tests/unittests/test_conv2d_op.py b/python/paddle/fluid/tests/unittests/test_conv2d_op.py index a16b6c8e92..badf7a8cb4 100644 --- a/python/paddle/fluid/tests/unittests/test_conv2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_conv2d_op.py @@ -79,7 +79,7 @@ class TestConv2dOp(OpTest): input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) - output = conv2d_forward_naive(self.input, self.filter, self.groups, + output = conv2d_forward_naive(input, filter, self.groups, conv2d_param).astype(self.dtype) # numpy float16 is binded to paddle::platform::float16 @@ -88,9 +88,12 @@ class TestConv2dOp(OpTest): # uint16_t in paddle or np.uint16 in numpy, which are # themselves binded together. self.inputs = { - 'Input': input.view(np.uint16) - if self.dtype == np.float16 else input, - 'Filter': create_view(filter) + #'Input': (input.view(np.uint16) + # if self.dtype == np.float16 else input), + #'Filter': (filter.view(np.uint16) + # if self.dtype == np.float16 else filter) + 'Input': OpTest.create_view(input), + 'Filter': OpTest.create_view(filter) } self.attrs = { 'strides': self.stride, @@ -254,7 +257,7 @@ class TestFP16CUDNN(TestCUDNN): if core.is_compiled_with_cuda(): place = core.CUDAPlace(0) if core.is_float16_supported(place): - self.check_output_with_place(place, atol=1e-1) + self.check_output_with_place(place, atol=2e-2) def test_check_grad(self): pass From e967d19b0a380d9bb30be2974f05793671fb13b8 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Thu, 15 Mar 2018 18:01:39 -0700 Subject: [PATCH 53/75] add more tests --- paddle/fluid/operators/conv_cudnn_op.cu.cc | 3 +- .../paddle/fluid/tests/unittests/op_test.py | 23 +++-- .../fluid/tests/unittests/test_conv2d_op.py | 83 ++++++++++++++----- 3 files changed, 75 insertions(+), 34 deletions(-) diff --git a/paddle/fluid/operators/conv_cudnn_op.cu.cc b/paddle/fluid/operators/conv_cudnn_op.cu.cc index bff62f050c..0ddbfdb4aa 100644 --- a/paddle/fluid/operators/conv_cudnn_op.cu.cc +++ b/paddle/fluid/operators/conv_cudnn_op.cu.cc @@ -282,7 +282,8 @@ class CUDNNConvGradOpKernel : public framework::OpKernel { platform::CUDAPlace gpu = boost::get(ctx.GetPlace()); cudnn_workspace = paddle::memory::Alloc(gpu, workspace_size_in_bytes); // ------------------- cudnn conv backward data --------------------- - T alpha = 1.0f, beta = 0.0f; + typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, + beta = 0.0f; if (input_grad) { T* input_grad_data = input_grad->mutable_data(ctx.GetPlace()); // Because beta is zero, it is unnecessary to reset input_grad. diff --git a/python/paddle/fluid/tests/unittests/op_test.py b/python/paddle/fluid/tests/unittests/op_test.py index 6d4684b024..6a42f763a6 100644 --- a/python/paddle/fluid/tests/unittests/op_test.py +++ b/python/paddle/fluid/tests/unittests/op_test.py @@ -470,29 +470,26 @@ class OpTest(unittest.TestCase): return tensor @staticmethod - def create_view(input): - """Create a view of the input numpy array + def np_dtype_to_fluid_dtype(input): + """Change the dtype of float16 numpy array numpy float16 is binded to paddle::platform::float16 - in tensor_py.h via the help of numpy uint16 because + in tensor_py.h via the help of uint16 data type since the internal memory representation of float16 is - uint16_t in paddle or np.uint16 in numpy, which are - themselves binded together. + uint16_t in paddle and np.uint16 in numpy, which are + themselves binded together by pybind. Args: input: input numpy array Returns: - input_view: if the dtype of input is np.float16, input_view - will reinterpret input as with dtype np.uint16. - Otherwise, input_view will be input itself. + input: if the dtype of input is np.float16, its dtype will be + changed to np.uint16 so that the internal memory will be + reinterpreted input as of dtype np.uint16. """ if input.dtype == np.float16: - # view will only reinterpret memory without copying - input_view = input.view(np.uint16) - else: - input_view = input - return input_view + input.dtype = np.uint16 + return input def _get_gradient(self, input_to_check, place, output_names, no_grad_set): prog = Program() diff --git a/python/paddle/fluid/tests/unittests/test_conv2d_op.py b/python/paddle/fluid/tests/unittests/test_conv2d_op.py index badf7a8cb4..7913b98240 100644 --- a/python/paddle/fluid/tests/unittests/test_conv2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_conv2d_op.py @@ -82,18 +82,9 @@ class TestConv2dOp(OpTest): output = conv2d_forward_naive(input, filter, self.groups, conv2d_param).astype(self.dtype) - # numpy float16 is binded to paddle::platform::float16 - # in tensor_py.h via the help of numpy uint16 because - # the internal memory representation of float16 is - # uint16_t in paddle or np.uint16 in numpy, which are - # themselves binded together. self.inputs = { - #'Input': (input.view(np.uint16) - # if self.dtype == np.float16 else input), - #'Filter': (filter.view(np.uint16) - # if self.dtype == np.float16 else filter) - 'Input': OpTest.create_view(input), - 'Filter': OpTest.create_view(filter) + 'Input': OpTest.np_dtype_to_fluid_dtype(input), + 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, @@ -113,6 +104,8 @@ class TestConv2dOp(OpTest): self.check_output() def test_check_grad(self): + if self.dtype == np.float16: + return if self.use_cudnn: place = core.CUDAPlace(0) self.check_grad_with_place( @@ -125,6 +118,8 @@ class TestConv2dOp(OpTest): set(['Input', 'Filter']), 'Output', max_relative_error=0.02) def test_check_grad_no_filter(self): + if self.dtype == np.float16: + return if self.use_cudnn: place = core.CUDAPlace(0) self.check_grad_with_place( @@ -140,6 +135,8 @@ class TestConv2dOp(OpTest): no_grad_set=set(['Filter'])) def test_check_grad_no_input(self): + if self.dtype == np.float16: + return if self.use_cudnn: place = core.CUDAPlace(0) self.check_grad_with_place( @@ -259,15 +256,6 @@ class TestFP16CUDNN(TestCUDNN): if core.is_float16_supported(place): self.check_output_with_place(place, atol=2e-2) - def test_check_grad(self): - pass - - def test_check_grad_no_filter(self): - pass - - def test_check_grad_no_input(self): - pass - class TestCUDNNWithPad(TestWithPad): def init_op_type(self): @@ -275,30 +263,85 @@ class TestCUDNNWithPad(TestWithPad): self.op_type = "conv2d" +class TestFP16CUDNNWithPad(TestCUDNNWithPad): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-2) + + class TestCUDNNWithStride(TestWithStride): def init_op_type(self): self.use_cudnn = True self.op_type = "conv2d" +class TestFP16CUDNNWithStride(TestCUDNNWithStride): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-2) + + class TestCUDNNWithGroup(TestWithGroup): def init_op_type(self): self.use_cudnn = True self.op_type = "conv2d" +class TestFP16CUDNNWithGroup(TestCUDNNWithGroup): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-2) + + class TestCUDNNWith1x1(TestWith1x1): def init_op_type(self): self.use_cudnn = True self.op_type = "conv2d" +class TestFP16CUDNNWith1x1(TestCUDNNWith1x1): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-2) + + class TestCUDNNWithInput1x1Filter1x1(TestWithInput1x1Filter1x1): def init_op_type(self): self.use_cudnn = True self.op_type = "conv2d" +class TestFP16CUDNNWithInput1x1Filter1x1(TestCUDNNWithInput1x1Filter1x1): + def init_data_type(self): + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=2e-2) + + class TestDepthwiseConv(TestConv2dOp): def init_test_case(self): self.pad = [1, 1] From 7c1a0b77a07cacf8b503917ca7b71cc09f6a58ce Mon Sep 17 00:00:00 2001 From: qingqing01 Date: Fri, 16 Mar 2018 09:43:52 +0800 Subject: [PATCH 54/75] Delete the detection_output_op, which had been split into several operators. (#9121) --- paddle/fluid/operators/CMakeLists.txt | 1 - paddle/fluid/operators/detection_output_op.cc | 89 ------ .../fluid/operators/detection_output_op.cu.cc | 21 -- paddle/fluid/operators/detection_output_op.h | 167 ---------- paddle/fluid/operators/math/detection_util.h | 300 ------------------ .../fluid/tests/unittests/CMakeLists.txt | 1 - .../unittests/test_detection_output_op.py | 71 ----- 7 files changed, 650 deletions(-) delete mode 100644 paddle/fluid/operators/detection_output_op.cc delete mode 100644 paddle/fluid/operators/detection_output_op.cu.cc delete mode 100644 paddle/fluid/operators/detection_output_op.h delete mode 100644 paddle/fluid/operators/math/detection_util.h delete mode 100644 python/paddle/fluid/tests/unittests/test_detection_output_op.py diff --git a/paddle/fluid/operators/CMakeLists.txt b/paddle/fluid/operators/CMakeLists.txt index 84dc265575..d30124d4a3 100644 --- a/paddle/fluid/operators/CMakeLists.txt +++ b/paddle/fluid/operators/CMakeLists.txt @@ -165,7 +165,6 @@ op_library(cond_op DEPS framework_proto tensor net_op) op_library(cross_entropy_op DEPS cross_entropy) op_library(softmax_with_cross_entropy_op DEPS cross_entropy softmax) op_library(softmax_op DEPS softmax) -op_library(detection_output_op DEPS softmax) op_library(sequence_softmax_op DEPS softmax) op_library(sum_op DEPS selected_rows_functor) op_library(sgd_op DEPS selected_rows_functor) diff --git a/paddle/fluid/operators/detection_output_op.cc b/paddle/fluid/operators/detection_output_op.cc deleted file mode 100644 index f752047591..0000000000 --- a/paddle/fluid/operators/detection_output_op.cc +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -Indicesou may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#include "paddle/fluid/operators/detection_output_op.h" -namespace paddle { -namespace operators { - -class DetectionOutputOpMaker : public framework::OpProtoAndCheckerMaker { - public: - DetectionOutputOpMaker(OpProto* proto, OpAttrChecker* op_checker) - : OpProtoAndCheckerMaker(proto, op_checker) { - AddInput("Loc", - "(Tensor) The input tensor of detection_output operator." - "The input predict locations" - "The format of input tensor is kNCHW. Where K is priorbox point " - "numbers," - "N is How many boxes are there on each point, " - "C is 4, H and W both are 1."); - AddInput("Conf", - "(Tensor) The input tensor of detection_output operator." - "The input priorbox confidence." - "The format of input tensor is kNCHW. Where K is priorbox point " - "numbers," - "N is How many boxes are there on each point, " - "C is the number of classes, H and W both are 1."); - AddInput("PriorBox", - "(Tensor) The input tensor of detection_output operator." - "The format of input tensor is the position and variance " - "of the boxes"); - AddOutput("Out", - "(Tensor) The output tensor of detection_output operator."); - AddAttr("background_label_id", "(int), The background class index."); - AddAttr("num_classes", "(int), The number of the classification."); - AddAttr("nms_threshold", - "(float), The Non-maximum suppression threshold."); - AddAttr("confidence_threshold", - "(float), The classification confidence threshold."); - AddAttr("top_k", "(int), The bbox number kept of the layer’s output."); - AddAttr("nms_top_k", - "(int), The bbox number kept of the NMS’s output."); - AddComment(R"DOC( - detection output for SSD(single shot multibox detector) - Apply the NMS to the output of network and compute the predict - bounding box location. The output’s shape of this layer could - be zero if there is no valid bounding box. - )DOC"); - } -}; - -class DetectionOutputOp : public framework::OperatorWithKernel { - public: - using framework::OperatorWithKernel::OperatorWithKernel; - void InferShape(framework::InferShapeContext* ctx) const override { - PADDLE_ENFORCE(ctx->HasInput("Loc"), - "Input(X) of DetectionOutputOp" - "should not be null."); - PADDLE_ENFORCE(ctx->HasInput("Conf"), - "Input(X) of DetectionOutputOp" - "should not be null."); - PADDLE_ENFORCE(ctx->HasInput("PriorBox"), - "Input(X) of DetectionOutputOp" - "should not be null."); - PADDLE_ENFORCE(ctx->HasOutput("Out"), - "Output(Out) of DetectionOutputOp should not be null."); - std::vector output_shape({1, 7}); - ctx->SetOutputDim("Out", framework::make_ddim(output_shape)); - } -}; -} // namespace operators -} // namespace paddle - -namespace ops = paddle::operators; -REGISTER_OP_WITHOUT_GRADIENT(detection_output, ops::DetectionOutputOp, - ops::DetectionOutputOpMaker); -REGISTER_OP_CPU_KERNEL( - detection_output, - ops::DetectionOutputKernel, - ops::DetectionOutputKernel); diff --git a/paddle/fluid/operators/detection_output_op.cu.cc b/paddle/fluid/operators/detection_output_op.cu.cc deleted file mode 100644 index 0f48765c9c..0000000000 --- a/paddle/fluid/operators/detection_output_op.cu.cc +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -Indicesou may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#include "paddle/fluid/operators/detection_output_op.h" - -namespace ops = paddle::operators; -REGISTER_OP_CUDA_KERNEL( - detection_output, - ops::DetectionOutputKernel, - ops::DetectionOutputKernel); diff --git a/paddle/fluid/operators/detection_output_op.h b/paddle/fluid/operators/detection_output_op.h deleted file mode 100644 index af9081c934..0000000000 --- a/paddle/fluid/operators/detection_output_op.h +++ /dev/null @@ -1,167 +0,0 @@ -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - Indicesou may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -#pragma once -#include "paddle/fluid/framework/op_registry.h" -#include "paddle/fluid/framework/tensor.h" -#include "paddle/fluid/operators/math/detection_util.h" -#include "paddle/fluid/operators/math/math_function.h" -#include "paddle/fluid/operators/math/softmax.h" -#include "paddle/fluid/operators/strided_memcpy.h" -namespace paddle { -namespace operators { -template -inline void transpose_fun(const framework::ExecutionContext& context, - const framework::Tensor& src, - framework::Tensor* dst) { - int input_nums = src.dims()[0]; - int offset = 0; - for (int j = 0; j < input_nums; ++j) { - framework::Tensor in_p_tensor = src.Slice(j, j + 1); - std::vector shape_vec( - {in_p_tensor.dims()[0], in_p_tensor.dims()[1], in_p_tensor.dims()[3], - in_p_tensor.dims()[4], in_p_tensor.dims()[2]}); - framework::DDim shape(framework::make_ddim(shape_vec)); - framework::Tensor in_p_tensor_transpose; - in_p_tensor_transpose.mutable_data(shape, context.GetPlace()); - std::vector shape_axis({0, 1, 3, 4, 2}); - math::Transpose trans5; - trans5(context.template device_context(), in_p_tensor, - &in_p_tensor_transpose, shape_axis); - auto dst_stride = framework::stride(dst->dims()); - auto src_stride = framework::stride(in_p_tensor_transpose.dims()); - StridedMemcpy(context.device_context(), in_p_tensor_transpose.data(), - src_stride, in_p_tensor_transpose.dims(), dst_stride, - dst->data() + offset); - offset += in_p_tensor_transpose.dims()[4] * src_stride[4]; - } -} -template -class DetectionOutputKernel : public framework::OpKernel { - public: - void Compute(const framework::ExecutionContext& context) const override { - const framework::Tensor* in_loc = context.Input("Loc"); - const framework::Tensor* in_conf = context.Input("Conf"); - const framework::Tensor* in_priorbox = - context.Input("PriorBox"); - auto* out = context.Output("Out"); - int num_classes = context.template Attr("num_classes"); - int top_k = context.template Attr("top_k"); - int nms_top_k = context.template Attr("nms_top_k"); - int background_label_id = context.template Attr("background_label_id"); - float nms_threshold = context.template Attr("nms_threshold"); - float confidence_threshold = - context.template Attr("confidence_threshold"); - size_t batch_size = in_conf->dims()[1]; - int conf_sum_size = in_conf->numel(); - // for softmax - std::vector conf_shape_softmax_vec( - {conf_sum_size / num_classes, num_classes}); - framework::DDim conf_shape_softmax( - framework::make_ddim(conf_shape_softmax_vec)); - // for knchw => nhwc - std::vector loc_shape_vec({1, in_loc->dims()[1], in_loc->dims()[3], - in_loc->dims()[4], - in_loc->dims()[2] * in_loc->dims()[0]}); - std::vector conf_shape_vec( - {1, in_conf->dims()[1], in_conf->dims()[3], in_conf->dims()[4], - in_conf->dims()[2] * in_conf->dims()[0]}); - framework::DDim loc_shape(framework::make_ddim(loc_shape_vec)); - framework::DDim conf_shape(framework::make_ddim(conf_shape_vec)); - framework::Tensor loc_tensor; - framework::Tensor conf_tensor; - loc_tensor.mutable_data(loc_shape, context.GetPlace()); - conf_tensor.mutable_data(conf_shape, context.GetPlace()); - // for cpu - framework::Tensor loc_cpu; - framework::Tensor conf_cpu; - framework::Tensor priorbox_cpu; - const T* priorbox_data = in_priorbox->data(); - transpose_fun(context, *in_loc, &loc_tensor); - transpose_fun(context, *in_conf, &conf_tensor); - conf_tensor.Resize(conf_shape_softmax); - math::SoftmaxFunctor()( - context.template device_context(), &conf_tensor, - &conf_tensor); - T* loc_data = loc_tensor.data(); - T* conf_data = conf_tensor.data(); - if (platform::is_gpu_place(context.GetPlace())) { - loc_cpu.mutable_data(loc_tensor.dims(), platform::CPUPlace()); - framework::TensorCopy(loc_tensor, platform::CPUPlace(), - context.device_context(), &loc_cpu); - loc_data = loc_cpu.data(); - conf_cpu.mutable_data(conf_tensor.dims(), platform::CPUPlace()); - framework::TensorCopy(conf_tensor, platform::CPUPlace(), - context.device_context(), &conf_cpu); - conf_data = conf_cpu.data(); - priorbox_cpu.mutable_data(in_priorbox->dims(), platform::CPUPlace()); - framework::TensorCopy(*in_priorbox, platform::CPUPlace(), - context.device_context(), &priorbox_cpu); - priorbox_data = priorbox_cpu.data(); - } - // get decode bboxes - size_t num_priors = in_priorbox->numel() / 8; - std::vector>> all_decoded_bboxes; - for (size_t n = 0; n < batch_size; ++n) { - std::vector> decoded_bboxes; - for (size_t i = 0; i < num_priors; ++i) { - size_t prior_offset = i * 8; - size_t loc_pred_offset = n * num_priors * 4 + i * 4; - std::vector> prior_bbox_vec; - math::GetBBoxFromPriorData(priorbox_data + prior_offset, 1, - prior_bbox_vec); - std::vector> prior_bbox_var; - math::GetBBoxVarFromPriorData(priorbox_data + prior_offset, 1, - prior_bbox_var); - std::vector loc_pred_data; - for (size_t j = 0; j < 4; ++j) - loc_pred_data.push_back(*(loc_data + loc_pred_offset + j)); - math::BBox bbox = math::DecodeBBoxWithVar( - prior_bbox_vec[0], prior_bbox_var[0], loc_pred_data); - decoded_bboxes.push_back(bbox); - } - all_decoded_bboxes.push_back(decoded_bboxes); - } - std::vector>> all_indices; - int num_kept = math::GetDetectionIndices( - conf_data, num_priors, num_classes, background_label_id, batch_size, - confidence_threshold, nms_top_k, nms_threshold, top_k, - all_decoded_bboxes, &all_indices); - - if (num_kept <= 0) { - std::vector out_shape_vec({0, 0}); - framework::DDim out_shape(framework::make_ddim(out_shape_vec)); - out->Resize(out_shape); - return; - } - std::vector out_shape_vec({num_kept, 7}); - framework::DDim out_shape(framework::make_ddim(out_shape_vec)); - out->mutable_data(out_shape, context.GetPlace()); - framework::Tensor out_cpu; - T* out_data = out->data(); - if (platform::is_gpu_place(context.GetPlace())) { - out_cpu.mutable_data(out->dims(), platform::CPUPlace()); - out_data = out_cpu.data(); - } - math::GetDetectionOutput(conf_data, num_kept, num_priors, num_classes, - batch_size, all_indices, all_decoded_bboxes, - out_data); - if (platform::is_gpu_place(context.GetPlace())) { - framework::TensorCopy(out_cpu, platform::CUDAPlace(), - context.device_context(), out); - } - } -}; -} // namespace operators -} // namespace paddle diff --git a/paddle/fluid/operators/math/detection_util.h b/paddle/fluid/operators/math/detection_util.h deleted file mode 100644 index c31764cfaf..0000000000 --- a/paddle/fluid/operators/math/detection_util.h +++ /dev/null @@ -1,300 +0,0 @@ -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ -#pragma once -#include -#include "paddle/fluid/framework/selected_rows.h" -#include "paddle/fluid/platform/device_context.h" - -namespace paddle { -namespace operators { -namespace math { -template -struct BBox { - BBox(T x_min, T y_min, T x_max, T y_max) - : x_min(x_min), - y_min(y_min), - x_max(x_max), - y_max(y_max), - is_difficult(false) {} - - BBox() {} - - T get_width() const { return x_max - x_min; } - - T get_height() const { return y_max - y_min; } - - T get_center_x() const { return (x_min + x_max) / 2; } - - T get_center_y() const { return (y_min + y_max) / 2; } - - T get_area() const { return get_width() * get_height(); } - - // coordinate of bounding box - T x_min; - T y_min; - T x_max; - T y_max; - // whether difficult object (e.g. object with heavy occlusion is difficult) - bool is_difficult; -}; -// KNCHW ==> NHWC -// template -template -void GetBBoxFromPriorData(const T* prior_data, const size_t num_bboxes, - std::vector>& bbox_vec); -template -void GetBBoxVarFromPriorData(const T* prior_data, const size_t num, - std::vector>& var_vec); -template -BBox DecodeBBoxWithVar(BBox& prior_bbox, - const std::vector& prior_bbox_var, - const std::vector& loc_pred_data); -template -bool SortScorePairDescend(const std::pair& pair1, - const std::pair& pair2); -template -bool SortScorePairDescend(const std::pair>& pair1, - const std::pair>& pair2); -template -T jaccard_overlap(const BBox& bbox1, const BBox& bbox2); - -template -void ApplyNmsFast(const std::vector>& bboxes, const T* conf_score_data, - size_t class_idx, size_t top_k, T conf_threshold, - T nms_threshold, size_t num_priors, size_t num_classes, - std::vector* indices); -template -int GetDetectionIndices( - const T* conf_data, const size_t num_priors, const size_t num_classes, - const size_t background_label_id, const size_t batch_size, - const T conf_threshold, const size_t nms_top_k, const T nms_threshold, - const size_t top_k, - const std::vector>>& all_decoded_bboxes, - std::vector>>* all_detection_indices); -template -BBox ClipBBox(const BBox& bbox); -template -void GetDetectionOutput( - const T* conf_data, const size_t num_kept, const size_t num_priors, - const size_t num_classes, const size_t batch_size, - const std::vector>>& all_indices, - const std::vector>>& all_decoded_bboxes, T* out_data); -template -void GetBBoxFromPriorData(const T* prior_data, const size_t num_bboxes, - std::vector>& bbox_vec) { - size_t out_offset = bbox_vec.size(); - bbox_vec.resize(bbox_vec.size() + num_bboxes); - for (size_t i = 0; i < num_bboxes; ++i) { - BBox bbox; - bbox.x_min = *(prior_data + i * 8); - bbox.y_min = *(prior_data + i * 8 + 1); - bbox.x_max = *(prior_data + i * 8 + 2); - bbox.y_max = *(prior_data + i * 8 + 3); - bbox_vec[out_offset + i] = bbox; - } -} -template -void GetBBoxVarFromPriorData(const T* prior_data, const size_t num, - std::vector>& var_vec) { - size_t out_offset = var_vec.size(); - var_vec.resize(var_vec.size() + num); - for (size_t i = 0; i < num; ++i) { - std::vector var; - var.push_back(*(prior_data + i * 8 + 4)); - var.push_back(*(prior_data + i * 8 + 5)); - var.push_back(*(prior_data + i * 8 + 6)); - var.push_back(*(prior_data + i * 8 + 7)); - var_vec[out_offset + i] = var; - } -} -template -BBox DecodeBBoxWithVar(BBox& prior_bbox, - const std::vector& prior_bbox_var, - const std::vector& loc_pred_data) { - T prior_bbox_width = prior_bbox.get_width(); - T prior_bbox_height = prior_bbox.get_height(); - T prior_bbox_center_x = prior_bbox.get_center_x(); - T prior_bbox_center_y = prior_bbox.get_center_y(); - - T decoded_bbox_center_x = - prior_bbox_var[0] * loc_pred_data[0] * prior_bbox_width + - prior_bbox_center_x; - T decoded_bbox_center_y = - prior_bbox_var[1] * loc_pred_data[1] * prior_bbox_height + - prior_bbox_center_y; - T decoded_bbox_width = - std::exp(prior_bbox_var[2] * loc_pred_data[2]) * prior_bbox_width; - T decoded_bbox_height = - std::exp(prior_bbox_var[3] * loc_pred_data[3]) * prior_bbox_height; - - BBox decoded_bbox; - decoded_bbox.x_min = decoded_bbox_center_x - decoded_bbox_width / 2; - decoded_bbox.y_min = decoded_bbox_center_y - decoded_bbox_height / 2; - decoded_bbox.x_max = decoded_bbox_center_x + decoded_bbox_width / 2; - decoded_bbox.y_max = decoded_bbox_center_y + decoded_bbox_height / 2; - - return decoded_bbox; -} -template -bool SortScorePairDescend(const std::pair& pair1, - const std::pair& pair2) { - return pair1.first > pair2.first; -} -template -T jaccard_overlap(const BBox& bbox1, const BBox& bbox2) { - if (bbox2.x_min > bbox1.x_max || bbox2.x_max < bbox1.x_min || - bbox2.y_min > bbox1.y_max || bbox2.y_max < bbox1.y_min) { - return 0.0; - } else { - T inter_x_min = std::max(bbox1.x_min, bbox2.x_min); - T inter_y_min = std::max(bbox1.y_min, bbox2.y_min); - T interX_max = std::min(bbox1.x_max, bbox2.x_max); - T interY_max = std::min(bbox1.y_max, bbox2.y_max); - - T inter_width = interX_max - inter_x_min; - T inter_height = interY_max - inter_y_min; - T inter_area = inter_width * inter_height; - - T bbox_area1 = bbox1.get_area(); - T bbox_area2 = bbox2.get_area(); - - return inter_area / (bbox_area1 + bbox_area2 - inter_area); - } -} - -template -void ApplyNmsFast(const std::vector>& bboxes, const T* conf_score_data, - size_t class_idx, size_t top_k, T conf_threshold, - T nms_threshold, size_t num_priors, size_t num_classes, - std::vector* indices) { - std::vector> scores; - for (size_t i = 0; i < num_priors; ++i) { - size_t conf_offset = i * num_classes + class_idx; - if (conf_score_data[conf_offset] > conf_threshold) - scores.push_back(std::make_pair(conf_score_data[conf_offset], i)); - } - std::stable_sort(scores.begin(), scores.end(), - SortScorePairDescend); - if (top_k > 0 && top_k < scores.size()) scores.resize(top_k); - while (scores.size() > 0) { - const size_t idx = scores.front().second; - bool keep = true; - for (size_t i = 0; i < indices->size(); ++i) { - if (keep) { - const size_t saved_idx = (*indices)[i]; - T overlap = jaccard_overlap(bboxes[idx], bboxes[saved_idx]); - keep = overlap <= nms_threshold; - } else { - break; - } - } - if (keep) indices->push_back(idx); - scores.erase(scores.begin()); - } -} -template -int GetDetectionIndices( - const T* conf_data, const size_t num_priors, const size_t num_classes, - const size_t background_label_id, const size_t batch_size, - const T conf_threshold, const size_t nms_top_k, const T nms_threshold, - const size_t top_k, - const std::vector>>& all_decoded_bboxes, - std::vector>>* all_detection_indices) { - int total_keep_num = 0; - for (size_t n = 0; n < batch_size; ++n) { - const std::vector>& decoded_bboxes = all_decoded_bboxes[n]; - size_t num_detected = 0; - std::map> indices; - size_t conf_offset = n * num_priors * num_classes; - for (size_t c = 0; c < num_classes; ++c) { - if (c == background_label_id) continue; - ApplyNmsFast(decoded_bboxes, conf_data + conf_offset, c, nms_top_k, - conf_threshold, nms_threshold, num_priors, num_classes, - &(indices[c])); - num_detected += indices[c].size(); - } - if (top_k > 0 && num_detected > top_k) { - // std::vector> score_index_pairs; - std::vector>> score_index_pairs; - for (size_t c = 0; c < num_classes; ++c) { - const std::vector& label_indices = indices[c]; - for (size_t i = 0; i < label_indices.size(); ++i) { - size_t idx = label_indices[i]; - score_index_pairs.push_back( - std::make_pair((conf_data + conf_offset)[idx * num_classes + c], - std::make_pair(c, idx))); - } - } - std::sort(score_index_pairs.begin(), score_index_pairs.end(), - SortScorePairDescend>); - score_index_pairs.resize(top_k); - std::map> new_indices; - for (size_t i = 0; i < score_index_pairs.size(); ++i) { - size_t label = score_index_pairs[i].second.first; - size_t idx = score_index_pairs[i].second.second; - new_indices[label].push_back(idx); - } - all_detection_indices->push_back(new_indices); - total_keep_num += top_k; - } else { - all_detection_indices->push_back(indices); - total_keep_num += num_detected; - } - } - return total_keep_num; -} -template -BBox ClipBBox(const BBox& bbox) { - T one = static_cast(1.0); - T zero = static_cast(0.0); - BBox clipped_bbox; - clipped_bbox.x_min = std::max(std::min(bbox.x_min, one), zero); - clipped_bbox.y_min = std::max(std::min(bbox.y_min, one), zero); - clipped_bbox.x_max = std::max(std::min(bbox.x_max, one), zero); - clipped_bbox.y_max = std::max(std::min(bbox.y_max, one), zero); - return clipped_bbox; -} -template -void GetDetectionOutput( - const T* conf_data, const size_t num_kept, const size_t num_priors, - const size_t num_classes, const size_t batch_size, - const std::vector>>& all_indices, - const std::vector>>& all_decoded_bboxes, T* out_data) { - size_t count = 0; - for (size_t n = 0; n < batch_size; ++n) { - for (std::map>::const_iterator it = - all_indices[n].begin(); - it != all_indices[n].end(); ++it) { - size_t label = it->first; - const std::vector& indices = it->second; - const std::vector>& decoded_bboxes = all_decoded_bboxes[n]; - for (size_t i = 0; i < indices.size(); ++i) { - size_t idx = indices[i]; - size_t conf_offset = n * num_priors * num_classes + idx * num_classes; - out_data[count * 7] = n; - out_data[count * 7 + 1] = label; - out_data[count * 7 + 2] = (conf_data + conf_offset)[label]; - BBox clipped_bbox = ClipBBox(decoded_bboxes[idx]); - out_data[count * 7 + 3] = clipped_bbox.x_min; - out_data[count * 7 + 4] = clipped_bbox.y_min; - out_data[count * 7 + 5] = clipped_bbox.x_max; - out_data[count * 7 + 6] = clipped_bbox.y_max; - ++count; - } - } - } -} -} // namespace math -} // namespace operators -} // namespace paddle diff --git a/python/paddle/fluid/tests/unittests/CMakeLists.txt b/python/paddle/fluid/tests/unittests/CMakeLists.txt index f96c2ca4f0..0ad273c716 100644 --- a/python/paddle/fluid/tests/unittests/CMakeLists.txt +++ b/python/paddle/fluid/tests/unittests/CMakeLists.txt @@ -11,7 +11,6 @@ list(REMOVE_ITEM TEST_OPS test_lstm_unit_op) # # FIXME(qijun) https://github.com list(REMOVE_ITEM TEST_OPS test_nce) # IXME(qijun) https://github.com/PaddlePaddle/Paddle/issues/7778 list(REMOVE_ITEM TEST_OPS test_recurrent_op) # FIXME(qijun) https://github.com/PaddlePaddle/Paddle/issues/6152 list(REMOVE_ITEM TEST_OPS test_cond_op) # FIXME(qijun): https://github.com/PaddlePaddle/Paddle/issues/5101#issuecomment-339814957 -list(REMOVE_ITEM TEST_OPS test_detection_output_op) # FIXME: detection_output_op will be rewritten. This unittest should be list(REMOVE_ITEM TEST_OPS op_test) # op_test is a helper python file, not a test list(REMOVE_ITEM TEST_OPS decorators) # decorators is a helper python file, not a test diff --git a/python/paddle/fluid/tests/unittests/test_detection_output_op.py b/python/paddle/fluid/tests/unittests/test_detection_output_op.py deleted file mode 100644 index 9468131914..0000000000 --- a/python/paddle/fluid/tests/unittests/test_detection_output_op.py +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest -import numpy as np -from op_test import OpTest - - -class TestUnpoolOp(OpTest): - def setUp(self): - self.op_type = "detection_output" - self.init_test_case() - - #loc.shape ((1, 4, 4, 1, 1)) - #conf.shape ((1, 4, 2, 1, 1)) - - loc = np.array([[[[[0.1]], [[0.1]], [[0.1]], [[0.1]]], - [[[0.1]], [[0.1]], [[0.1]], [[0.1]]], - [[[0.1]], [[0.1]], [[0.1]], [[0.1]]], - [[[0.1]], [[0.1]], [[0.1]], [[0.1]]]]]) - conf = np.array([[[[[0.1]], [[0.9]]], [[[0.2]], [[0.8]]], - [[[0.3]], [[0.7]]], [[[0.4]], [[0.6]]]]]) - priorbox = np.array([ - 0.1, 0.1, 0.5, 0.5, 0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.6, 0.6, 0.1, - 0.1, 0.2, 0.2, 0.3, 0.3, 0.7, 0.7, 0.1, 0.1, 0.2, 0.2, 0.4, 0.4, - 0.8, 0.8, 0.1, 0.1, 0.2, 0.2 - ]) - - output = np.array([ - 0, 1, 0.68997443, 0.099959746, 0.099959746, 0.50804031, 0.50804031 - ]) - self.inputs = { - 'Loc': loc.astype('float32'), - 'Conf': conf.astype('float32'), - 'PriorBox': priorbox.astype('float32') - } - self.attrs = { - 'num_classes': self.num_classes, - 'top_k': self.top_k, - 'nms_top_k': self.nms_top_k, - 'background_label_id': self.background_label_id, - 'nms_threshold': self.nms_threshold, - 'confidence_threshold': self.confidence_threshold, - } - self.outputs = {'Out': output.astype('float32')} - - def test_check_output(self): - self.check_output() - - def init_test_case(self): - self.num_classes = 2 - self.top_k = 10 - self.nms_top_k = 20 - self.background_label_id = 0 - self.nms_threshold = 0.01 - self.confidence_threshold = 0.01 - - -if __name__ == '__main__': - unittest.main() From 1ca1e1c3843e2710e6a9790a503626afb6af44b9 Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Thu, 15 Mar 2018 18:43:44 -0700 Subject: [PATCH 55/75] Fix a program copy regression. Single device on se-resnet reduce from 0.56 to 0.50 --- paddle/fluid/framework/executor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/framework/executor.cc b/paddle/fluid/framework/executor.cc index fb7c13d36d..bcbd717aa4 100644 --- a/paddle/fluid/framework/executor.cc +++ b/paddle/fluid/framework/executor.cc @@ -44,7 +44,7 @@ struct ExecutorPrepareContext { ExecutorPrepareContext(const framework::ProgramDesc& prog, size_t block_id) : prog_(prog), block_id_(block_id) {} - framework::ProgramDesc prog_; + const framework::ProgramDesc& prog_; size_t block_id_; std::vector> ops_; }; From e1ffb49babd9c4437a6c695bcd22a7e89e78a722 Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Fri, 16 Mar 2018 11:09:29 +0800 Subject: [PATCH 56/75] remove legacy design image --- doc/design/images/replica.png | Bin 179103 -> 0 bytes doc/design/images/two_phase_commit.png | Bin 49120 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/design/images/replica.png delete mode 100644 doc/design/images/two_phase_commit.png diff --git a/doc/design/images/replica.png b/doc/design/images/replica.png deleted file mode 100644 index ef59e56b01d792a059279e6bb9a29f3db6a59a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179103 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 ={ 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

4F-YnH^&&hyFtN7J4 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 From f3c5e81556904c3626706c5e34effffbb94c2847 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Thu, 15 Mar 2018 20:32:06 -0700 Subject: [PATCH 57/75] add fp16 for cast op --- paddle/fluid/operators/cast_op.cc | 4 ++- paddle/fluid/operators/cast_op.cu | 4 ++- .../fluid/tests/unittests/test_cast_op.py | 33 ++++++++++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/operators/cast_op.cc b/paddle/fluid/operators/cast_op.cc index 72f8cb04f2..dd0068d571 100644 --- a/paddle/fluid/operators/cast_op.cc +++ b/paddle/fluid/operators/cast_op.cc @@ -14,6 +14,7 @@ limitations under the License. */ #include "paddle/fluid/operators/cast_op.h" #include "paddle/fluid/framework/op_registry.h" +#include "paddle/fluid/platform/float16.h" namespace paddle { namespace operators { @@ -88,4 +89,5 @@ REGISTER_OP_CPU_KERNEL(cast, ops::CastOpKernel, ops::CastOpKernel, ops::CastOpKernel, ops::CastOpKernel, - ops::CastOpKernel); + ops::CastOpKernel, + ops::CastOpKernel); diff --git a/paddle/fluid/operators/cast_op.cu b/paddle/fluid/operators/cast_op.cu index 507e9a531a..c486c5850e 100644 --- a/paddle/fluid/operators/cast_op.cu +++ b/paddle/fluid/operators/cast_op.cu @@ -13,6 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ #include "paddle/fluid/operators/cast_op.h" +#include "paddle/fluid/platform/float16.h" template using CastOpKernel = @@ -20,4 +21,5 @@ using CastOpKernel = REGISTER_OP_CUDA_KERNEL(cast, CastOpKernel, CastOpKernel, CastOpKernel, CastOpKernel, - CastOpKernel); + CastOpKernel, + CastOpKernel); diff --git a/python/paddle/fluid/tests/unittests/test_cast_op.py b/python/paddle/fluid/tests/unittests/test_cast_op.py index 8fb8d03828..9c6ab00c85 100644 --- a/python/paddle/fluid/tests/unittests/test_cast_op.py +++ b/python/paddle/fluid/tests/unittests/test_cast_op.py @@ -18,7 +18,7 @@ import numpy as np import paddle.fluid.core as core -class TestCastOp(op_test.OpTest): +class TestCastOp1(op_test.OpTest): def setUp(self): ipt = np.random.random(size=[10, 10]) self.inputs = {'X': ipt.astype('float32')} @@ -36,5 +36,36 @@ class TestCastOp(op_test.OpTest): self.check_grad(['X'], ['Out']) +class TestCastOp2(op_test.OpTest): + def setUp(self): + ipt = np.random.random(size=[10, 10]) + # numpy float16 is binded to fluid float16 via uint16 + self.inputs = {'X': ipt.astype('float16').view(uint16)} + self.outputs = {'Out': ipt.astype('float32')} + self.attrs = { + 'in_dtype': int(core.VarDesc.VarType.FP16), + 'out_dtype': int(core.VarDesc.VarType.FP32) + } + self.op_type = 'cast' + + def test_check_output(self): + self.check_output() + + +class TestCastOp2(op_test.OpTest): + def setUp(self): + ipt = np.random.random(size=[10, 10]) + self.inputs = {'X': ipt.astype('float32')} + self.outputs = {'Out': ipt.astype('float16')} + self.attrs = { + 'in_dtype': int(core.VarDesc.VarType.FP32), + 'out_dtype': int(core.VarDesc.VarType.FP16) + } + self.op_type = 'cast' + + def test_check_output(self): + self.check_output() + + if __name__ == '__main__': unittest.main() From 6ef4f1f8c07df697d698dd049a7373aa25552ddf Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Thu, 15 Mar 2018 20:51:58 -0700 Subject: [PATCH 58/75] small fix --- python/paddle/fluid/tests/unittests/test_cast_op.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/paddle/fluid/tests/unittests/test_cast_op.py b/python/paddle/fluid/tests/unittests/test_cast_op.py index 9c6ab00c85..b8d3ed3aa3 100644 --- a/python/paddle/fluid/tests/unittests/test_cast_op.py +++ b/python/paddle/fluid/tests/unittests/test_cast_op.py @@ -40,7 +40,7 @@ class TestCastOp2(op_test.OpTest): def setUp(self): ipt = np.random.random(size=[10, 10]) # numpy float16 is binded to fluid float16 via uint16 - self.inputs = {'X': ipt.astype('float16').view(uint16)} + self.inputs = {'X': ipt.astype('float16').view(np.uint16)} self.outputs = {'Out': ipt.astype('float32')} self.attrs = { 'in_dtype': int(core.VarDesc.VarType.FP16), @@ -49,10 +49,10 @@ class TestCastOp2(op_test.OpTest): self.op_type = 'cast' def test_check_output(self): - self.check_output() + self.check_output(atol=1e-3) -class TestCastOp2(op_test.OpTest): +class TestCastOp3(op_test.OpTest): def setUp(self): ipt = np.random.random(size=[10, 10]) self.inputs = {'X': ipt.astype('float32')} @@ -64,7 +64,7 @@ class TestCastOp2(op_test.OpTest): self.op_type = 'cast' def test_check_output(self): - self.check_output() + self.check_output(atol=1e-3) if __name__ == '__main__': From cf367a536e1d336c5014328249aa603b26722f7e Mon Sep 17 00:00:00 2001 From: ranqiu Date: Fri, 16 Mar 2018 13:04:15 +0800 Subject: [PATCH 59/75] delete unused images --- doc/design/images/duplicate_op.graffle | Bin 2432 -> 0 bytes doc/design/images/duplicate_op.png | Bin 21893 -> 0 bytes doc/design/images/duplicate_op2.graffle | Bin 2611 -> 0 bytes doc/design/images/duplicate_op2.png | Bin 24748 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/design/images/duplicate_op.graffle delete mode 100644 doc/design/images/duplicate_op.png delete mode 100644 doc/design/images/duplicate_op2.graffle delete mode 100644 doc/design/images/duplicate_op2.png diff --git a/doc/design/images/duplicate_op.graffle b/doc/design/images/duplicate_op.graffle deleted file mode 100644 index 5979f792e252f028a615729215529c2be42d9165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2432 zcmV-`34it)+R5QT zr>lXCW^?aoU0WYYIeOk~-rU?Ys6sV7ajk%H^CS`@7RkFq5Vi>w8ou<`p_x>AK^^$j z=bqeNd$x7O?zUT=YCCy*Q(TW*8spgyrJ%OW|*R&y#k zRbebe%l~T}%URPh8nfoKe202hs>#rY=0-#A&0v#fpTHC%o|etj`1A>FXy|@J`{WR^ zp_!I_e_v2n;dcWXSF3hJz_T_>RSw!2eri*aH*X5-$h&}L$f?F@A&3-LS!u2~EpJEk zCQ~a@?C3bJ4%l;Mi0NH+lUgul?}WHs!XI{N_<_d95g+i(6Q-t2ESc}ftVV}_WEK3( z;*~lg7+;62fDgioPPnR5g6@o{2O?(ph|yqM2iHq(rcn5ze7Q|!MIC~$y@~8i9c$Qp zPRMi9(*BL$Q_)Td5mC8*TZDsmLp~HriDHd5k4FK$>v%M%G>bJJYA-Z(DOY>R1J=D8 zRjN>kh%z?u!?y6o*DRFfP@UP1RE#(A-&nCpO=uS#vJ^wPAadLdjbO7uOr+}&&)6iU zNmN*2VsB_VDn?aZSY>fFq$5@rSW~OWF1wZ0dT;kSHRwRxRH3IVP8_m~&P8o5Y|TR4 z)&*`QH2XXV@{ySp&wMuXpfVzbT;_`>{)`$1NixX7jPMwlkJJSem(iFOq%SqhZXGf8J<-iAj2%@B~#w zCNkDO_4*=|@-pc4QLi6zxOzhx#Y`e?p9LS7gmLzWjoEMafc2Dr0Qk3F#C!;)-XLNu zR5zEwn87tc{j0}rM-+x~Kf`(?PHY-6A+(`}fFp=|WC6O{f75ENd~(Ta|~7ae`a)Cn~l7rU;ZyEakp%s@;Qs>!2% zewHFNEOp4k1tgW1lY8w(ML{X{xZelo&Er$LaPoYSAWuZhW$t}GM_xAc1agq!Sh@{F z=2R=63YkoKHqbt!{-gQTSADGjrlpgV+f0YR&%miLaId&+#ce+{w;3yL`$F7iJ|%5?GPMyy2exsYxrrHa8io$< z(#XKrh9rw9>a!b==3y7>x{EF1+W(j2WWiXVqwHfWO;*d)jGj>Q+tb-Ms8SPkMBkWUeKL3H8GZp9-j9{F)|9E={Fp`)7a2V zm8?G-@RnzoU%3;_pR^A@%gT^qep@RWzmAnl+s0o-+|Q>o#ogeYp}2_^q_V5Kw3?Wr zLpqAPVhMb4WA&>s_gQ=>yesCHH}Mu8E{8tnF~6*C6D~EAj8rFdz~ag#-|8OUgKGfp zg40PBEwP{a55`7aQQWLNOEA-MP8}hLAKWgi9{i!jjud%BuWLLmX-30U_z8Snb|JVE zaF4~ysd3KP&4Xg+IUHy!#&W*PwL*TK+jc&0@kf<<5NhHL58Js-*)_|<8MeblG@^wy z;+pBA1Ro@7?uCQ=LiSV_U&x9wq1x@P-W(2DILIX;(+0?Nh1PWt(Frk14JP#;p`g4G zBfb>A7;K>8)x7Ab2HP7t2$_5gK8EP&3>lLp$Dc*T8{zZ*;|Aq_xp9+q6L+K?xF#pN{(?X=`afB$vx_5vgJ-<{yy z!M)>Lq z)p-w?m$$*q?yJS>AF{su9P=nXStS1ia)GEo&o$!HORfBnZU#&y1J8ra6ebJmnyKvF znI=vaCXIxHEE^HWK@Ple*eKc1Gj#u{+L`b*`@btjUqgJ6x|5DL z4w<5kIVr~}yp|t_!QI20aw=|?Jvj!@rH+jywBO~jN`L9;wnC1Q*0`pTOw>^4vC_;g zJ$|`FVwY4_V?PZ&_Q<+tA%8z+S+2j}>Ca-e7fK#2GW&Ubj#(9U!9z&%=TrIaIEug$ zi6yHiBT@Bae y1FregpVj5V8RVP><4Q-&ohhw}jrzsO>Q8wds&GbjO^!Toul)@*f@?mBJpcgH(!v-3 diff --git a/doc/design/images/duplicate_op.png b/doc/design/images/duplicate_op.png deleted file mode 100644 index f299c5d37f260a1bb0daec886f0a4ee1c1f31c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21893 zcmeFZWpGFMb+)7{gcNF@bH6hs0<2nYxiX(=&f2nfh^@TU$Q3fyACN!ta!K)NVP zeuJo)AUXp7KyZ}Oa)E$A!ut1tgviXs0|U%kscO1v%FFSYIM^{8nK~GoF?-rMf}tTG z1U&h`U+v6XjmSLhZ0%k6JOwHK1HlLW{;!#Zg6uyat~P=cn(|6yq7KexWSq<#%wH&k z5Xs2M1e{IH`IN;Z{<}N)mmr0utE(d)3yX(`2eSt|vxBn*3o9=#FUuD;7B)5}Fa(o} zm%XczCzHJk<$odhUwFjKTuhv;99^v(?8*M&H8OT^a}}hZ_&3o1e*G7nu2$y%XC!-< z|DG0jf-L{;u&^?JVfo*|?5N{2-_xW6(MW8;50LQrg zU7(yX@(of)N#?@-jdGZ_{OR9#BFs>?qt44eR{mjwcw<}rcR?5y5A@e!_E94Ihb`a0 zoDh5=gKUGJVi`3IGWeej29`4a zvkd-!E`!}Aq9n%6xe~_xHh>SLTA7Y zrBWhCXVCo`iA96n@^~{TOzLyWDw)Hk`W4qy%pE?67CuCCUG*0k=F|^}mr-w}U&!28 zt*%Fy6lkT2c_ggHVn05ixH8)Hg`q%yLZ(%(S^|^w?b|okWV!F3w>Tj0({dz+Vn`_J z{NJ9B!Gu(4I*q0>J@c8VLO_w@_S(#q1qBPJQsIh1;bR&G@QMn&&aA@hk7fMexeh_V z(r&RoQ`bvn)S79uQ0&ji^8_KZ;EHX3PN0K)-jl;%4O)cn@9%d#SwOj=oiex�av zzY|ri0tprMUc`wp7-ojDheyKO)N_3lW=h3=xnVDp(?(z?`MVBw2nZ3t98=h(>xG-w zgy7g^u+R*wYLYAiY$Lr^>$Ww}xQRKzbMN>EE>EEla^0FvGe*O3K*g9?(t1)LL5_8c zEaDXCdkiJdR(>%a_j|ctuQ!3Su>2JsvA8Z1=)YX;NwQ7?oK(htSKyJGgj`agN{;DW+P3M^=n?-0iRL6p5tlRVf9H>*4j&Jc^Zq$KY zEOk=apGsq*zM{}Vr?}R99!L~1hgmY1h(QNFU_+i_YBZQi+v)@{H-l$*}RqM@bdR6XwvK2OT+IWU)ew4GjJT&2i+1(?`ByxrA9{z~<@fp<&|`!5(` zctaD!n7SjfVHAqXT>2P^_OD;We~PTY;0;M-A=P@PL#PXw_~{jV3l-3<5ggcF5A@7o zP!C^CO1Jul1k9L;1Wa8j$KyFVQc_ah9Jb>y!I;YiJK7^_!HhhZQ%Vt_Eh$ZjGYzDz zmu|DImPhJVg>4xem0n8k>t{n!@P2#YVNKyjFk}nc^~ZOLp_GhkO@cH_>JbGKh^BQp zrUO%B06af9IH;aEqXQg&mG)6)LqTX&0IvkMu;eZJppcM|z(5F%;#T&6jZUwlv~`5^ zh7Yjm_hi8H_=f?e!EC3KtTxc1;3wDyOr86pCByXOQ*_8E`j^oRTYVuK%<(SxJaHX_ zp1t)>FBNklrFefWbLb2??q{ppumdmKr5owNCWmboj-xX>pN}iSm1UqiLet3WEvb%=-)B z{>y9koXTh3cgLLGx0cHsVKQLSQso(rP3*zjEq%3HqGG*Tr$r`}F_N}XptfJgaSMWC zbSR$m;qHzTQ|8#(5&V1!*8-`PNxN$UKHf#ckP}N4ls?f<(~X)WG8Q7djB52y4VLZ4 z5^~e4mVE(>`7jhhZ@nGxwst*R!O=4h2neWU5QS~P2Jf}TG>IzdPod2D3^lHEQD`(ZLhAk1C7?u$(W}ZcgOz|M>Bvs}KTd9Q1Ejf>1;TkNXHI z`eUqIE@N^R(TvQnQD6^~1<~@TD*mZ8Ow-SSPC$bI0vsHiCW}cD#p7_0((R#vf1=UW zbP|q*mh!*z#t4zBM8qgypdSNtL`_V<`M47=T%lSXj9O*Un(q^5$Ct{ab1#6FG)q$!j z;|)_MUayb6d?MKihK(j#S z1Usf9^gsCukwU>v=J*h&$*OonR;%|~$8DV@#Q2SIg~r#{wzm8riAGUk2zUC^tD7Gh z3gfOQobS<0v4P(m4z+wKvqCmMm3A_QhePR=+LN`+Lz^gCVjkAfOi!OIGgzlBiwBO` za|h`KL@Pcs=uIr_tvu(e!Y>KS@Ml-$sWt*bs5j(^qfzMk4M|6j4iUBuQ=vc zp3LU`QO2ro77KmhHoySGio(ptNAR+?Iy`)O8?HDI@ipVK_m$t(J|N@Q_TpzlZm`_# z_|95z0wY97OC2kvAy=es9CLHCt&qb9`+=kwtM3>`#H%#&0}jo8qZ5Gz+2ZVVwW^jT z0v7}1?Avbbamo}HBm1D^{}n0@3oO*K@m+Z2xBfs=W!BS;Kj>RvHMT@Xab~Ahn+tfH z6SYrfq9dcNNU;AtiOVsansvBMfAk6(&X{Ell9LCUCtIxsVV;l0-7pJGI2|n|ObvbP zHT-5$Lav7fHX>6$B+_`#FwcO`asl6Y7|(XQ-;YoYOLBrVq{&>sIwFJJ7|{>ju=zUr ztjffaPU7Bq54Sep+?&qvPXt}1GZZwmQ?SzD`Fe+5N=#EgZ3&jKK9}rm6lU5?ymPBI z*NufZ7>U;Oac&L!J|l2Z64^^upw5>2`|prP|91G{52aX=+K8#2Xu^CxVMqAKVb5UE zUZd4mLjTF(pu>4Ds*xh;MqHSoca$msogyIOaBBA1X~+Qd*Bdk(6ux;K1EUL8fu{t* z`xD7MPwa(~?5sA~oZFNrDH)FO;?bn$QM#!ElwQySvZSW;)L;cbU^1mBuU;aDFPGIf zcz-;k*WqrKDVPKkL5B7^mq{I;_h=UM=pFoM*g9Cv3?vaU&)5iTPxio1fI&h zlQI1P{OQ_fzC~PqZfzG6vztd8ieCxWSJP5gPqia|kuHuJtk3%+u{_S#f&_$xfraAH zAQ-Iuxi^k4c%JvCTE&bSaa?-h1DO;)s8{Qxh2DbV%C$kpyS72->~S_}11|BA_$DbX zB%ikkf{5~buOn?R)3ab^$RTJr^P{Ee`q71s75iXcE4qzc2M$c%%j@0iombCoHDReIBpKcoA z%oHX)n*Y4KbCITIw=e>$NK>Poj`Cx`Wc0>3DW93`6}w-f4%os8dUCY3ivqCJ@S5rV zO`?f!?!%xq=c&&N(@Tg7iKIIbGxf0nrE7tX20?399oK9a2*1E?uWUpFmey~Ei{{hi zsY?xm^gCBI#>bz&uO+%o#-+t^E;uTrYON6B+LTotP4FqG1Tu1 z{Y4sou*cFn{>87Q)1pi_oDEiA<5n6MbBK^;#d(%aiRopR3m?hkY&?wIq>^z&-}!qz zRjj3?q@re=_s6u_oXzei+~ZY-KB@egJ}|jI1$8+LSO7Kq_6`)IEixmh*l#fu=(Hjs z-kjANnqQ8iT0~I%#XCQ;rBuzuB7DCZ-+sI5?Ko#pN{T@ky&OFrn#(b}<7*y zE&h;JRan>P>TAKuJ`oc6S6nro<~#M`|wjhK4&?nqNmzISpYKOOm^*+%*lKR(HVfH)S|2o`IV$8D33OV?kkO{Gv zvh)T2wtE~d*E_Xmi-nl!0?hiGgUKN!5;lGkr`HWGz3H+GC3|s#a#mvyZR2r1`)L1# zbkF~?M~}oI*cnv6F9}Y($Fk6?SEVzgH4saF`xe~%k*!bv9Tnja?BUe{#9)K0psud2 zj%!BJe|&HF1?|IalETHsr92Nlsh|au=c?!I{W~rlrm<7@Ulf1NkA3_@XR_ZQ$_L`C z^5kY{Fgznwhu}+2iG3na|;2#=mlq-wNqXChv?hnjl zFfSp%nhZ_E9D@(5r`N`97*$sM`e5=R#Pzme9spr%f>Jb(SWhYBp#T$q zLI^Z8lYf$U&7PfhH@gQr3u^Q__OprhDgKXvP6;XYW$xjp;e&z(H5q_TSuE!|CS{pK z+Z-f8k8MW}7PIDG4u1UlFZxB#(8mkvv#+gQCza8uDK((7i6(G!$=_Z;`)fha*5 zyv~iSB2$+r4Lna7Dt1tW9C!b)Dx2{vJO`<;KM~!uSzJ_9LjZ|uN$+|hL~Oxm9(zFi zc_6>j1HKEc@ND&D_EX2?5GheYCsH`N1CySR>&|9U5x;=iK>NvUb$@>kxu~$^nxWF{ zV1@c^zN>nxx7Z}o-2-yt80mHg=by zPQGAyoG}B4USEVewx8_+`iAe6t22p5)B65CWpTS_3w|6OyO}g!tUdZV+*#;WY9`)r z+nZw*nkV)y!@PT3Pi+7~;lubA$ECmiUH-zlv->wGLd&4t72yTniqP_N0L$Ws$g}Ra z^`)+3_XT%Fp0HvrHI?j`kmHy4efe=YhIr!1M5fh|q9IOT=hJOQKO9RG( zsn5Oq(Q7}YcyyV@l$pQT^iQhrcxK=B%40r{TtT=K!1Y7kOq)p`$mk)7gptSdF~^Ky z%1M9uB|~88q0iY;Vu*(4!HM7FE~A62HeNAJW&t16DrB@MZ1&>^s$P5N@lxcl@<*nX ze!0l-)Q~pW_;`Q6-xYx7t+Asw9{9Rktg`BC=2)+)^qw!^HKm>)*z>16Vc7n#uXspA zbaAa?gtWsM=VSjgUeN#UI2Q?E97hx?Brl6Qq%xFANzk`Dm(xbJLR$_$&Tx0Bn z5dx9_UOe>z{`Tn%$k9HWL)QKM`y+VZz+sIRH=#x2u0nAZL6sgFdFJl$<RTgzhY0{mMP8OZcDr_W z^{H5=WlPydy|UrB6$iUpJnL#aqfuXzHM`HCuWhF}mY+kxdo259{yDbI*)+aJ=^a$9 z)5rB5%fa*BXbWp!W|Ma|UH`2u_}yRpdf%_x{0?8Qh&z{0@FDO{ElR2cpSWZwX|u4j zqhL|M?m{RUc@K@?=9iw2ezi)azb0*Gv%8)k!u5DjbA|%WXi;=s+eM?NjE~p0ag&z+ zRIAZmFzl3e*zXAX6yYyR+=@}B)bCQj>>4MyYVFyp_@icnoj-^GC#vlUVllMdu-MBd zU#Y(r{vkh9l9+^CTlf0uS}xXoy#9b@HsgB-9*or&@C9+v{FBrJ;tk|INWL-2TF}$z!=?Df zY_?T8MS|{nzY$`i5d#^Lm|`$Ayqdk|r&rzA>KV)W{6GWRoa9Ft87|L)%9L8aOg>CN zA?*Sz2Hn1}Nc2vGdZ>&aDjFq*0e*IEQ7%8PV4z(n7i!HU*UFDtrL9FiTF&?@;|R`P z1~k5khEWhXU6stxU*a^_^7`#B+VPVRv-{t_Yp(rrg2m?~UqO&-JDf^nXt~&eS>M%( zeAv>zd3t=svG5zy_B(}HqkY{1s}@B)Sta&fmZHhZ!Q@Yj`p;^kQm(=slj(wEP0UakTn70Cu!sfckrF;t3c0^uU)X)t?0tShX^gX47}7OM<$@8 za3CL+#!Op<8jG&yM9`1=zl3-CZGJwzHS20jFFUt6Esi7SU5*?o{2sO{&9~tUi;R4p zc*Xfc^>3%Vu6h7czL_#Hyc(i*U$4=O#z?ee_?)xvG`|m{aupwH^qaiO9kcUWf*lA` z;rp=4?g>Q=a5j69im}=T1QJ$K<8GYE$%mEyV*XONN_lq5-D?TzJeKUIy(&6W*NSX$ ztyaazDH(0CFV6Vh5s}AwZ^!TagjkcG6=OiHuSBOP@4VvV2Vp>TAiiyTv7|6K-5AoM;@0=FxD;i6@2gz*(%o$ zPx0|Wadb#cv&byU=a8-R74xaE0{w$19P}Yguhae&3m<>nW!J%^>EU+&u7e||l#N{t-b|*&hO+A#ph<=v| zWdkdSDGmNvEFShTFd)g`DVS$nco{O&M1Bi}kfp8A?TJfnMluLJOsPJ_!>rWtt40=# z^jgK(;|gEwl?qq7?43neE1n=7Uq)W8*!b1S?6-qgSWeb=iWQxvIyai;51kgs#IL$y zun&VnJ3|6ZH(1(pn9wYTqm@pguYM-dV{?Kp`ZaG6)bw}K)14zrl)ao0VQFKeWzkS*~fB!pqJj(M;6K$FtEiHQ|YP!H@!}Y!f-q z=^f$W&~5p5l#e+F4D$>>GIz~N+(%6?dj)Y?k2dB%IO)qu=H5Y{!h~Q}kZVHrRrLQx zP%;__-F-fJEjCbCT(IoUp--0V^Df;kk_sWA@OM6p0=*vlIFv6d=ypZHiNv(`q?K#@ z40&vornGy8$?Z+fOI(*s!W@_n=Xvc(){o!&ikbM;SM{x7tY#oN`ABDW7I9c>ezRoDsn%KwXUe7-{G`>-bND*fO~oQ z5NLo+L2nIQy(VOcW59ngy9?qDAlbX$dM*&hyTnv$HD82Xk?Ha6s8Fl4Uu(qxZ0Apt zO0F$)1-%_8YE;j;kL1Bq{K?9X zpBXz9xD2_~2hqc{ZVlh-MhvmzvPq;M4#9s>aAX;>4d*M6apd)wAZj(*fw^&iUlhQk z;ZY|NjN5=P8^;;gcxo^Bo|TblQo@C7eUbp}eD11g8bHQ+ZUFv9xY%T(pg zWJ;s&_X&^IVreN?2P$*-^5bS+ChyCmO|4-dNurFKDdv?cCsOj)7$~#>yr+5`W1l!k zZ{N8R!Dauw!>92qZq@vypFBIe!bm_di2(KG(tIjAvkx3 z!OeObH`=F-&j)ha^w!!5Hm=;&5&e8^rHhEo?gf~En@9nvoo_IaO$buJxxMLI$DYMY zfQW@tKzCW+O2Z&hdSle4Hm}`jM%fIXfcg0+$-moOFt^Mx{=W6JI5rt+AXzexaN`@(s5TbS*>|4V=AL{mUm57O|aX!@ULPF39@*gr)C? z;(FslIem(LdJ8;z-c;ttS_c|dY02pZyU~HLthcL%Y>#W4L9_i(UkTTPN)CJ|>iRst z$ISFMvizXKC!`y|pO)TwV<;>My)V(CCtKuWv0wNQpBuayZ$rpnRHr62Ztjk#8V~p= zMpH?fdJqMXpO=#cB01m^z$` z`1$HACGRilZ{B%21oW@hiKA(Yxek-dcO0L_87Ze+u~Ezp2@sn@))VJ3LyjmA&8dNh1B$Fc3&$HY+l9}nN}`f) zP1hMeo}p*~Sp~i*Wu*wz+1rgFgvzAb1cifq+x)m5&Q$nl;rsmZ#JT<;n>CrnRP4a8 z->A^CdET{SYbg8nV+-njxA@ufK~Y!ZdAu9o$d|4hd)WM}n@zzY#2g{WA$-3Ta4c;7 z@;jF=Lr`NXXr8Oi!}x*6CrWA7Fb-}5t1P#pf$im}B88O&O7sufPZ$9*m_nT>%L|)3 zYs$`i_dGNM??-eKVAxS{zdS)7W`tDPS7c6n`)$0O!P%egEJJtO)!LnaMns0NV_XKV z1Ci4}zNR6eY22b&JS!1yE#mG$5em@sAz~T3#P4ruBtnHKU#tOkic?HIyU$3exje5d z)CX?{H|E+|e-JWJMzjMcCb-hv@ zpRMG}GbC-Z^cRtaNI|U>@&V{WTU*kqd+6imZg!PFH@-!nv+sZV11Rz+(wFQ(Rhh*l z;j6j}b0h`~xm$)`wdgK4)?UnFK_Uvgjh}76va{yqb=1k@QAOZb@4yNP*<3#9kH`W2;X8zUOJ5sMRj<#`yyZ_4$IC_+m6t*0ae)+QU z)2uaZCk&Ask5yvJ_-Wb%4|h=Sbrr}}FdJpW>Xs=VrM&e%WnSk=GjNA2WE@5%k%bXj zZ%57}DT+9jLnx#%8lB4+6CCOE*ipF1p2MKlqbkd|C*okTvhlW}$?>VOK>x=kwQ(`6 zHcKjx(E@?FQ7QuBj99T(uoS^3h%3h*o&#V5qJr|TwhZ!5lXWs`-3krn&GzbM{Iy=z z(-`d{C4p3{qsCK&9lVTm5-ggl&vB83+NDKmM-ip;8s1iaKmY*aVBKAQN$gZCalKdN zLRV8tL?~VaRB0}aMHck{?>^33s~Mp&pn37i>1lc=6ZKdlU8ChJ^gv&ylM(dteGds{ z2ehwZkr|fuc=Du=!389(3YRzlkaSKjMZ#a2VL_#=Jbxn%;kS#Ha*Dg7yL{Ay4m)|Y zD*|RyK&lh%X5>K^1w;sg7{+LOgtJ3F?GB(XXfRR0X;XjtHN4j^Y1faIV|Es_g1~!k z`ZWP&C+gVW?U0Sq79ohz)Efq5Z)H!s5zS#6PL?Xba3jG zZk_RsRZdYND-xLTmqTn-7Y{$|goQYn^a1*;eMS3=4s^WVig>mmC)e|0dSHAUEXhQi zep}QPbO@tFi$jqR1_jE(=7s0glm89CJxfSOFI;bF)4_P?zO|zhtFc#IJIW>I$jA~# zwvg=pMU@1X*ji4f7iH^Zh*VT!?LtTK9hxTnF+`eQlO+mPzWl(ogqDKAclV{vuIhBS zBX;`gPZx0?A=mZAQB5ka{O%f%Yv4X8bPwR-t?un)7Ig&na196)&lIwa7^di)wE%Y;OW z(898&g^oXK-L`53D9gBiSa9Ht6^d?BP|yNbY8CaUsa45PsLzhr{Ij&XWi@83*qQ$( zQ?kE|Dy%@pKOHA^XKr?=Fk4a#1rG5G6)sS0VZN`CEomf#(^} zC+hSXHC3ri0U!QubJOhNjo6s~oXuR&(g=ofoAQLlODaY&@31hmCxP{PVFa^vG=SNJ zKxVMt+U<`N`7>4zl(4NPWZTl|_{}PX3A_e4tkDvF@+|*-F%O$6GY%Z(J(9CdMYPH> zbJe>e@N$Vj*_YYzTOAJ0rlQDpi=@krho>K(Amp51SRolF>)rj03FN6+z zru-e)B{pE6=yi|==iy`nPx(Z7Klh*G`e{dbj$$?u@eY&9|UEy!TkK3%F8&4K^^ z+j3eWc4mEl5PuqV{|~jxaW?vG4kaZe@z~kb?h=9Ja6tc3!9sA~Xruuk5`;mr_ye|G zEbz@N?egzWuf@$mNtH^Ki5(h=an|1|gG9)knPO%qe~+B3w6RzqR5#m+Nl62a=gK)| zrCc$5!n+@;!7)lD0}dBPbyo-4`?CZo(F$WYFbDa`q;pMoWTrdXTD_&evpeMDHHvZA zQMQfXSB9Uh&83Cyj%NWF3fL7+&m9VW;7TQazy_)lbbX4#m=(7-*rOyV$hD%MlJdk0 z2lLR$Hl?J*CN09>u3vsM%>66uKz~YMGk4ze?A-Kp^h!h?99MsxWJ?qd14vIrDiTm) z$-lasG@WIo?T%@Z7U`S17s_1|*&QD(9^kD)ntBEgCQ#DyZ>sya@iefg)kkN#(lPzf zFSblog^QSY9&S6BK_gl43o9IDQWqT&&Y7)u)yH6m*8G~!{pt73x8tfWX#17(N^<&@ z9LPkG9{q&t1HVWGH3g!bbHUW!oOWir+!cl^@N(!r!KOApqp~pUYhSH|;ZeyXD;cPq zWeWH?r!na)EM6pr zpt2Bo9Iu^1bl3J+mnY>a$2`)`)Ha z&b8+k9nbP|cfet326!-Ll@yfkJjgJ{B}qG4CZH0xM#gGccOf z+8wupLkP@&{cJxr?J=~;tUeK&lydrO*)&`hM*S4$zf2a^=_T5^q>#;9Ptls3%#uK@Oy;cs(8FP#k+2M zNOy(=T9vT4jl z!jx8bV^XY)@M3b59eZz@;ScoDkCQnQw1U7JM)10xymqhoU2qYN<5I09j88|<;;az! zyRGh+z@}F1?pG#B8Z|38)mF|z9mqB|ayrKu>96j~uhllb!{aUDG;UE8zpL|jJNj`nYcX3g#Uu>21;f__i) z3gt#wHJ}b*u?gLgJFIZ*Mc-$!5sueW6sWa>S;Dz9mK)2eL){@h$RcUNt5M&e0z$v| zmx~jI$(I>t-y>#Xxxdx}0<3k>QorRaP@~b479)BK&Y`5*?lHjmIYJ8h(kbb*`WNPI zBaeT4*`)(YPgA_>mCE78ngGHRxNXi1GT>B+u0j~|_sdIqFfVFBldYE+c@b}^IWB(J z5u_GTJ^3+7H#(S(KSgGT2GH2Wm`SPln{5Z1>$3$8KFjzuOtYNyeGj1H=N3d}_&5kC z489AMcm{|?eujV=Ux_jb&StfE_&b)IZc( z-@=FTRQEY6Wfhuh)WW#W*GDmN(yD&mj{d}lIo9oB45M-Q`7#4%z5*#Kv@l1D6BO5# z%neg9G~zYlLWmX*j(gtoT+1P4^YlJ9bYq&4oU^*q;pol6%>`T}tcvtt(!UU` z^lDtgzTEF~yzs6R(hFV=BAtY6cek%c+T+o|iR8yCj|~3x{2-}>Kv)uWtSk|qFR#%1 zHpv--1~{}NxH^)uK+K+CezVUW`9LBj9(FL9*WoJWuZw_i&!k0>cOFeju9ZtUAb7ej zzqfz;C%n>@lM&-x)P9rvQKp0EF21YPCvl>h^Z|pmEuHwpOn{-#LjRzGzfM0G!%<(U9P=fsE*1Q;B7n zv$t=N4T4G-iH8jg6NJ8TdBGZ6knYlKYMX zsA?H*3!E3<)@6BRqzlfFQ0j)r19EA^(SIF>2d>o_rN=AA z3HmUhai@;%s*Qi2=vWTTYu6{P0 zuPS%0oIN1H#bpjts8_JwXpr!|$yG-O8+~B8zD4BW*X06f4Mz+$-8K&(_c3>39xxM+M*s!CH8yCNs)5DnyEfpoka1qI|5Nj z5^$<+e1x?2r&e2FVKJQ;b9_xrdUENABc5fJjI(7(6%_QWqpxXNnePt;@Ps zv2f?cgZ_#cu(PoP9GN`VOCh6VUZ_#qU7WV-@Td$ig!+cE+N{If`t@>qc$&fI{fOIN z*XP%(m+A?Yq=7X1@KmeQRl8gCcJb#+V#jW4I(Y)&(@*sNycMSRr^}gKOf_NY59hIx z2Yd|~GjL;REFSN#UXGYVr&-*!X*89pwd$S|Yd`Ai0rT3rZO%Tu{p)I#v}k;OFHG5N zZWqxkbJ=`tCRszW0gqRi;?c?B(0~ggPfL;A^?Q;90eT`2M%O|ky5Y^%tJ^m?>F3Qp zeNPQB`qTkE<<|#ZvnW9{4{(OJJB^;C*$~aej#}sMA}u$$k6V?Lsnr2d4pU}5Z|vzG zTz1%g)bgiwUMi&7x?SG<)cclW*Crkp+CKfB88btqT)~PO^Y92)qC>dEMt3G90T{;W z9YF_^n@f!}B;B913Mu;L?a4^SZk`XoMW!*qCTVbN$j!E(FOS7E(#qgJN*vhSL)1C$Fey5pHCJ+q$%g)!8_2n=y>36z>` zzf9b9h8F~~3`H2q+Md1AT^&`DNaV~%H9n*z&9{1%cCU;^vTlI7ip)lp)6W8P$yC$% zFUZ;_y{>orc?0w=4uqgsUuhgzYeQr(*wk%J((8I%@VQtB&!th&eRCT_ z9pjolAqlfUY68Z%aP^(^lLlX^DKQw@$qQ*+7 zsit8_rTPG-39KThBzJo3j-(XH9$X(Et_6pNw|i8U9nYMVFC*cSyx*m9abs@8t$!%% z$kJ%5V4;5dFNa+%X_S3F!56hgjT&9_b-9rA^+OvXH4Zgz0Ubk_>(k{EJix%0lELE( zpd#gMwy>vVs0=VB?^4k)AJbqv$^LCQP515Oh1xxCy-^331ufpiJDCr;jwkE zM`4`UTazk)D^SOx6}CZ~_O0P%iI17LERZw4#RKT~Tt1Qx2uh&cc#Jw{|K00~#52D5 zX(28OQNw2>9L>O~Gwf(Tu;VK?Iu>#!H`*fRpLH@BB<|fBp?vk9jWkoZjgptD_2%OU zFypK~Xg{YU?Khko@*HYn3B3(~_jyf~K4Bq`Af0M-FqyFgpEGrKJpMhL(7RBz;Xh6Q`XnB;>vtAw zHk~t4z>ZXn&O2~(eT_5pr9b?9yG4{+KCk{`rHTL8Q6-81_%;zm5FaD$lB*k)ydpWq z(KBpx`bQStz!Ja;(Q0{>*yGz~vmi%Z3i-u}W*W850y`0OjDmBo_$Ip_Aln2n)(0+4RFV;#Yf$q`B zt-S=@uT>vpM$<^MSZ@Lc5!qjrp0nHPHN(QEdHVyt*bsWqxuJR@4rI57;|!f4b}wyi z@=;QGoM)pDgfQ#6F5TCp7Lu(C3Ee~~@uOQPM0f#Ds8fS&;V-)?xxRGzw>xHf7G)KR zR}YSyun4;FTr+f>2|Vl)Czh0 z2JN(w+qG{bh+0w(vwMes>r}KeR2%o`bh0Z=T$f)WS?eYJ@Lo9&JLHx_L0c0eaygX#BvlpwDe@m-zE@ zNxYL55v*qtgnBpGTqQ54?#pSzt>fWjR%V+%mpoA$^qYq1Tsr}!DTd=$G9PhP(Wnn->#*q<3Nz9x_DtLshHKkXvH12oxWdNR@!na;PY8%~4yg z6i&v##|(??GDJ5Xr7shI_s~0~kiWDHPPu9-O`rw;-PAqW@U_$}RDzs3i&t_H5~Q4f z_XA<&FRh*aC8Kt!Vsy-@SP|u)cjC$Ev*l-``B}GB%n>(fRQ8ahw@nkNeKy4sEZDKh zE!+4fJg$dR_h%y|Gf&rhHuDuJ^~sAGtKgD5aCZ4dS0y-kut*{nToH22usJ(}dWK`i z1U&~E6>(=Fpx3@UY7(GjjD$u&XU(N_>*HvEd`jVNo2X^- zQP>(n>r&``q<{`C*(!UP`H4K?fV0eoHvfri-oCy*75|(&p`HERi&|vD{KZa(O(7HL z^!F^akLU4NJq)_0QiIeP#!O{c#OTdbZ3C%nM{$8w-PbPd7v*a#7*KE9 zW3$QJE^zUJ^;bAFl1?x7*oPT!5ftL6r8?bHm0lH!_&hCxwHjzDfY=mE2gD@1maGQ) zPO4V8`kekvgH|rxa*Fbnt3sYowTvOUC?!5FE-q1(9E;E8)*o=Lf76Ks-yhq(NjPns z^Cj6`mxJa)2~c5a&F!f7jB6U>=?AY>6RoM&pYt(ZgBx_Cqt zGifpE(s_hi8m&LA7F>}c+cANd^YziJ3DayOSz0fv%D33?Pw+sLmVLcuU#CslAEmKe z+CkK&xeAN4%W%Hg?DrvW&zDR>`R~tWqFRi!Vlf8H zD?(;!1THCjix@9mn+IUW!ItsdQYaTFe7M1jt7WdXn5<5vLX}R9q&7thN zZVX)dmc#2}eg;0K09ZD_xwQk)fGgq>Qp=44BjsEzcvWyYuO#Z8S)fL(zIeV?F%(?v z&A$>fIIDY@0lLlh0@|?9&qe$2AK|qxKNWO#7{q|Ka)jNlL61(UmuO1Ahido6&p`nn zSH`XQ{#tvUZ_jRH5Gs?bpfnmqlDq5x6?BM<>%GxR04wXx``b(UIWZR2&BJB@Wosfu zJ-4v&+bEzm+QUa@Qz7`zL1d*^WL3A!@H*}`pREU$d+BT6%K!uMz%=v%+c5{u<{SB! zz2%)DaQTkIdV5OyQbGcH%!`pT-t$B`a2%xJ$gTtSsGhCLn36ecbhZ|ki=aP6#>J%u zFa0e7RhJG-?1q+@RnopdVmC3mj(`STT<)H1oY)OpqK4-7j{=a+#xb%qq7~xd9Xf@f z*1I?uq5=oOwZ^#M0wQqP5(k#)UbLo7k-YkJHd`QBrqfOsmGPDyp9^&)jkSR52oqmq z`N>hTpa~Y(vE%5jL+5o9nb2=xqUp?sqZl@)Y0QcWqsRUCx zee`nHVymO)%0sN^O;-IB*n%CuKwsgzym!DWV}-;Ae_ zP_!eoR>kJq)$a}zaTOP^XsTA*+L{!OU|HwBoy?VE5fB`!!^Th%2?4(6AZN2x><|Nq z0u;1lp1l{t71~~8jVDm~%qF?NfH}hMp%aOh@F%m!o<$ppr&T9oz0^gv=m!YRqFEi6JC zGD3s)aB*59xSh@G|A@sAN=2|Yv&HqG6>vZ*&&?P%Mp^*Hv{BeSuwHAp2= z99f-DKVG-Zf{IZ=XC$Cws!Aa}19T*J!Ye`KqbrUzw`a4yj4{;EqC7ReiQ~cXB{{HG z?_U*Me|TTucyopwH43lM;y|D_;jo^g?aH~YBQ*H*f3{*JLm}Cy3$j(?A`-sWT(O8FSh$6en*26f*c1mJq&=6y5WNj=FijFO!=kn_L6P`Ec z-S5SG?z!fk>-ycl>;7He@7ZXh2c-p*FVk=84=8KZ=7>Sh8Sg(fi;21%;Vg1Mp6la% z0D)*XHgWg)Ib^qz%(H!1thoZujvg?G8w!IH!_g^8wTU$^K54r$w?(nwO5Eah7bwfmgdwI=OE(Sc=v z+s+&yKEJEHNQ&Ei-BEBW)Ln}hv~?$5Jh#q`_BAv=;qB{mNln$o8aQ@Lh5F=9w;)*o=u=@dAZLM zH<}#A%Kn*MM3SnjXOg8v6HFk4J~-14EsMXR@$(#pCs-2n3()`QEq8K7w;J*skpJeQ zpEap|O`fv){TKqeg}J`h>Z9GBS*Jb}Bb`@%$T8SCFaT3lM%_v%kB=80CKdb3I`sWT z?qEXNdLOLuCMc{_^~7e7ANKRF3CB8d*N)N>UoX+9skeJqejn;gh|F?s2{{JEdwO9c z^FQ1x_hXdd=aA;+$&coMtbiHP>OcIO zi};U4sNCJWhsMEa%_*F8Wchi!?~UxBx{_BXWxgr)f~~mE+ulZfE+QiAo;#TU z1FV`$v=*bz%=j4ftlcV$Hd}$#Y78Ze%DU`7hL(K7ru6gSy;a##wiQM%+`n$E^s5Z3 zIMrV1a7L;@+9*nfG7hLRk1m1-bb+^i_EyCuRK*pw`F2Na0ZTm^-_bOJ>+c%0Ml-ILa~nYEj?eH`cDD z4qGOS?sIBj85ciD*MD}H%(n(3rk!V6q}aQ18UX~qEn@8>DAibEB{%}bbrk=dNyhL@ z=cM+u<1Po_T%g8!?(>RJ9^{A^lr?BbswRghnTm2;FxlbKb(-&F8C|JvRteZ zGYErHZKJ-V%_u53bsUeW$JYfF%6E$654n2tubRSU1#b2${l=Mja-m`FV9amvR#I9Flw$ku*pZB&_rfx8C14b#mt^ii`H0_e^fu|egkgX;57HYk) z*lV9OG}1gj{^=j&qE0MbQ!I|rR96q_%hzx`3C_4bvyt@mS(F4+`FLB^3L)_jJk+zG zy6@|(#TPCg?rzL!#8Jg1s_O2uxQP$hI8DfJ3h#Y1b#|8Yaq~F)*wqX5nB2unRJN~P zoov-oQBfJDIBFduKGa?-3awkt(^~YZ4tBe{ApGj>QbBP0hIid`+;Jh&3xZ5^& z1X?tG2k(h)0R*pMTc49CqT$y`*WSdTt*4J_GJ;%%E|=p^wa+7P#)Nr}p)0TR^Tl3G z_g=6T7dCALEI)O-bniM%#nw-#@uuyss6p7u!1c>%Oe^sT`Dh!B)sal2r>|cmBqN5E z1SJrHxnkY-DFR>ZA*biSTFuzd-4P+RhX?3=XbJVQD!6K5`DmYj> z&y_7@NYKs3GtU1ZiAp)iT$rjCy5mrYWQf0Lr7&Ox^dkS!MNlv@E0yYkFGleh%pSik zt!m5a^b<-W&c%)b6GAW~5?j))IXYG8t$ZeX4M;h1`~WeJwmqV!`Y8c7X8DYo)(s#L z`7ciR=3Gir*%Br`tn6F!!z|}X$@{$8TqkJmVwONp{V!<=gxOot$kEnMOJhPf{5pnH z#`J`rr%ucJu@q$JBj-mwSKb7~X4YT3D$s&>?&H~X0bGe)KrZbC z%F_kh46~jpjstRG1jDWdoIs$fU*a?9QFlS3$!a}iHqHsYhqasZ#pX~veityF4XpPW z_K4-dv$C?C83q>iaH4FkzPBAA&QT|$1yKx8_JIQ30oAg#(_gk;%dFZBmsj}-WwUgy zdu-APnt6@yqGBgx0-V^T3hieKfA|UEKH6tHh0e$tDWPDH;4nbIF{|vJzaoz+?zmYu zCJrk3dwxO)0L#i%I3&R07v(fMW`C{OwQ6m!)XXq^spHy)UB`19+uuH2Ap&WG1UIP| zzhWOI3UgJt@p2Mm;N7@4BdVE5%l_mWrU`NSJlc@1Z#qWgCk2^ zixyj%kJKc3O4xm|J++5%QJ1jn0d|1`oj{;U*rJNMwV=Oo@JX2Ng2SsZF)@=j(*5Oz zm7Zx-stK36jU6w4n@s8M_Nw7-c@O6O@-!BS{?Wy6^7A_#25RNyl@+WyeA+G#xgj0B zjPi+bG$7$kOWBTdclaCQ*GsS;UhdJJoaNI5R+~hZ^rajrO?e_qKn+K;q*n(Wq}f#p<|>iwYe(N6$b_NnBDc++1cjlD4qd^ zHO|!4B0R^B^j|J>APIQJZGgO0uN(|^kxV*kX2$nB*RsjM zrrrEK_MXH)tu)uMhMa>+5vH0r!99%DtqY>N2XSe0bZB|RY$KZw89u9N^M;PxUl|pg9Wxe{L5Nu$q zCOV+m^~M4xI=l7OQOe-V4=Fm}%;eF7Iuvwf6?wdL_QCgWhiamg_b~r3ZFinX8b*MW zi3_1r8#+kA4_Q(c_$k6ys!fRz_=qpX zAT{*+*o>uscnQSBpi5uSY;x{L-3y;ar4?Z4a}NhGvRP(J5eyj$hWzjF|GoSF-^sK7 Z>$JRlWk?b0_>mjc5@Bur^0Irf-O^UqTCMhE;>lL4)9Yx5 zd%NA927RNt)kFI%n4%S&A-lfYc-`3CN^+wx?-A{5)T+49RAIPiqmiiPLT|bs18E&BU*6emB0%N<5h@s1q zwCA~y2t%Q6ep`>?5FU90G}MC&-yMa)bfO=?-J4Jhhn_UoTepxL8k@FGD5y^?(=SMCHfBj=x0B&#b4v2lo5H&BwI?&=Oyjf>x(v>< z)?9Pi-U-EJrdFod{y||O3>YjaG;AhK9s`SpkR8*%?t{^C|mA`xS|e0 z*jhu@8pRqmUNZP+Y5zpPT-F|jNNgdlqgDc+-Ty7>#ifb%CJ~-eeIQ| zE@iRTt|xoflZuD{k0@gkJM09`^g{Y^*;VIrM=FzdYrm0VlN#498f3|ba!zEynv4ON(Aq=SGa)a}Fq)fH-n}ZGpUu3%3%+0H{FR}HuIJ^4&YI_TpIKoUkwVV$&9}-UouT3n$vw?X za`b4)utpLWaJd;P-Y29t7K8jNtUh;{_L_LFrtcD=K26_c11MQ*Nrz%<=0g229^$_6 zBRBcanT#+oNZ$#ZK&U1Iv6V0VAsB3Y=JkiDKlEL=I%5$=GDg~t^ghWL*6MvZmA~Hr z)=~BW;NSb991z3kk3uPZb#vxTC0rBKKl<`&A|Mxg(G#LG=We%fiRXpKzEc%tBZ*fh-m>t_3MVdh^L|O`X3$jLF|sk zvGj++0hUE8E6Kw~1ZjO|h_p{4e5v*SZqw60-yF3&e`2_2Hw_D3I_0N8Emck^zR}zw zxhUrmg7qcs-A#M;lJ=Igx1_zNr#2)CA%ylyqUX&zXceC4`>&s?t zyO)0yqQ+e2Z@Xlb&6Gv%psXD!2F)tu2`$HHR*BITp+OVZ(BNSJALVCm9(Cv3gBX@h z5wQ(0H$pifM6EJRXSR(kLbzd2Vw0QFbY#+|ZWGH!2DeRSTO5Qf4jDJY1dN$t3lpshggK`zc1@OdL=;%uN>&BSBlJ3+hJIk ztNBzwp6JP0bAC=z**!TD&UHa>RzS%x;I8>pvtaWj>zy&WaJ@#AP@N*D?jRl)&}ovM zfA+f;7#Q%O?n-%+yDpjUS(pz!miaK|z;dvVa>kH>O>C#k2N8i`FlG@TB+8q}3uCMU zSy9X_f(_e9n2+fuA*SL!$}JPKMq$&|k%fTw2q%V(=q>XxMr_7xP7T}U_LBLQ%=aTR zpY>qoYfg2sNt6pvmFP0ad71HqiS8qlQTE_u)T&EHm2y>`x7^V2YBJ~V;?>Jc>sc}_ zo@QF@!Qke;{gVfH4uW+HQ>q)vcPs>Mgno`9QLPU#;}Z_~VjxN_ZWt=aX1@kYu^N_Af!;%dC{_*t6YRlo2*z8DNO&Qf zOEaCwjdMG(Ir6gLO(2dSi(!;9jLeGgQ4lAa)urgPes{iVMoU&+vhtFZe+*V$)|48O zRQnM%B}N}zQ!<%ua%v-!a)ZGV2(dY3ROgr)+~C+ks?^<77E%Q$gESY7sLlvgq)rGd zr^tGtnWl~nkRf27hQ*m-E{jIXqR|grG%~DZx%{c9jX#Fk9=%bBIfV08^G+Z$bw)X? zoeX0ONXmfV-^My694?gF*d+G<=VqRX2%))nl`YIxi%5o#kbHhVdq#3v63LSl^6w%N z^o@uFQy>l7LW)T^BobIv5p1Lr&JaX7rft~b%kW4H+-X#`3;y^8=8n=RRpAh~zs2@u{Y&IO{Z{0o_QKFJ zPqX#wOmpc}+?&uH4%vsGIN`~#qi3mkuBc-Ndl;FKY&24{_-|d;{G6>>|GQK*@ zr*elq>5p=e$ZP;I+s3dtB9stT8ZeQ6fP(R5FmV^c7o81MJa6)zsG<>C)>5W3Qj3)5SF z26u)AV_CR!#Y&s-hR&k}u*#8}U1q<#8N_jL@lJ%f5W1fOUwELm>z7QfI*=0#6qnZwwAqe74|d*q?@uw3|K9XI?Cu0@_SfcLyWQ<^ zdwg(=419L_)^kQ%@cZE47=IX_?VNaRXy4j4dOh;?9I)ZRVaZg)Qd=Jl0#x%K95 z_4nj3{+j7gd~#R+hY$;dg*?8d`|8f~ETl0p(GzkoEkrm+>Tl$&(%<9P464lHNUEdy zvc^__hWB!$_SL@Si|GZEZ_#~`Q&LyLdVq; zKJK}3m6y^}^@ZRemADXLoT#DBfu|u?`n3-WL|lomT9k$F$OpqGqA%&}Y3Foc;%X0rN?45<2z4BNLm*#AkVI2T)G>)~z1FwBQ_ zxip7Bnqwq??}w4vVzdaU`BDiLqZdk&Sv6(eel+#6b+Q707j!1>YcAGTvUL#EJUcjD z*Ar(uQh9eNGNH5-$lR`&M{-o)u7`ZDM*d4Dsylmg$cgZ#mG{tC!K`tO`hCOdM|m2m VP)2r5zG-D+<$oBADfa+I007jCD%=17 diff --git a/doc/design/images/duplicate_op2.png b/doc/design/images/duplicate_op2.png deleted file mode 100644 index 21cdd5cabf1b5203e1435a75b57770d2f702fa92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24748 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 YyDqUP34`MC<6j6U$*Ia#N*e|J2fdZVBme*a From a39c861530617552e7cfe1223ae9b7d9944ddb4a Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 16 Mar 2018 14:32:32 +0800 Subject: [PATCH 60/75] rm unused private field in profiler --- paddle/fluid/platform/profiler.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/paddle/fluid/platform/profiler.h b/paddle/fluid/platform/profiler.h index 030458f70a..de9a5cc20d 100644 --- a/paddle/fluid/platform/profiler.h +++ b/paddle/fluid/platform/profiler.h @@ -125,15 +125,11 @@ struct RecordBlock { private: std::string name_; uint64_t start_ns_; - int block_id_; }; struct RecordThread { explicit RecordThread(int thread_id); ~RecordThread(); - - private: - uint64_t start_ns_; }; // Return the event list of all threads. Assumed the returned value calls From 2f1778868efd93773db7f7bbfb0488e9895e97d3 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 16 Mar 2018 15:23:08 +0800 Subject: [PATCH 61/75] fix regularizer when gradient is None --- python/paddle/fluid/regularizer.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/python/paddle/fluid/regularizer.py b/python/paddle/fluid/regularizer.py index 029db7d2dd..604c6f9ab3 100644 --- a/python/paddle/fluid/regularizer.py +++ b/python/paddle/fluid/regularizer.py @@ -44,6 +44,11 @@ def append_regularization_ops(parameters_and_grads, regularization=None): """ params_and_grads = [] for param, grad in parameters_and_grads: + # If no gradient then we don't need to do anything + if grad is None: + params_and_grads.append((param, grad)) + continue + regularization_term = None if param.regularizer is not None: # Add variable for regularization term in grad block @@ -51,9 +56,8 @@ def append_regularization_ops(parameters_and_grads, regularization=None): elif regularization is not None: regularization_term = regularization(param, grad, grad.block) - # If no gradient or no regularization specified, - # then we don't need to do anything - if grad is None or regularization_term is None: + # If no regularization specified, then we don't need to do anything + if regularization_term is None: params_and_grads.append((param, grad)) continue From 371c53f88c1049cc03336ae7151cafd7ba1fb964 Mon Sep 17 00:00:00 2001 From: Liu Yiqun Date: Fri, 16 Mar 2018 07:29:48 +0000 Subject: [PATCH 62/75] Add profiling event in feed, fetch and load op. --- paddle/fluid/operators/conv_op.cc | 16 ++++++++-------- paddle/fluid/operators/feed_op.cc | 11 ++++++----- paddle/fluid/operators/fetch_op.cc | 5 ++++- paddle/fluid/operators/load_op.cc | 10 ++++++---- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/paddle/fluid/operators/conv_op.cc b/paddle/fluid/operators/conv_op.cc index e3fc21c90f..650bc92be2 100644 --- a/paddle/fluid/operators/conv_op.cc +++ b/paddle/fluid/operators/conv_op.cc @@ -70,16 +70,16 @@ void ConvOp::InferShape(framework::InferShapeContext* ctx) const { framework::OpKernelType ConvOp::GetExpectedKernelType( const framework::ExecutionContext& ctx) const { - framework::LibraryType library_{framework::LibraryType::kPlain}; + framework::LibraryType library{framework::LibraryType::kPlain}; #ifdef PADDLE_WITH_CUDA if (platform::CanCUDNNBeUsed(ctx)) { - library_ = framework::LibraryType::kCUDNN; + library = framework::LibraryType::kCUDNN; } #endif #ifdef PADDLE_WITH_MKLDNN - if (library_ == framework::LibraryType::kPlain && + if (library == framework::LibraryType::kPlain && platform::CanMKLDNNBeUsed(ctx)) { - library_ = framework::LibraryType::kMKLDNN; + library = framework::LibraryType::kMKLDNN; } #endif @@ -91,15 +91,15 @@ framework::OpKernelType ConvOp::GetExpectedKernelType( "input and filter data type should be consistent"); if (input_data_type == framework::proto::VarType::FP16) { - PADDLE_ENFORCE_EQ(library_, framework::LibraryType::kCUDNN, + PADDLE_ENFORCE_EQ(library, framework::LibraryType::kCUDNN, "float16 can only be used when CUDNN is used"); } std::string data_format = ctx.Attr("data_format"); // TODO(pzelazko-intel): enable MKLDNN layout when it's ready - framework::DataLayout layout_ = framework::StringToDataLayout(data_format); - return framework::OpKernelType(input_data_type, ctx.GetPlace(), layout_, - library_); + framework::DataLayout layout = framework::StringToDataLayout(data_format); + return framework::OpKernelType(input_data_type, ctx.GetPlace(), layout, + library); } Conv2DOpMaker::Conv2DOpMaker(OpProto* proto, OpAttrChecker* op_checker) diff --git a/paddle/fluid/operators/feed_op.cc b/paddle/fluid/operators/feed_op.cc index 90c31877f6..debacf07c3 100644 --- a/paddle/fluid/operators/feed_op.cc +++ b/paddle/fluid/operators/feed_op.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/feed_fetch_type.h" #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/framework/operator.h" +#include "paddle/fluid/platform/profiler.h" namespace paddle { namespace operators { @@ -28,6 +29,10 @@ class FeedOp : public framework::OperatorBase { private: void RunImpl(const framework::Scope &scope, const platform::Place &place) const override { + // get device context from pool + auto *dev_ctx = platform::DeviceContextPool::Instance().Get(place); + platform::RecordEvent record_event(Type(), dev_ctx); + auto feed_var_name = Input("X"); auto *feed_var = scope.FindVar(feed_var_name); @@ -50,14 +55,10 @@ class FeedOp : public framework::OperatorBase { auto &feed_item = feed_list.at(static_cast(col)); auto *out_item = out_var->GetMutable(); - // get device context from pool - platform::DeviceContextPool &pool = platform::DeviceContextPool::Instance(); - auto &dev_ctx = *pool.Get(place); - if (platform::is_same_place(feed_item.place(), place)) { out_item->ShareDataWith(feed_item); } else { - framework::TensorCopy(feed_item, place, dev_ctx, out_item); + framework::TensorCopy(feed_item, place, *dev_ctx, out_item); } out_item->set_lod(feed_item.lod()); } diff --git a/paddle/fluid/operators/fetch_op.cc b/paddle/fluid/operators/fetch_op.cc index d66f01d1b7..7c7f3e9059 100644 --- a/paddle/fluid/operators/fetch_op.cc +++ b/paddle/fluid/operators/fetch_op.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/feed_fetch_type.h" #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/fluid/platform/profiler.h" namespace paddle { namespace operators { @@ -29,6 +30,9 @@ class FetchOp : public framework::OperatorBase { private: void RunImpl(const framework::Scope &scope, const platform::Place &place) const override { + platform::DeviceContextPool &pool = platform::DeviceContextPool::Instance(); + platform::RecordEvent record_event(Type(), pool.Get(place)); + auto fetch_var_name = Input("X"); auto *fetch_var = scope.FindVar(fetch_var_name); PADDLE_ENFORCE(fetch_var != nullptr, @@ -53,7 +57,6 @@ class FetchOp : public framework::OperatorBase { // FIXME(yuyang18): Should we assume the fetch operator always generate // CPU outputs? - platform::DeviceContextPool &pool = platform::DeviceContextPool::Instance(); auto &dev_ctx = *pool.Get(src_item.place()); TensorCopy(src_item, platform::CPUPlace(), dev_ctx, &dst_item); diff --git a/paddle/fluid/operators/load_op.cc b/paddle/fluid/operators/load_op.cc index 05f809ac56..6ffe0bec5e 100644 --- a/paddle/fluid/operators/load_op.cc +++ b/paddle/fluid/operators/load_op.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/fluid/platform/profiler.h" namespace paddle { namespace operators { @@ -29,6 +30,9 @@ class LoadOp : public framework::OperatorBase { private: void RunImpl(const framework::Scope &scope, const platform::Place &place) const override { + auto *dev_ctx = platform::DeviceContextPool::Instance().Get(place); + platform::RecordEvent record_event(Type(), dev_ctx); + auto filename = Attr("file_path"); std::ifstream fin(filename); PADDLE_ENFORCE(static_cast(fin), "Cannot open file %s for load op", @@ -41,9 +45,7 @@ class LoadOp : public framework::OperatorBase { auto *tensor = out_var->GetMutable(); - platform::DeviceContextPool &pool = platform::DeviceContextPool::Instance(); - auto &dev_ctx = *pool.Get(place); - DeserializeFromStream(fin, tensor, dev_ctx); + DeserializeFromStream(fin, tensor, *dev_ctx); if (platform::is_gpu_place(place)) { // copy CPU to GPU @@ -55,7 +57,7 @@ class LoadOp : public framework::OperatorBase { out_var->Clear(); tensor = out_var->GetMutable(); tensor->set_lod(cpu_tensor.lod()); - TensorCopy(cpu_tensor, place, dev_ctx, tensor); + TensorCopy(cpu_tensor, place, *dev_ctx, tensor); } } }; From bfbc25bdb87423d5334d826b8b87ce5e61e29d70 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Fri, 16 Mar 2018 12:09:24 -0700 Subject: [PATCH 63/75] add fp16 pool2d support --- paddle/fluid/operators/pool_cudnn_op.cu.cc | 18 ++-- paddle/fluid/operators/pool_op.cc | 10 ++- .../paddle/fluid/tests/unittests/op_test.py | 6 +- .../fluid/tests/unittests/test_conv2d_op.py | 41 +++++---- .../fluid/tests/unittests/test_pool2d_op.py | 89 ++++++++++++++++++- 5 files changed, 131 insertions(+), 33 deletions(-) diff --git a/paddle/fluid/operators/pool_cudnn_op.cu.cc b/paddle/fluid/operators/pool_cudnn_op.cu.cc index 781d96981e..b91a0c4882 100644 --- a/paddle/fluid/operators/pool_cudnn_op.cu.cc +++ b/paddle/fluid/operators/pool_cudnn_op.cu.cc @@ -78,7 +78,8 @@ class PoolCUDNNOpKernel : public framework::OpKernel { // ------------------- cudnn pool algorithm --------------------- auto handle = ctx.cuda_device_context().cudnn_handle(); - T alpha = 1.0f, beta = 0.0f; + typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, + beta = 0.0f; PADDLE_ENFORCE(platform::dynload::cudnnPoolingForward( handle, cudnn_pool_desc, &alpha, cudnn_input_desc, input_data, &beta, @@ -144,7 +145,8 @@ class PoolCUDNNGradOpKernel : public framework::OpKernel { // ------------------- cudnn pool algorithm --------------------- auto handle = ctx.cuda_device_context().cudnn_handle(); - T alpha = 1.0f, beta = 0.0f; + typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, + beta = 0.0f; if (input_grad) { T *input_grad_data = input_grad->mutable_data(ctx.GetPlace()); @@ -162,17 +164,19 @@ class PoolCUDNNGradOpKernel : public framework::OpKernel { } // namespace paddle namespace ops = paddle::operators; +namespace plat = paddle::platform; -REGISTER_OP_KERNEL(pool2d, CUDNN, ::paddle::platform::CUDAPlace, +REGISTER_OP_KERNEL(pool2d, CUDNN, plat::CUDAPlace, ops::PoolCUDNNOpKernel, - ops::PoolCUDNNOpKernel); -REGISTER_OP_KERNEL(pool2d_grad, CUDNN, ::paddle::platform::CUDAPlace, + ops::PoolCUDNNOpKernel, + ops::PoolCUDNNOpKernel); +REGISTER_OP_KERNEL(pool2d_grad, CUDNN, plat::CUDAPlace, ops::PoolCUDNNGradOpKernel, ops::PoolCUDNNGradOpKernel); -REGISTER_OP_KERNEL(pool3d, CUDNN, ::paddle::platform::CUDAPlace, +REGISTER_OP_KERNEL(pool3d, CUDNN, plat::CUDAPlace, ops::PoolCUDNNOpKernel, ops::PoolCUDNNOpKernel); -REGISTER_OP_KERNEL(pool3d_grad, CUDNN, ::paddle::platform::CUDAPlace, +REGISTER_OP_KERNEL(pool3d_grad, CUDNN, plat::CUDAPlace, ops::PoolCUDNNGradOpKernel, ops::PoolCUDNNGradOpKernel); diff --git a/paddle/fluid/operators/pool_op.cc b/paddle/fluid/operators/pool_op.cc index d78da10016..b144ec5f7d 100644 --- a/paddle/fluid/operators/pool_op.cc +++ b/paddle/fluid/operators/pool_op.cc @@ -124,11 +124,15 @@ framework::OpKernelType PoolOpGrad::GetExpectedKernelType( } #endif + auto input_data_type = framework::ToDataType(ctx.Input("X")->type()); + if (input_data_type == framework::proto::VarType::FP16) { + PADDLE_ENFORCE_EQ(library_, framework::LibraryType::kCUDNN, + "float16 can only be used when CUDNN is used"); + } std::string data_format = ctx.Attr("data_format"); framework::DataLayout layout_ = framework::StringToDataLayout(data_format); - return framework::OpKernelType( - framework::ToDataType(ctx.Input("X")->type()), ctx.GetPlace(), - layout_, library_); + return framework::OpKernelType(input_data_type, ctx.GetPlace(), layout_, + library_); } Pool2dOpMaker::Pool2dOpMaker(OpProto *proto, OpAttrChecker *op_checker) diff --git a/python/paddle/fluid/tests/unittests/op_test.py b/python/paddle/fluid/tests/unittests/op_test.py index 6a42f763a6..8393f7827b 100644 --- a/python/paddle/fluid/tests/unittests/op_test.py +++ b/python/paddle/fluid/tests/unittests/op_test.py @@ -483,9 +483,9 @@ class OpTest(unittest.TestCase): input: input numpy array Returns: - input: if the dtype of input is np.float16, its dtype will be - changed to np.uint16 so that the internal memory will be - reinterpreted input as of dtype np.uint16. + input: The dtype of input will be changed to np.uint16 if + it is originally np.float16, such that the internal memory + of input will be reinterpreted as of dtype np.uint16. """ if input.dtype == np.float16: input.dtype = np.uint16 diff --git a/python/paddle/fluid/tests/unittests/test_conv2d_op.py b/python/paddle/fluid/tests/unittests/test_conv2d_op.py index 7913b98240..dfd83fdb3c 100644 --- a/python/paddle/fluid/tests/unittests/test_conv2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_conv2d_op.py @@ -65,10 +65,10 @@ class TestConv2dOp(OpTest): def setUp(self): self.use_cudnn = False self.use_mkldnn = False + self.dtype = np.float32 self.init_op_type() self.init_group() self.init_dilation() - self.init_data_type() self.init_test_case() conv2d_param = { @@ -159,9 +159,6 @@ class TestConv2dOp(OpTest): f_c = self.input_size[1] / self.groups self.filter_size = [6, f_c, 3, 3] - def init_data_type(self): - self.dtype = np.float32 - def init_dilation(self): self.dilations = [1, 1] @@ -246,8 +243,10 @@ class TestCUDNN(TestConv2dOp): self.op_type = "conv2d" -class TestFP16CUDNN(TestCUDNN): - def init_data_type(self): +class TestFP16CUDNN(TestConv2dOp): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -263,8 +262,10 @@ class TestCUDNNWithPad(TestWithPad): self.op_type = "conv2d" -class TestFP16CUDNNWithPad(TestCUDNNWithPad): - def init_data_type(self): +class TestFP16CUDNNWithPad(TestWithPad): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -280,8 +281,10 @@ class TestCUDNNWithStride(TestWithStride): self.op_type = "conv2d" -class TestFP16CUDNNWithStride(TestCUDNNWithStride): - def init_data_type(self): +class TestFP16CUDNNWithStride(TestWithStride): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -297,8 +300,10 @@ class TestCUDNNWithGroup(TestWithGroup): self.op_type = "conv2d" -class TestFP16CUDNNWithGroup(TestCUDNNWithGroup): - def init_data_type(self): +class TestFP16CUDNNWithGroup(TestWithGroup): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -314,8 +319,10 @@ class TestCUDNNWith1x1(TestWith1x1): self.op_type = "conv2d" -class TestFP16CUDNNWith1x1(TestCUDNNWith1x1): - def init_data_type(self): +class TestFP16CUDNNWith1x1(TestWith1x1): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -331,8 +338,10 @@ class TestCUDNNWithInput1x1Filter1x1(TestWithInput1x1Filter1x1): self.op_type = "conv2d" -class TestFP16CUDNNWithInput1x1Filter1x1(TestCUDNNWithInput1x1Filter1x1): - def init_data_type(self): +class TestFP16CUDNNWithInput1x1Filter1x1(TestWithInput1x1Filter1x1): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): diff --git a/python/paddle/fluid/tests/unittests/test_pool2d_op.py b/python/paddle/fluid/tests/unittests/test_pool2d_op.py index 964d78f196..76b15e409a 100644 --- a/python/paddle/fluid/tests/unittests/test_pool2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_pool2d_op.py @@ -80,6 +80,7 @@ class TestPool2d_Op(OpTest): def setUp(self): self.use_cudnn = False self.use_mkldnn = False + self.dtype = np.float32 self.init_test_case() self.init_global_pool() self.init_op_type() @@ -87,11 +88,11 @@ class TestPool2d_Op(OpTest): self.init_ceil_mode() if self.global_pool: self.paddings = [0 for _ in range(len(self.paddings))] - input = np.random.random(self.shape).astype("float32") + input = np.random.random(self.shape).astype(self.dtype) output = self.pool2D_forward_naive(input, self.ksize, self.strides, self.paddings, self.global_pool, - self.ceil_mode).astype("float32") - self.inputs = {'X': input} + self.ceil_mode).astype(self.dtype) + self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(input)} self.attrs = { 'strides': self.strides, @@ -105,7 +106,7 @@ class TestPool2d_Op(OpTest): 'data_format': 'AnyLayout' # TODO(dzhwinter) : should be fix latter } - self.outputs = {'Out': output.astype('float32')} + self.outputs = {'Out': output} def test_check_output(self): if self.use_cudnn: @@ -115,6 +116,8 @@ class TestPool2d_Op(OpTest): self.check_output() def test_check_grad(self): + if self.dtype == np.float16: + return if self.use_cudnn and self.pool_type != "max": place = core.CUDAPlace(0) self.check_grad_with_place( @@ -212,36 +215,114 @@ class TestCUDNNCase1(TestPool2d_Op): self.op_type = "pool2d" +class TestFP16CUDNNCase1(TestPool2d_Op): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCUDNNCase2(TestCase1): def init_op_type(self): self.use_cudnn = True self.op_type = "pool2d" +class TestFP16CUDNNCase2(TestCase1): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCUDNNCase3(TestCase2): def init_op_type(self): self.use_cudnn = True self.op_type = "pool2d" +class TestFP16CUDNNCase3(TestCase2): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCUDNNCase4(TestCase3): def init_op_type(self): self.use_cudnn = True self.op_type = "pool2d" +class TestFP16CUDNNCase4(TestCase3): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCUDNNCase5(TestCase4): def init_op_type(self): self.use_cudnn = True self.op_type = "pool2d" +class TestFP16CUDNNCase5(TestCase4): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCUDNNCase6(TestCase5): def init_op_type(self): self.use_cudnn = True self.op_type = "pool2d" +class TestFP16CUDNNCase6(TestCase5): + def init_op_type(self): + self.use_cudnn = True + self.op_type = "pool2d" + self.dtype = np.float16 + + def test_check_output(self): + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + if core.is_float16_supported(place): + self.check_output_with_place(place, atol=1e-3) + + class TestCeilModeCase1(TestCUDNNCase1): def init_ceil_mode(self): self.ceil_mode = True From 8ebfc153dd4be5d86f7c1129f24ca3fe78c7cb57 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Fri, 16 Mar 2018 15:58:11 -0700 Subject: [PATCH 64/75] update --- paddle/fluid/operators/conv_cudnn_op.cu.cc | 8 ++++---- paddle/fluid/operators/pool_cudnn_op.cu.cc | 10 ++++------ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/paddle/fluid/operators/conv_cudnn_op.cu.cc b/paddle/fluid/operators/conv_cudnn_op.cu.cc index 0ddbfdb4aa..a32aba4c1f 100644 --- a/paddle/fluid/operators/conv_cudnn_op.cu.cc +++ b/paddle/fluid/operators/conv_cudnn_op.cu.cc @@ -28,6 +28,8 @@ using ScopedTensorDescriptor = platform::ScopedTensorDescriptor; using ScopedFilterDescriptor = platform::ScopedFilterDescriptor; using ScopedConvolutionDescriptor = platform::ScopedConvolutionDescriptor; using DataLayout = platform::DataLayout; +template +using ScalingParamType = typename platform::CudnnDataType::ScalingParamType; static constexpr size_t kCONV_CUDNN_WORKSPACE_LIMIT_BYTES = static_cast(1024) * 1024 * 1024; @@ -134,8 +136,7 @@ class CUDNNConvOpKernel : public framework::OpKernel { platform::CUDAPlace gpu = boost::get(ctx.GetPlace()); cudnn_workspace = paddle::memory::Alloc(gpu, workspace_size_in_bytes); // ------------------- cudnn conv forward --------------------- - typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, - beta = 0.0f; + ScalingParamType alpha = 1.0f, beta = 0.0f; for (int i = 0; i < groups; i++) { PADDLE_ENFORCE(platform::dynload::cudnnConvolutionForward( handle, &alpha, cudnn_input_desc, input_data + i * group_offset_in, @@ -282,8 +283,7 @@ class CUDNNConvGradOpKernel : public framework::OpKernel { platform::CUDAPlace gpu = boost::get(ctx.GetPlace()); cudnn_workspace = paddle::memory::Alloc(gpu, workspace_size_in_bytes); // ------------------- cudnn conv backward data --------------------- - typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, - beta = 0.0f; + ScalingParamType alpha = 1.0f, beta = 0.0f; if (input_grad) { T* input_grad_data = input_grad->mutable_data(ctx.GetPlace()); // Because beta is zero, it is unnecessary to reset input_grad. diff --git a/paddle/fluid/operators/pool_cudnn_op.cu.cc b/paddle/fluid/operators/pool_cudnn_op.cu.cc index b91a0c4882..39c862b03a 100644 --- a/paddle/fluid/operators/pool_cudnn_op.cu.cc +++ b/paddle/fluid/operators/pool_cudnn_op.cu.cc @@ -24,6 +24,8 @@ using ScopedTensorDescriptor = platform::ScopedTensorDescriptor; using ScopedPoolingDescriptor = platform::ScopedPoolingDescriptor; using DataLayout = platform::DataLayout; using PoolingMode = platform::PoolingMode; +template +using ScalingParamType = typename platform::CudnnDataType::ScalingParamType; template class PoolCUDNNOpKernel : public framework::OpKernel { @@ -78,9 +80,7 @@ class PoolCUDNNOpKernel : public framework::OpKernel { // ------------------- cudnn pool algorithm --------------------- auto handle = ctx.cuda_device_context().cudnn_handle(); - typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, - beta = 0.0f; - + ScalingParamType alpha = 1.0f, beta = 0.0f; PADDLE_ENFORCE(platform::dynload::cudnnPoolingForward( handle, cudnn_pool_desc, &alpha, cudnn_input_desc, input_data, &beta, cudnn_output_desc, output_data)); @@ -145,9 +145,7 @@ class PoolCUDNNGradOpKernel : public framework::OpKernel { // ------------------- cudnn pool algorithm --------------------- auto handle = ctx.cuda_device_context().cudnn_handle(); - typename platform::CudnnDataType::ScalingParamType alpha = 1.0f, - beta = 0.0f; - + ScalingParamType alpha = 1.0f, beta = 0.0f; if (input_grad) { T *input_grad_data = input_grad->mutable_data(ctx.GetPlace()); // Because beta is zero, it is unnecessary to reset input_grad. From ab3543e35ee84ebbf9fe8c11eda7318f01ab7515 Mon Sep 17 00:00:00 2001 From: xuwei06 Date: Fri, 16 Mar 2018 14:29:49 -0700 Subject: [PATCH 65/75] Fix compilation for gcc5.4 The error is: paddle/fluid/operators/math/concat.cc:47:72: error: invalid initialization of non-const reference of type 'paddle::platform::CPUPlace&' from an rvalue of type 'paddle::platform::CPUPlace' auto& cpu_place = boost::get(context.GetPlace()); Should not use reference for cpu_place. --- paddle/fluid/operators/math/concat.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/operators/math/concat.cc b/paddle/fluid/operators/math/concat.cc index b542143419..b672c79afd 100644 --- a/paddle/fluid/operators/math/concat.cc +++ b/paddle/fluid/operators/math/concat.cc @@ -44,7 +44,7 @@ class ConcatFunctor { out_cols += t_cols; input_cols[i] = t_cols; } - auto& cpu_place = boost::get(context.GetPlace()); + auto cpu_place = boost::get(context.GetPlace()); // computation for (int k = 0; k < out_rows; ++k) { @@ -87,7 +87,7 @@ class ConcatGradFunctor { input_cols += t_cols; output_cols[i] = t_cols; } - auto& cpu_place = boost::get(context.GetPlace()); + auto cpu_place = boost::get(context.GetPlace()); // computation for (int k = 0; k < input_rows; ++k) { From dfec1df14f899b340dab26543fe425aa4bc200b4 Mon Sep 17 00:00:00 2001 From: Kexin Zhao Date: Fri, 16 Mar 2018 23:12:08 -0700 Subject: [PATCH 66/75] address comments --- .../fluid/tests/unittests/test_conv2d_op.py | 52 +++++-------- .../fluid/tests/unittests/test_pool2d_op.py | 76 ++++++------------- 2 files changed, 41 insertions(+), 87 deletions(-) diff --git a/python/paddle/fluid/tests/unittests/test_conv2d_op.py b/python/paddle/fluid/tests/unittests/test_conv2d_op.py index dfd83fdb3c..4b6e3fb69a 100644 --- a/python/paddle/fluid/tests/unittests/test_conv2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_conv2d_op.py @@ -63,10 +63,11 @@ def conv2d_forward_naive(input, filter, group, conv_param): class TestConv2dOp(OpTest): def setUp(self): + self.op_type = "conv2d" self.use_cudnn = False self.use_mkldnn = False self.dtype = np.float32 - self.init_op_type() + self.init_kernel_type() self.init_group() self.init_dilation() self.init_test_case() @@ -165,8 +166,8 @@ class TestConv2dOp(OpTest): def init_group(self): self.groups = 1 - def init_op_type(self): - self.op_type = "conv2d" + def init_kernel_type(self): + pass class TestWithPad(TestConv2dOp): @@ -238,15 +239,13 @@ class TestWithInput1x1Filter1x1(TestConv2dOp): #----------------Conv2dCUDNN---------------- class TestCUDNN(TestConv2dOp): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNN(TestConv2dOp): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -257,15 +256,13 @@ class TestFP16CUDNN(TestConv2dOp): class TestCUDNNWithPad(TestWithPad): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNNWithPad(TestWithPad): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -276,15 +273,13 @@ class TestFP16CUDNNWithPad(TestWithPad): class TestCUDNNWithStride(TestWithStride): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNNWithStride(TestWithStride): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -295,15 +290,13 @@ class TestFP16CUDNNWithStride(TestWithStride): class TestCUDNNWithGroup(TestWithGroup): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNNWithGroup(TestWithGroup): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -314,15 +307,13 @@ class TestFP16CUDNNWithGroup(TestWithGroup): class TestCUDNNWith1x1(TestWith1x1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNNWith1x1(TestWith1x1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -333,15 +324,13 @@ class TestFP16CUDNNWith1x1(TestWith1x1): class TestCUDNNWithInput1x1Filter1x1(TestWithInput1x1Filter1x1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" class TestFP16CUDNNWithInput1x1Filter1x1(TestWithInput1x1Filter1x1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "conv2d" self.dtype = np.float16 def test_check_output(self): @@ -384,21 +373,18 @@ class TestDepthwiseConv2(TestConv2dOp): #----------------Conv2dMKLDNN---------------- class TestMKLDNN(TestConv2dOp): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "conv2d" class TestMKLDNNWithPad(TestWithPad): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "conv2d" class TestMKLDNNWithStride(TestWithStride): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "conv2d" if __name__ == '__main__': diff --git a/python/paddle/fluid/tests/unittests/test_pool2d_op.py b/python/paddle/fluid/tests/unittests/test_pool2d_op.py index 76b15e409a..764fa575fb 100644 --- a/python/paddle/fluid/tests/unittests/test_pool2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_pool2d_op.py @@ -78,12 +78,13 @@ def avg_pool2D_forward_naive(x, class TestPool2d_Op(OpTest): def setUp(self): + self.op_type = "pool2d" self.use_cudnn = False self.use_mkldnn = False self.dtype = np.float32 self.init_test_case() self.init_global_pool() - self.init_op_type() + self.init_kernel_type() self.init_pool_type() self.init_ceil_mode() if self.global_pool: @@ -131,8 +132,8 @@ class TestPool2d_Op(OpTest): self.strides = [1, 1] self.paddings = [0, 0] - def init_op_type(self): - self.op_type = "pool2d" + def init_kernel_type(self): + pass def init_pool_type(self): self.pool_type = "avg" @@ -152,9 +153,6 @@ class TestCase1(TestPool2d_Op): self.strides = [1, 1] self.paddings = [0, 0] - def init_op_type(self): - self.op_type = "pool2d" - def init_pool_type(self): self.pool_type = "avg" self.pool2D_forward_naive = avg_pool2D_forward_naive @@ -170,9 +168,6 @@ class TestCase2(TestPool2d_Op): self.strides = [1, 1] self.paddings = [1, 1] - def init_op_type(self): - self.op_type = "pool2d" - def init_pool_type(self): self.pool_type = "avg" self.pool2D_forward_naive = avg_pool2D_forward_naive @@ -182,27 +177,18 @@ class TestCase2(TestPool2d_Op): class TestCase3(TestPool2d_Op): - def init_op_type(self): - self.op_type = "pool2d" - def init_pool_type(self): self.pool_type = "max" self.pool2D_forward_naive = max_pool2D_forward_naive class TestCase4(TestCase1): - def init_op_type(self): - self.op_type = "pool2d" - def init_pool_type(self): self.pool_type = "max" self.pool2D_forward_naive = max_pool2D_forward_naive class TestCase5(TestCase2): - def init_op_type(self): - self.op_type = "pool2d" - def init_pool_type(self): self.pool_type = "max" self.pool2D_forward_naive = max_pool2D_forward_naive @@ -210,15 +196,13 @@ class TestCase5(TestCase2): #--------------------test pool2d-------------------- class TestCUDNNCase1(TestPool2d_Op): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase1(TestPool2d_Op): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -229,15 +213,13 @@ class TestFP16CUDNNCase1(TestPool2d_Op): class TestCUDNNCase2(TestCase1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase2(TestCase1): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -248,15 +230,13 @@ class TestFP16CUDNNCase2(TestCase1): class TestCUDNNCase3(TestCase2): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase3(TestCase2): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -267,15 +247,13 @@ class TestFP16CUDNNCase3(TestCase2): class TestCUDNNCase4(TestCase3): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase4(TestCase3): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -286,15 +264,13 @@ class TestFP16CUDNNCase4(TestCase3): class TestCUDNNCase5(TestCase4): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase5(TestCase4): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -305,15 +281,13 @@ class TestFP16CUDNNCase5(TestCase4): class TestCUDNNCase6(TestCase5): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" class TestFP16CUDNNCase6(TestCase5): - def init_op_type(self): + def init_kernel_type(self): self.use_cudnn = True - self.op_type = "pool2d" self.dtype = np.float16 def test_check_output(self): @@ -345,39 +319,33 @@ class TestCeilModeCase4(TestCase2): #--------------------test pool2d MKLDNN-------------------- class TestMKLDNNCase1(TestPool2d_Op): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" class TestMKLDNNCase2(TestCase1): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" class TestMKLDNNCase3(TestCase2): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" class TestMKLDNNCase4(TestCase3): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" class TestMKLDNNCase5(TestCase4): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" class TestMKLDNNCase6(TestCase5): - def init_op_type(self): + def init_kernel_type(self): self.use_mkldnn = True - self.op_type = "pool2d" if __name__ == '__main__': From 01575e71b2136ca3be948372b8f3f29be7716811 Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Mon, 19 Mar 2018 16:39:11 +0800 Subject: [PATCH 67/75] move two images --- .../design/concepts}/images/multiple_reader.png | Bin .../design/concepts}/images/readers.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename doc/{design => fluid/design/concepts}/images/multiple_reader.png (100%) rename doc/{design => fluid/design/concepts}/images/readers.png (100%) diff --git a/doc/design/images/multiple_reader.png b/doc/fluid/design/concepts/images/multiple_reader.png similarity index 100% rename from doc/design/images/multiple_reader.png rename to doc/fluid/design/concepts/images/multiple_reader.png diff --git a/doc/design/images/readers.png b/doc/fluid/design/concepts/images/readers.png similarity index 100% rename from doc/design/images/readers.png rename to doc/fluid/design/concepts/images/readers.png From 332b665fc789efb7249ee9791af714842ea68e66 Mon Sep 17 00:00:00 2001 From: yangyaming Date: Mon, 19 Mar 2018 17:56:12 +0800 Subject: [PATCH 68/75] Enhanced cpp implementation and unit test. --- paddle/fluid/operators/lod_reset_op.cc | 79 +++++++++++-------- paddle/fluid/operators/lod_reset_op.cu | 8 +- paddle/fluid/operators/lod_reset_op.h | 43 ++++++---- .../tests/unittests/test_lod_reset_op.py | 25 +++++- 4 files changed, 101 insertions(+), 54 deletions(-) diff --git a/paddle/fluid/operators/lod_reset_op.cc b/paddle/fluid/operators/lod_reset_op.cc index 6a66297cb8..6599e183ef 100644 --- a/paddle/fluid/operators/lod_reset_op.cc +++ b/paddle/fluid/operators/lod_reset_op.cc @@ -22,17 +22,16 @@ class LoDResetOp : public framework::OperatorWithKernel { using framework::OperatorWithKernel::OperatorWithKernel; void InferShape(framework::InferShapeContext *ctx) const override { - // input check PADDLE_ENFORCE(ctx->HasInput("X"), "Input(X) of LoDResetOp should not be null."); PADDLE_ENFORCE(ctx->HasOutput("Out"), "Output(Out) of LoDResetOp should not be null."); - // If target LoD is not set form Input(), then it must be set from Attr(). - if (!ctx->HasInput("TargetLoD")) { + + if (!ctx->HasInput("Y")) { auto level0 = ctx->Attrs().Get>("target_lod"); - PADDLE_ENFORCE(level0.size() > 1, - "Target LoD is not found, should be set to be a valid one " - "through Input() or Attr()."); + PADDLE_ENFORCE_GT(level0.size(), 1, + "If Input(Y) is not provided, the target lod should be " + "specified by attribute `target_lod`."); } ctx->SetOutputDim("Out", ctx->GetInputDim("X")); } @@ -50,36 +49,42 @@ class LoDResetOpMaker : public framework::OpProtoAndCheckerMaker { public: LoDResetOpMaker(OpProto *proto, OpAttrChecker *op_checker) : OpProtoAndCheckerMaker(proto, op_checker) { - AddInput("X", "(LoDTensor) The input tensor of lod_reset operator."); - AddInput("TargetLoD", - "(Tensor, optional) The target level 0 LoD from Input().") + AddInput("X", + "(Tensor, LoDTensor) Input variable of LoDResetOp which " + "could be a Tensor or LoDTensor, where the data of output " + "variable inherits from."); + AddInput("Y", + "(Tensor, LoDTensor, optional) If provided, lod of Input(Y) would " + "be considered as the target lod first, otherwise data of " + "Input(Y) would be considered as the target lod.") .AsDispensable(); - AddOutput("Out", "(LoDTensor) The output tensor of lod_reset operator."); + AddOutput("Out", + "(LoDTensor) Output variable of LoDResetOp which should be a " + "LoDTensor."); AddAttr>("target_lod", "The target level 0 LoD from Attr().") .SetDefault(std::vector{}); AddComment(R"DOC(LoDReset operator -Reset LoD of Input(X) into a new one specified by Input(TargetLoD) or -Attr(target_lod), or set LoD for Input(X) if it doesn't have one. -Currently the lod_reset operator only supports the reset of level 0 LoD. -At least one of Input(TargetLoD) and Attr(target_lod) must be set, -and if both of them are set, Input(TargetLoD) will be chosen as the -target LoD. +Set LoD of `X` to a new one specified by `Y` or attribute `target_lod`. When `Y` +provided, `Y.lod` would be considered as target LoD first, otherwise `Y.data` +would be considered as target LoD. If `Y` is not provided, target LoD should be +specified by attribute `target_lod`. If target LoD is specified by `Y.data` or +`target_lod`, only one level LoD is supported. An example: -Given a float LoDTensor X with shape (6, 1), its transpose form represents - - [1.0, 2.0, 3.0, 4.0, 5.0, 6.0], -with LoD = [[0, 2, 5, 6]] and the three (transposed) sequences look like +Given a 1-level LoDTensor input(X) + X.lod = [[ 0, 2, 5 6 ]] + X.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + X.dims = [6, 1] - [1.0, 2.0], [3.0, 4.0, 5.0], [6.0]. +target_lod: [0, 4, 6] -If target LoD = [0, 4, 6], the lod_reset operator will reset the LoD and -the sequences that the LoDTensor Output(Out) contains becomes: - - [1.0, 2.0, 3.0, 4.0], [5.0, 6.0]. +then we get an 1-level LoDTensor + Out.lod = [[ 0, 4, 6 ]] + Out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + Out.dims = [6, 1] )DOC"); } @@ -90,10 +95,16 @@ class LoDResetGradOp : public framework::OperatorWithKernel { using framework::OperatorWithKernel::OperatorWithKernel; void InferShape(framework::InferShapeContext *ctx) const override { - PADDLE_ENFORCE(ctx->HasInput("X"), "Input(X) shouldn't be null."); + PADDLE_ENFORCE(ctx->HasInput("X"), + "Input(X) of LoDResetGradOp should not be null."); PADDLE_ENFORCE(ctx->HasInput(framework::GradVarName("Out")), - "Input(Out@GRAD) shouldn't be null."); - ctx->SetOutputDim(framework::GradVarName("X"), ctx->GetInputDim("X")); + "Input(Out@Grad) of LoDResetGradOp should not be null."); + + auto x_grad_name = framework::GradVarName("X"); + if (ctx->HasOutput(x_grad_name)) { + ctx->SetOutputDim(x_grad_name, ctx->GetInputDim("X")); + ctx->ShareLoD("X", /*->*/ x_grad_name); + } } protected: @@ -111,9 +122,13 @@ class LoDResetGradOp : public framework::OperatorWithKernel { namespace ops = paddle::operators; REGISTER_OP(lod_reset, ops::LoDResetOp, ops::LoDResetOpMaker, lod_reset_grad, ops::LoDResetGradOp); -REGISTER_OP_CPU_KERNEL(lod_reset, - ops::LoDResetKernel, - ops::LoDResetKernel); +REGISTER_OP_CPU_KERNEL( + lod_reset, ops::LoDResetKernel, + ops::LoDResetKernel, + ops::LoDResetKernel, + ops::LoDResetKernel); REGISTER_OP_CPU_KERNEL( lod_reset_grad, ops::LoDResetGradKernel, - ops::LoDResetGradKernel); + ops::LoDResetGradKernel, + ops::LoDResetGradKernel, + ops::LoDResetGradKernel); diff --git a/paddle/fluid/operators/lod_reset_op.cu b/paddle/fluid/operators/lod_reset_op.cu index b0e87a851a..888d4c12eb 100644 --- a/paddle/fluid/operators/lod_reset_op.cu +++ b/paddle/fluid/operators/lod_reset_op.cu @@ -18,8 +18,12 @@ namespace ops = paddle::operators; REGISTER_OP_CUDA_KERNEL( lod_reset, ops::LoDResetKernel, - ops::LoDResetKernel); + ops::LoDResetKernel, + ops::LoDResetKernel, + ops::LoDResetKernel); REGISTER_OP_CUDA_KERNEL( lod_reset_grad, ops::LoDResetGradKernel, - ops::LoDResetGradKernel); + ops::LoDResetGradKernel, + ops::LoDResetGradKernel, + ops::LoDResetGradKernel); diff --git a/paddle/fluid/operators/lod_reset_op.h b/paddle/fluid/operators/lod_reset_op.h index 8186d4f826..99f01c2a25 100644 --- a/paddle/fluid/operators/lod_reset_op.h +++ b/paddle/fluid/operators/lod_reset_op.h @@ -26,35 +26,46 @@ class LoDResetKernel : public framework::OpKernel { void Compute(const framework::ExecutionContext& ctx) const { auto* out = ctx.Output("Out"); auto* in = ctx.Input("X"); - auto* lod_t = ctx.Input("TargetLoD"); + auto* lod_t = ctx.Input("Y"); + + out->ShareDataWith(*in); std::vector level0; if (lod_t) { - auto* lod = lod_t->data(); - if (platform::is_gpu_place(ctx.GetPlace())) { - framework::Tensor lod_cpu; - framework::TensorCopy(*lod_t, platform::CPUPlace(), - ctx.device_context(), &lod_cpu); - lod = lod_cpu.data(); + if (lod_t->lod().size() > 0) { + auto y_lod = lod_t->lod(); + auto last_level = y_lod[y_lod.size() - 1]; + PADDLE_ENFORCE_EQ(last_level.back(), in->dims()[0], + "Last value of `Y`'s last level LoD should be equal " + "to the first dimension of `X`"); + out->set_lod(y_lod); + return; // early return, since lod already set + } else { + auto* lod = lod_t->data(); + if (platform::is_gpu_place(ctx.GetPlace())) { + framework::Tensor lod_cpu; + framework::TensorCopy(*lod_t, platform::CPUPlace(), + ctx.device_context(), &lod_cpu); + lod = lod_cpu.data(); + } + level0 = std::vector(lod, lod + lod_t->numel()); } - level0 = std::vector(lod, lod + lod_t->numel()); } else { level0 = ctx.Attr>("target_lod"); } - PADDLE_ENFORCE(level0.size() > 1UL, - "The size of target LoD should be greater than 1."); - PADDLE_ENFORCE(level0[0] == 0, - "Target LoD should be a vector starting from 0."); - PADDLE_ENFORCE(level0.back() == in->dims()[0], - "Target LoD should be a vector end with the " - "first dimension of Input(X)."); + PADDLE_ENFORCE_GT(level0.size(), 1UL, + "Size of target LoD should be greater than 1."); + PADDLE_ENFORCE_EQ(level0[0], 0, + "Target LoD should be a vector starting from 0."); + PADDLE_ENFORCE_EQ(level0.back(), in->dims()[0], + "Target LoD should be a vector end with the " + "first dimension of Input(X)."); for (size_t i = 0; i < level0.size() - 1; ++i) { PADDLE_ENFORCE(level0[i + 1] > level0[i], "Target LoD should be an ascending vector."); } - out->ShareDataWith(*in); // cast level0 to size_t std::vector ulevel0(level0.size(), 0); std::transform(level0.begin(), level0.end(), ulevel0.begin(), diff --git a/python/paddle/fluid/tests/unittests/test_lod_reset_op.py b/python/paddle/fluid/tests/unittests/test_lod_reset_op.py index 3bf8230f87..6b6d4c824a 100644 --- a/python/paddle/fluid/tests/unittests/test_lod_reset_op.py +++ b/python/paddle/fluid/tests/unittests/test_lod_reset_op.py @@ -42,7 +42,7 @@ class TestLodResetOpByInput(OpTest): target_lod_0 = [0, 4, 7, 10] self.inputs = { 'X': (x, lod), - 'TargetLoD': np.array([target_lod_0]).astype('int32') + 'Y': np.array([target_lod_0]).astype('int32') } self.outputs = {'Out': (x, [target_lod_0])} @@ -50,7 +50,7 @@ class TestLodResetOpByInput(OpTest): self.check_output() def test_check_grad(self): - self.check_grad(["X"], "Out", no_grad_set=set("TargetLoD")) + self.check_grad(["X"], "Out", no_grad_set=set("Y")) class TestLodResetOpBoth(OpTest): @@ -62,7 +62,7 @@ class TestLodResetOpBoth(OpTest): target_lod_0_in = [0, 4, 7, 10] self.inputs = { 'X': (x, lod), - 'TargetLoD': np.array(target_lod_0_in).astype('int32') + 'Y': np.array(target_lod_0_in).astype('int32') } self.attrs = {'target_lod': target_lod_0_attr} self.outputs = {'Out': (x, [target_lod_0_in])} @@ -71,7 +71,24 @@ class TestLodResetOpBoth(OpTest): self.check_output() def test_check_grad(self): - self.check_grad(["X"], "Out", no_grad_set=set("TargetLoD")) + self.check_grad(["X"], "Out", no_grad_set=set("Y")) + + +class TestLodResetOpYIsLoDTensor(OpTest): + def setUp(self): + self.op_type = "lod_reset" + x = np.random.random((10, 20)).astype("float32") + lod = [[0, 3, 5, 10]] + y = np.random.random((10, 10)).astype("float32") + target_lod_0 = [[0, 4, 7, 10]] + self.inputs = {'X': (x, lod), 'Y': (y, target_lod_0)} + self.outputs = {'Out': (x, target_lod_0)} + + def test_check_output(self): + self.check_output() + + def test_check_grad(self): + self.check_grad(["X"], "Out", no_grad_set=set("Y")) if __name__ == '__main__': From 18ac6947d08e5cd25ea53c2d90363bc27e009b19 Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Mon, 19 Mar 2018 01:23:47 -0700 Subject: [PATCH 69/75] Enable P2P memory copy On k40 with 4 devices, time reduces from ~4.0 to ~3.8+, should be more obvious on better hardware --- paddle/fluid/framework/init.cc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/framework/init.cc b/paddle/fluid/framework/init.cc index 2e0a224ff5..d077318b75 100644 --- a/paddle/fluid/framework/init.cc +++ b/paddle/fluid/framework/init.cc @@ -26,6 +26,7 @@ namespace paddle { namespace framework { std::once_flag gflags_init_flag; +std::once_flag p2p_init_flag; void InitGflags(std::vector &argv) { std::call_once(gflags_init_flag, [&]() { @@ -42,6 +43,25 @@ void InitGflags(std::vector &argv) { }); } +void InitP2P(int count) { + std::call_once(p2p_init_flag, [&]() { + for (int i = 0; i < count; ++i) { + for (int j = 0; j < count; ++j) { + if (i == j) continue; + int can_acess = -1; + PADDLE_ENFORCE(cudaDeviceCanAccessPeer(&can_acess, i, j), + "Failed to test P2P access."); + if (can_acess != 1) { + LOG(WARNING) << "Cannot enable P2P access from " << i << " to " << j; + } else { + cudaSetDevice(i); + cudaDeviceEnablePeerAccess(j, 0); + } + } + } + }); +} + void InitDevices() { /*Init all avaiable devices by default */ @@ -63,7 +83,7 @@ void InitDevices() { for (int i = 0; i < count; ++i) { places.emplace_back(platform::CUDAPlace(i)); } - + InitP2P(count); platform::DeviceContextPool::Init(places); } From ce55975bb51d4105f6cb15dd6daf11485a3ae635 Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Mon, 19 Mar 2018 03:03:21 -0700 Subject: [PATCH 70/75] fix --- paddle/fluid/framework/init.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paddle/fluid/framework/init.cc b/paddle/fluid/framework/init.cc index d077318b75..3c0d93642a 100644 --- a/paddle/fluid/framework/init.cc +++ b/paddle/fluid/framework/init.cc @@ -44,6 +44,7 @@ void InitGflags(std::vector &argv) { } void InitP2P(int count) { +#ifdef PADDLE_WITH_CUDA std::call_once(p2p_init_flag, [&]() { for (int i = 0; i < count; ++i) { for (int j = 0; j < count; ++j) { @@ -60,6 +61,7 @@ void InitP2P(int count) { } } }); +#endif } void InitDevices() { From 961151f17a2928943fbf82c57c85cfabd36b8ee7 Mon Sep 17 00:00:00 2001 From: Liu Yiqun Date: Mon, 19 Mar 2018 11:36:12 +0000 Subject: [PATCH 71/75] Disable the link flags on Mac. --- paddle/fluid/inference/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/inference/CMakeLists.txt b/paddle/fluid/inference/CMakeLists.txt index f4609a3b5b..aff427310f 100644 --- a/paddle/fluid/inference/CMakeLists.txt +++ b/paddle/fluid/inference/CMakeLists.txt @@ -13,8 +13,11 @@ cc_library(paddle_fluid_shared SHARED SRCS io.cc DEPS ARCHIVE_START ${GLOB_OP_LIB} ${FLUID_CORE_MODULES} ARCHIVE_END) set_target_properties(paddle_fluid_shared PROPERTIES OUTPUT_NAME paddle_fluid) -set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/paddle_fluid.map") -set_target_properties(paddle_fluid_shared PROPERTIES LINK_FLAGS "${LINK_FLAGS}") +if(NOT APPLE) + # TODO(liuyiqun): Temporarily disable the link flag because it is not support on Mac. + set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/paddle_fluid.map") + set_target_properties(paddle_fluid_shared PROPERTIES LINK_FLAGS "${LINK_FLAGS}") +endif() if(WITH_TESTING) add_subdirectory(tests/book) From 869a6f9cea8ebccda5701009fe61f3b9f684e43d Mon Sep 17 00:00:00 2001 From: yangyaming Date: Mon, 19 Mar 2018 21:49:33 +0800 Subject: [PATCH 72/75] Add python wrapper. --- paddle/fluid/operators/lod_reset_op.cc | 61 ++++++++--- python/paddle/fluid/layers/nn.py | 100 +++++++++++++++++- .../fluid/tests/unittests/test_layers.py | 9 ++ 3 files changed, 155 insertions(+), 15 deletions(-) diff --git a/paddle/fluid/operators/lod_reset_op.cc b/paddle/fluid/operators/lod_reset_op.cc index 6599e183ef..7d5687f2d0 100644 --- a/paddle/fluid/operators/lod_reset_op.cc +++ b/paddle/fluid/operators/lod_reset_op.cc @@ -30,7 +30,7 @@ class LoDResetOp : public framework::OperatorWithKernel { if (!ctx->HasInput("Y")) { auto level0 = ctx->Attrs().Get>("target_lod"); PADDLE_ENFORCE_GT(level0.size(), 1, - "If Input(Y) is not provided, the target lod should be " + "If Input(Y) not provided, the target lod should be " "specified by attribute `target_lod`."); } ctx->SetOutputDim("Out", ctx->GetInputDim("X")); @@ -54,9 +54,10 @@ class LoDResetOpMaker : public framework::OpProtoAndCheckerMaker { "could be a Tensor or LoDTensor, where the data of output " "variable inherits from."); AddInput("Y", - "(Tensor, LoDTensor, optional) If provided, lod of Input(Y) would " - "be considered as the target lod first, otherwise data of " - "Input(Y) would be considered as the target lod.") + "(Tensor, LoDTensor, optional) If provided and Y is LoDTensor, " + "lod of Input(Y) would be considered as the target lod first, " + "otherwise data of Input(Y) would be considered as the " + "target lod.") .AsDispensable(); AddOutput("Out", "(LoDTensor) Output variable of LoDResetOp which should be a " @@ -67,25 +68,59 @@ class LoDResetOpMaker : public framework::OpProtoAndCheckerMaker { AddComment(R"DOC(LoDReset operator Set LoD of `X` to a new one specified by `Y` or attribute `target_lod`. When `Y` -provided, `Y.lod` would be considered as target LoD first, otherwise `Y.data` -would be considered as target LoD. If `Y` is not provided, target LoD should be -specified by attribute `target_lod`. If target LoD is specified by `Y.data` or -`target_lod`, only one level LoD is supported. +provided and `Y` is a LoDTensor, `Y.lod` would be considered as target LoD +first, otherwise `Y.data` would be considered as target LoD. If `Y` is not +provided, target LoD should be specified by attribute `target_lod`. +If target LoD is specified by `Y.data` or `target_lod`, only one level LoD +is supported. -An example: +Example 1: -Given a 1-level LoDTensor input(X) - X.lod = [[ 0, 2, 5 6 ]] +Given a 1-level LoDTensor input(X): + X.lod = [[ 0, 2, 5 6 ]] X.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] X.dims = [6, 1] -target_lod: [0, 4, 6] +attr(target_lod): [0, 4, 6] -then we get an 1-level LoDTensor +then we get a 1-level LoDTensor: Out.lod = [[ 0, 4, 6 ]] Out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] Out.dims = [6, 1] +Example 2: + +Given a 1-level LoDTensor input(X): + X.lod = [[ 0, 2, 5 6 ]] + X.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + X.dims = [6, 1] + +input(Y) is a Tensor: + Y.data = [[0, 2, 6]] + Y.dims = [1, 3] + +then we get a 1-level LoDTensor: + Out.lod = [[ 0, 2, 6 ]] + Out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + Out.dims = [6, 1] + +Example 3: + +Given a 1-level LoDTensor input(X): + X.lod = [[ 0, 2, 5 6 ]] + X.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + X.dims = [6, 1] + +input(Y) is a 2-level LoDTensor: + Y.lod = [[0, 2, 4], [0, 2, 5, 6]] + Y.data = [[1.1], [2.1], [3.1], [4.1], [5.1], [6.1]] + Y.dims = [6, 1] + +then we get a 2-level LoDTensor: + Out.lod = [[0, 2, 4], [0, 2, 5, 6]] + Out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + Out.dims = [6, 1] + )DOC"); } }; diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index bf161d6618..8dced4bbfc 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -73,6 +73,7 @@ __all__ = [ 'smooth_l1', 'one_hot', 'autoincreased_step_counter', + 'lod_reset', ] @@ -2225,7 +2226,7 @@ def reduce_prod(input, dim=None, keep_dim=False, name=None): keep_dim (bool|False): Whether to reserve the reduced dimension in the output Tensor. The result tensor will have one fewer dimension than the :attr:`input` unless :attr:`keep_dim` is true. - name(str|None): A name for this layer(optional). If set None, the + name(str|None): A name for this layer(optional). If set None, the layer will be named automatically. Returns: @@ -2241,7 +2242,7 @@ def reduce_prod(input, dim=None, keep_dim=False, name=None): fluid.layers.reduce_prod(x) # [0.0002268] fluid.layers.reduce_prod(x, dim=0) # [0.02, 0.06, 0.3, 0.63] fluid.layers.reduce_prod(x, dim=-1) # [0.027, 0.0084] - fluid.layers.reduce_prod(x, dim=1, + fluid.layers.reduce_prod(x, dim=1, keep_dim=True) # [[0.027], [0.0084]] """ helper = LayerHelper('reduce_prod', **locals()) @@ -3292,3 +3293,98 @@ def autoincreased_step_counter(counter_name=None, begin=1, step=1): counter.stop_gradient = True return counter + + +def lod_reset(x, y, target_lod=None): + """ + LoD Reset Operator. Set LoD of **x** to a new one specified by **y** or + **target_lod**. When **y** provided, **y.lod** would be considered as target + LoD first, otherwise **y.data** would be considered as target LoD. If **y** + is not provided, target LoD should be specified by **target_lod**. + If target LoD is specified by **Y.data** or **target_lod**, only one level + LoD is supported. + + .. code-block:: text + + * Example 1: + + Given a 1-level LoDTensor x: + x.lod = [[ 0, 2, 5 6 ]] + x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + x.dims = [6, 1] + + target_lod: [0, 4, 6] + + then we get a 1-level LoDTensor: + out.lod = [[ 0, 4, 6 ]] + out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + out.dims = [6, 1] + + * Example 2: + + Given a 1-level LoDTensor x: + x.lod = [[ 0, 2, 5 6 ]] + x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + x.dims = [6, 1] + + y is a Tensor: + y.data = [[0, 2, 6]] + y.dims = [1, 3] + + then we get a 1-level LoDTensor: + out.lod = [[ 0, 2, 6 ]] + out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + out.dims = [6, 1] + + * Example 3: + + Given a 1-level LoDTensor x: + x.lod = [[ 0, 2, 5 6 ]] + x.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + x.dims = [6, 1] + + y is a 2-level LoDTensor: + y.lod = [[0, 2, 4], [0, 2, 5, 6]] + y.data = [[1.1], [2.1], [3.1], [4.1], [5.1], [6.1]] + y.dims = [6, 1] + + then we get a 2-level LoDTensor: + out.lod = [[0, 2, 4], [0, 2, 5, 6]] + out.data = [[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]] + out.dims = [6, 1] + + Args: + x (Variable): Input variable which could be a Tensor or LodTensor. + y (Variable|None): If provided, output's LoD would be derived from y. + target_lod (list|tuple|None): One level LoD which should be considered + as target LoD when y not provided. + + Returns: + Variable: Output variable with LoD specified by this operator. + + Raises: + ValueError: If y and target_lod are both None. + + Examples: + .. code-block:: python + + x = layers.data(name='x', shape=[10]) + y = layers.data(name='y', shape=[10, 20], lod_level=2) + out = layers.lod_reset(x=x, y=y) + """ + helper = LayerHelper("lod_reset", **locals()) + out = helper.create_tmp_variable(dtype=x.dtype) + if y is not None: + helper.append_op( + type="lod_reset", inputs={'X': x, + 'Y': y}, outputs={'Out': out}) + elif target_lod is not None: + helper.append_op( + type="lod_reset", + inputs={'X': x}, + attrs={'target_lod': target_lod}, + outputs={'Out': out}) + else: + raise ValueError("y and target_lod should not be both None.") + + return out diff --git a/python/paddle/fluid/tests/unittests/test_layers.py b/python/paddle/fluid/tests/unittests/test_layers.py index 90d70aa39f..744a762ae7 100644 --- a/python/paddle/fluid/tests/unittests/test_layers.py +++ b/python/paddle/fluid/tests/unittests/test_layers.py @@ -327,6 +327,15 @@ class TestBook(unittest.TestCase): self.assertIsNotNone(loss) print(str(program)) + def test_lod_reset(self): + program = Program() + with program_guard(program): + x = layers.data(name='x', shape=[10], dtype='float32') + y = layers.data( + name='y', shape=[10, 20], dtype='float32', lod_level=2) + print(layers.lod_reset(x=x, y=y)) + print(str(program)) + if __name__ == '__main__': unittest.main() From cd11b1bd5ce30c91166bfb131e8f2618703e13c8 Mon Sep 17 00:00:00 2001 From: yangyaming Date: Mon, 19 Mar 2018 22:15:20 +0800 Subject: [PATCH 73/75] Set default value of y to None. --- python/paddle/fluid/layers/nn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 8dced4bbfc..9656dcf94f 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -3295,7 +3295,7 @@ def autoincreased_step_counter(counter_name=None, begin=1, step=1): return counter -def lod_reset(x, y, target_lod=None): +def lod_reset(x, y=None, target_lod=None): """ LoD Reset Operator. Set LoD of **x** to a new one specified by **y** or **target_lod**. When **y** provided, **y.lod** would be considered as target From 35c373db113fbc782ca71225d2cb4d464e995194 Mon Sep 17 00:00:00 2001 From: Abhinav Arora Date: Mon, 19 Mar 2018 09:32:35 -0700 Subject: [PATCH 74/75] Support copy in Fluid channels (#9138) * Support copy in Fluid channels * Address PR review comments --- python/paddle/fluid/concurrency.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/python/paddle/fluid/concurrency.py b/python/paddle/fluid/concurrency.py index 535e881c42..0fc4981a8e 100644 --- a/python/paddle/fluid/concurrency.py +++ b/python/paddle/fluid/concurrency.py @@ -131,7 +131,7 @@ def make_channel(dtype, capacity=0): return channel -def channel_send(channel, value): +def channel_send(channel, value, copy=False): """ Sends a value through a channel variable. Used by an unbuffered or buffered channel to pass data from within or to a concurrent Go block, where @@ -141,6 +141,8 @@ def channel_send(channel, value): channel (Variable|Channel): Channel variable created using `make_channel`. value (Variable): Value to send to channel + copy (bool): Copy data while channel send. If False, then data + is moved. The input cannot be used after move. Returns: Variable: The boolean status on whether or not the channel successfully sent the passed value. @@ -162,11 +164,26 @@ def channel_send(channel, value): type=core.VarDesc.VarType.LOD_TENSOR, dtype=core.VarDesc.VarType.BOOL) + X = value + + if copy is True: + copied_X = helper.create_variable( + name=unique_name.generate(value.name + '_copy'), + type=value.type, + dtype=value.dtype, + shape=value.shape, + lod_level=value.lod_level, + capacity=value.capacity) + + assign_op = channel_send_block.append_op( + type="assign_op", inputs={"X": value}, outputs={"Out": copied_X}) + X = copied_X + channel_send_op = channel_send_block.append_op( type="channel_send", inputs={ "Channel": channel, - "X": value, + "X": X, }, outputs={"Status": status}) From 597ba3f3f25b44cb645e3a4b230239aed3749657 Mon Sep 17 00:00:00 2001 From: chengduo Date: Tue, 20 Mar 2018 01:08:10 +0800 Subject: [PATCH 75/75] add more times close test (#9215) --- paddle/fluid/framework/channel_test.cc | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/paddle/fluid/framework/channel_test.cc b/paddle/fluid/framework/channel_test.cc index edfb41c724..73be5cdbe2 100644 --- a/paddle/fluid/framework/channel_test.cc +++ b/paddle/fluid/framework/channel_test.cc @@ -871,3 +871,67 @@ TEST(ChannelHolder, ChannelHolderDestroyUnblocksSendersTest) { ch->Reset(0); ChannelHolderDestroyUnblockSenders(ch, false); } + +// This tests that closing a channelholder many times. +void ChannelHolderManyTimesClose(ChannelHolder *ch) { + const int num_threads = 15; + std::thread t[num_threads]; + bool thread_ended[num_threads]; + + // Launches threads that try to send data to channel. + for (size_t i = 0; i < num_threads / 3; i++) { + thread_ended[i] = false; + t[i] = std::thread( + [&](bool *ended) { + int data = 10; + ch->Send(&data); + *ended = true; + }, + &thread_ended[i]); + } + + // Launches threads that try to receive data to channel. + for (size_t i = num_threads / 3; i < 2 * num_threads / 3; i++) { + thread_ended[i] = false; + t[i] = std::thread( + [&](bool *p) { + int data; + if (ch->Receive(&data)) { + EXPECT_EQ(data, 10); + } + *p = true; + }, + &thread_ended[i]); + } + + // Launches threads that try to close the channel. + for (size_t i = 2 * num_threads / 3; i < num_threads; i++) { + thread_ended[i] = false; + t[i] = std::thread( + [&](bool *p) { + if (!ch->IsClosed()) { + ch->close(); + } + *p = true; + }, + &thread_ended[i]); + } + + std::this_thread::sleep_for(std::chrono::milliseconds(100)); // wait + + // Verify that all threads are unblocked + for (size_t i = 0; i < num_threads; i++) { + EXPECT_EQ(thread_ended[i], true); + } + EXPECT_TRUE(ch->IsClosed()); + // delete the channel + delete ch; + for (size_t i = 0; i < num_threads; i++) t[i].join(); +} + +TEST(ChannelHolder, ChannelHolderManyTimesCloseTest) { + // Check for Buffered Channel + ChannelHolder *ch = new ChannelHolder(); + ch->Reset(10); + ChannelHolderManyTimesClose(ch); +}