Skip to content

Commit

Permalink
Merge branch 'release/2.2' into paddle2.2_cherrypick
Browse files Browse the repository at this point in the history
  • Loading branch information
haohongxiang authored Oct 26, 2021
2 parents f241176 + 616ce20 commit 6ddaf5f
Show file tree
Hide file tree
Showing 64 changed files with 4,382 additions and 211 deletions.
3 changes: 2 additions & 1 deletion cmake/operators.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ function(op_library TARGET)
list(REMOVE_ITEM hip_srcs "cholesky_op.cu")
list(REMOVE_ITEM hip_srcs "matrix_rank_op.cu")
list(REMOVE_ITEM hip_srcs "svd_op.cu")
list(REMOVE_ITEM hip_srcs "qr_op.cu")
list(REMOVE_ITEM hip_srcs "eigh_op.cu")
list(REMOVE_ITEM hip_srcs "multinomial_op.cu")
list(REMOVE_ITEM hip_srcs "decode_jpeg_op.cu")
Expand Down Expand Up @@ -216,7 +217,7 @@ function(op_library TARGET)
"fusion_transpose_flatten_concat_op" "fusion_conv_inception_op"
"sync_batch_norm_op" "sparse_attention_op" "dgc_op" "fused_fc_elementwise_layernorm_op"
"skip_layernorm_op" "multihead_matmul_op" "fusion_group_op" "fused_bn_activation_op" "fused_embedding_eltwise_layernorm_op" "fusion_gru_op" "fusion_lstm_op"
"fused_bn_add_activation_op")
"fused_bn_add_activation_op" "fused_attention_op")
if ("${TARGET}" STREQUAL "${manual_pybind_op}")
set(pybind_flag 1)
endif()
Expand Down
20 changes: 18 additions & 2 deletions paddle/fluid/framework/channel.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,19 @@ class ChannelObject {
p.resize(finished);
return finished;
}
// read once only
size_t ReadOnce(std::vector<T>& p, size_t size) { // NOLINT
if (size == 0) {
return 0;
}
std::unique_lock<std::mutex> lock(mutex_);
p.resize(size);
size_t finished = Read(size, &p[0], lock, true);
p.resize(finished);
Notify();

return finished;
}
size_t ReadAll(std::vector<T>& p) { // NOLINT
p.clear();
size_t finished = 0;
Expand Down Expand Up @@ -241,17 +253,21 @@ class ChannelObject {
return !closed_;
}

size_t Read(size_t n, T* p, std::unique_lock<std::mutex>& lock) { // NOLINT
size_t Read(size_t n, T* p, std::unique_lock<std::mutex>& lock, // NOLINT
bool once = false) { // NOLINT
size_t finished = 0;
CHECK(n <= MaxCapacity() - reading_count_);
reading_count_ += n;
while (finished < n && WaitForRead(lock)) {
size_t m = std::min(n - finished, data_.size());
size_t m = (std::min)(n - finished, data_.size());
for (size_t i = 0; i < m; i++) {
p[finished++] = std::move(data_.front());
data_.pop_front();
}
reading_count_ -= m;
if (once && m > 0) {
break;
}
}
reading_count_ -= n - finished;
return finished;
Expand Down
Loading

1 comment on commit 6ddaf5f

@paddle-bot-old
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Congratulation! Your pull request passed all required CI. You could ask reviewer(s) to approve and merge. 🎉

Please sign in to comment.