|
|
@ -108,7 +108,9 @@ void ParameterRecv<T>::operator()(const RpcContext &rpc_ctx,
|
|
|
|
VLOG(3) << "recv_slr size: " << recv_slr.rows().size() << " "
|
|
|
|
VLOG(3) << "recv_slr size: " << recv_slr.rows().size() << " "
|
|
|
|
<< sstream.str();
|
|
|
|
<< sstream.str();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (auto i = 0; i < recv_slr.rows().size(); ++i) {
|
|
|
|
|
|
|
|
|
|
|
|
// FIXME(qiao): use a trick to avoid the bug of recv an selected rows
|
|
|
|
|
|
|
|
for (auto i = 1; i < recv_slr.rows().size(); ++i) {
|
|
|
|
auto row_id = recv_slr.rows()[i] + row_offset;
|
|
|
|
auto row_id = recv_slr.rows()[i] + row_offset;
|
|
|
|
PADDLE_ENFORCE_LT(row_id, recv_dims[1]);
|
|
|
|
PADDLE_ENFORCE_LT(row_id, recv_dims[1]);
|
|
|
|
memcpy(recv_tensor->data<T>() + row_id * width,
|
|
|
|
memcpy(recv_tensor->data<T>() + row_id * width,
|
|
|
|