|
|
@ -17,6 +17,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
namespace paddle {
|
|
|
|
namespace paddle {
|
|
|
|
namespace framework {
|
|
|
|
namespace framework {
|
|
|
|
|
|
|
|
|
|
|
|
TEST(CopyFrom, Tensor) {
|
|
|
|
TEST(CopyFrom, Tensor) {
|
|
|
|
Tensor src_tensor;
|
|
|
|
Tensor src_tensor;
|
|
|
|
Tensor dst_tensor;
|
|
|
|
Tensor dst_tensor;
|
|
|
@ -29,7 +30,7 @@ TEST(CopyFrom, Tensor) {
|
|
|
|
memcpy(src_ptr, arr, 9 * sizeof(int));
|
|
|
|
memcpy(src_ptr, arr, 9 * sizeof(int));
|
|
|
|
|
|
|
|
|
|
|
|
auto cpu_place = new platform::CPUPlace();
|
|
|
|
auto cpu_place = new platform::CPUPlace();
|
|
|
|
CopyFrom(src_tensor, *cpu_place, cpu_ctx, &dst_tensor);
|
|
|
|
CopyFrom(src_tensor, *cpu_place, &dst_tensor);
|
|
|
|
|
|
|
|
|
|
|
|
const int* dst_ptr = dst_tensor.data<int>();
|
|
|
|
const int* dst_ptr = dst_tensor.data<int>();
|
|
|
|
ASSERT_NE(src_ptr, dst_ptr);
|
|
|
|
ASSERT_NE(src_ptr, dst_ptr);
|
|
|
@ -104,8 +105,7 @@ TEST(CopyFromVector, Tensor) {
|
|
|
|
// Copy to CPU Tensor
|
|
|
|
// Copy to CPU Tensor
|
|
|
|
cpu_tensor.Resize(make_ddim({3, 3}));
|
|
|
|
cpu_tensor.Resize(make_ddim({3, 3}));
|
|
|
|
auto cpu_place = new paddle::platform::CPUPlace();
|
|
|
|
auto cpu_place = new paddle::platform::CPUPlace();
|
|
|
|
CPUDeviceContext cpu_ctx(*cpu_place);
|
|
|
|
CopyFromVector<int>(src_vec, &cpu_tensor);
|
|
|
|
CopyFromVector<int>(src_vec, cpu_ctx, &cpu_tensor);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Compare Tensors
|
|
|
|
// Compare Tensors
|
|
|
|
const int* cpu_ptr = cpu_tensor.data<int>();
|
|
|
|
const int* cpu_ptr = cpu_tensor.data<int>();
|
|
|
@ -117,7 +117,7 @@ TEST(CopyFromVector, Tensor) {
|
|
|
|
|
|
|
|
|
|
|
|
src_vec.erase(src_vec.begin(), src_vec.begin() + 5);
|
|
|
|
src_vec.erase(src_vec.begin(), src_vec.begin() + 5);
|
|
|
|
cpu_tensor.Resize(make_ddim({2, 2}));
|
|
|
|
cpu_tensor.Resize(make_ddim({2, 2}));
|
|
|
|
CopyFromVector<int>(src_vec, cpu_ctx, &cpu_tensor);
|
|
|
|
CopyFromVector<int>(src_vec, &cpu_tensor);
|
|
|
|
cpu_ptr = cpu_tensor.data<int>();
|
|
|
|
cpu_ptr = cpu_tensor.data<int>();
|
|
|
|
src_ptr = src_vec.data();
|
|
|
|
src_ptr = src_vec.data();
|
|
|
|
ASSERT_NE(src_ptr, cpu_ptr);
|
|
|
|
ASSERT_NE(src_ptr, cpu_ptr);
|
|
|
@ -198,9 +198,8 @@ TEST(CopyToVector, Tensor) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CPUPlace place;
|
|
|
|
CPUPlace place;
|
|
|
|
CPUDeviceContext cpu_ctx(place);
|
|
|
|
|
|
|
|
std::vector<int> dst;
|
|
|
|
std::vector<int> dst;
|
|
|
|
CopyToVector<int>(src, cpu_ctx, &dst);
|
|
|
|
CopyToVector<int>(src, &dst);
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 3 * 3; ++i) {
|
|
|
|
for (int i = 0; i < 3 * 3; ++i) {
|
|
|
|
EXPECT_EQ(src_ptr[i], dst[i]);
|
|
|
|
EXPECT_EQ(src_ptr[i], dst[i]);
|
|
|
|