|
|
|
@ -40,14 +40,14 @@ void RunSerdeTestSelectedRows(platform::Place place) {
|
|
|
|
|
// serialize var to ByteBuffer
|
|
|
|
|
framework::Variable var;
|
|
|
|
|
auto* slr = var.GetMutable<framework::SelectedRows>();
|
|
|
|
|
slr->set_height(1000);
|
|
|
|
|
auto* tensor = slr->mutable_value();
|
|
|
|
|
auto* rows = slr->mutable_rows();
|
|
|
|
|
tensor->Resize(framework::make_ddim({2, 10}));
|
|
|
|
|
tensor->Resize(framework::make_ddim({564, 128}));
|
|
|
|
|
tensor->mutable_data<float>(place);
|
|
|
|
|
int tensor_numel = 2 * 10;
|
|
|
|
|
int tensor_numel = 564 * 128;
|
|
|
|
|
math::set_constant(ctx, tensor, 32.7);
|
|
|
|
|
rows->push_back(3);
|
|
|
|
|
rows->push_back(10);
|
|
|
|
|
for (int i = 0; i < 564; ++i) rows->push_back(i);
|
|
|
|
|
|
|
|
|
|
::grpc::ByteBuffer msg;
|
|
|
|
|
operators::detail::SerializeToByteBuffer("myvar", &var, ctx, &msg);
|
|
|
|
@ -64,6 +64,7 @@ void RunSerdeTestSelectedRows(platform::Place place) {
|
|
|
|
|
sendrecv::VariableMessage varmsg;
|
|
|
|
|
EXPECT_TRUE(varmsg.ParseFromString(tmp));
|
|
|
|
|
|
|
|
|
|
// deserialize bytebuffer
|
|
|
|
|
EXPECT_EQ(varmsg.varname(), "myvar");
|
|
|
|
|
EXPECT_EQ(varmsg.type(), 1);
|
|
|
|
|
|
|
|
|
@ -74,8 +75,10 @@ void RunSerdeTestSelectedRows(platform::Place place) {
|
|
|
|
|
for (int i = 0; i < tensor_numel; ++i) {
|
|
|
|
|
EXPECT_FLOAT_EQ(tensor_data[i], 32.7);
|
|
|
|
|
}
|
|
|
|
|
EXPECT_EQ(rows_data[0], 3);
|
|
|
|
|
EXPECT_EQ(rows_data[1], 10);
|
|
|
|
|
for (int i = 0; i < 564; ++i) {
|
|
|
|
|
EXPECT_EQ(rows_data[i], i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// deserialize zero-copy
|
|
|
|
|
// framework::Variable var2;
|
|
|
|
|
// operators::detail::DeserializeFromByteBuffer(msg, ctx, &var2);
|
|
|
|
@ -104,8 +107,10 @@ void RunSerdeTestSelectedRows(platform::Place place) {
|
|
|
|
|
for (int i = 0; i < tensor_numel; ++i) {
|
|
|
|
|
EXPECT_FLOAT_EQ(tensor_data2[i], 32.7);
|
|
|
|
|
}
|
|
|
|
|
EXPECT_EQ(rows_data2[0], 3);
|
|
|
|
|
EXPECT_EQ(rows_data2[1], 10);
|
|
|
|
|
for (int i = 0; i < rows2->size(); ++i) {
|
|
|
|
|
EXPECT_EQ(rows_data2[i], i);
|
|
|
|
|
}
|
|
|
|
|
EXPECT_EQ(slr2->height(), 1000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void RunTestLodTensor(platform::Place place, int from_type = 0) {
|
|
|
|
|