MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / TEST

Function TEST

test/cpp/fluid/framework/selected_rows_utils_test.cc:75–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73}
74
75TEST(SelectedRows, SparseTable) {
76 phi::CPUPlace cpu;
77 phi::SelectedRows table;
78
79 int64_t table_size = 100;
80 int64_t embedding_width = 8;
81 // initialize a sparse table
82 table.mutable_value()->Resize(
83 common::make_ddim({table_size, embedding_width}));
84 auto* data = table.mutable_value()->mutable_data<float>(cpu);
85 for (int64_t i = 0; i < table_size; ++i) {
86 for (int64_t j = 0; j < embedding_width; ++j) {
87 data[i * embedding_width + j] = static_cast<float>(i);
88 }
89 }
90 ASSERT_EQ(table.AutoGrownIndex(10, true, false), 0);
91 ASSERT_EQ(table.AutoGrownIndex(8, true, false), 1);
92 ASSERT_EQ(table.AutoGrownIndex(8, true, false), 1);
93 ASSERT_EQ(table.AutoGrownIndex(6, true, false), 2);
94 for (int64_t i = 11; i < 20; i++) {
95 ASSERT_EQ(table.AutoGrownIndex(i, true, true), -1);
96 ASSERT_TRUE(!table.HasKey(i));
97 }
98 ASSERT_TRUE(table.HasKey(10));
99 ASSERT_TRUE(table.HasKey(8));
100 ASSERT_TRUE(table.HasKey(6));
101 ASSERT_EQ(table.rows().size(), 3UL);
102
103 phi::DenseTensor ids;
104 ids.Resize(common::make_ddim({4}));
105 auto* ids_data = ids.mutable_data<int64_t>(cpu);
106 ids_data[0] = static_cast<int64_t>(6);
107 ids_data[1] = static_cast<int64_t>(6);
108 ids_data[2] = static_cast<int64_t>(8);
109 ids_data[3] = static_cast<int64_t>(10);
110
111 phi::DenseTensor get_value;
112 auto* value_data = get_value.mutable_data<float>(
113 common::make_ddim({4, embedding_width}), cpu);
114 table.Get(ids, &get_value);
115
116 for (int j = 0; j < embedding_width; ++j) {
117 ASSERT_EQ(value_data[0 * embedding_width + j], 2);
118 }
119 for (int j = 0; j < embedding_width; ++j) {
120 ASSERT_EQ(value_data[1 * embedding_width + j], 2);
121 }
122 for (int j = 0; j < embedding_width; ++j) {
123 ASSERT_EQ(value_data[2 * embedding_width + j], 1);
124 }
125 for (int j = 0; j < embedding_width; ++j) {
126 ASSERT_EQ(value_data[3 * embedding_width + j], 0);
127 }
128}
129
130void f1(phi::SelectedRows* table, int table_size) {
131 for (int i = 1000000; i > 0; --i) {

Callers

nothing calls this directly

Calls 8

make_ddimFunction · 0.85
ResizeMethod · 0.45
mutable_valueMethod · 0.45
AutoGrownIndexMethod · 0.45
HasKeyMethod · 0.45
sizeMethod · 0.45
GetMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected