| 43 | } |
| 44 | |
| 45 | TEST(EmbeddingVariabelMemoryTest, TestMemory) { |
| 46 | int value_size = 32; |
| 47 | int64 default_value_dim = 4096; |
| 48 | int filter_freq = 2; |
| 49 | Tensor default_value( |
| 50 | DT_FLOAT, TensorShape({default_value_dim, value_size})); |
| 51 | auto default_value_matrix = default_value.matrix<float>(); |
| 52 | for (int i = 0; i < default_value_dim; i++) { |
| 53 | for (int j = 0 ; j < value_size; j++) { |
| 54 | default_value_matrix(i, j) = i * value_size + j; |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | int num_of_ids = 1000000; |
| 59 | std::vector<int64> id_list(num_of_ids); |
| 60 | for (int i = 0; i < num_of_ids; i++) { |
| 61 | id_list[i] = i; |
| 62 | } |
| 63 | float used_mb = PerfMemory(default_value, id_list, |
| 64 | value_size, default_value_dim); |
| 65 | float theoritical_mb = |
| 66 | 50 + num_of_ids * (value_size * sizeof(float)) / 1000000; |
| 67 | EXPECT_TRUE((used_mb > theoritical_mb * 0.99) && |
| 68 | (used_mb < theoritical_mb * 1.01)); |
| 69 | |
| 70 | for (int i = 0; i < num_of_ids / 2; i++) { |
| 71 | id_list.emplace_back(i); |
| 72 | } |
| 73 | used_mb = PerfMemory(default_value, id_list, value_size, |
| 74 | default_value_dim, filter_freq); |
| 75 | theoritical_mb = |
| 76 | 50 + num_of_ids * (8 + value_size * sizeof(float) / 2 |
| 77 | + 4/*memory for ids_list*/) / 1000000; |
| 78 | EXPECT_TRUE((used_mb > theoritical_mb * 0.99) && |
| 79 | (used_mb < theoritical_mb * 1.02)); |
| 80 | } |
| 81 | } //namespace embedding |
| 82 | } //namespace tensorflow |
nothing calls this directly
no test coverage detected