36 class DeviceHashBackend;
44 const Dtype& key_dtype,
46 const Dtype& value_dtype,
55 const Dtype& key_dtype,
57 const std::vector<Dtype>& dtypes_value,
58 const std::vector<SizeVector>& element_shapes_value,
66 void Reserve(int64_t capacity);
76 std::pair<Tensor, Tensor> Insert(
const Tensor& input_keys,
77 const Tensor& input_values);
83 std::pair<Tensor, Tensor> Insert(
85 const std::vector<Tensor>& input_values_soa);
92 std::pair<Tensor, Tensor> Activate(
const Tensor& input_keys);
98 std::pair<Tensor, Tensor> Find(
const Tensor& input_keys);
108 Tensor GetActiveIndices()
const;
113 void Insert(
const Tensor& input_keys,
114 const Tensor& input_values,
115 Tensor& output_buf_indices,
121 void Insert(
const Tensor& input_keys,
122 const std::vector<Tensor>& input_values_soa,
123 Tensor& output_buf_indices,
129 void Activate(
const Tensor& input_keys,
130 Tensor& output_buf_indices,
136 void Find(
const Tensor& input_keys,
137 Tensor& output_buf_indices,
142 void Erase(
const Tensor& input_keys,
Tensor& output_masks);
146 void GetActiveIndices(
Tensor& output_buf_indices)
const;
155 void Save(
const std::string& file_name);
159 static HashMap Load(
const std::string& file_name);
168 int64_t Size()
const;
171 int64_t GetCapacity()
const;
174 int64_t GetBucketCount()
const;
182 Tensor GetKeyTensor()
const;
187 std::vector<Tensor> GetValueTensors()
const;
192 Tensor GetValueTensor(
size_t index = 0)
const;
195 std::vector<int64_t> BucketSizes()
const;
198 float LoadFactor()
const;
202 return device_hashmap_;
206 void Init(int64_t init_capacity,
210 void InsertImpl(
const Tensor& input_keys,
211 const std::vector<Tensor>& input_values_soa,
212 Tensor& output_buf_indices,
214 bool is_activate_op =
false);
216 void CheckKeyLength(
const Tensor& input_keys)
const;
217 void CheckKeyValueLengthCompatibility(
219 const std::vector<Tensor>& input_values_soa)
const;
220 void CheckKeyCompatibility(
const Tensor& input_keys)
const;
221 void CheckValueCompatibility(
222 const std::vector<Tensor>& input_values_soa)
const;
224 void PrepareIndicesOutput(
Tensor& output_buf_indices, int64_t length)
const;
225 void PrepareMasksOutput(
Tensor& output_masks, int64_t length)
const;
227 std::pair<int64_t, std::vector<int64_t>> GetCommonValueSizeDivisor();
230 std::shared_ptr<DeviceHashBackend> device_hashmap_;
235 std::vector<Dtype> dtypes_value_;
236 std::vector<SizeVector> element_shapes_value_;
HashBackendType
Definition: HashMap.h:38
Definition: SizeVector.h:79
std::shared_ptr< DeviceHashBackend > GetDeviceHashBackend() const
Return the implementation of the device hash backend.
Definition: HashMap.h:201
Definition: PinholeCameraIntrinsic.cpp:35
void To(const core::Tensor &src_im, core::Tensor &dst_im, double scale, double offset)
Definition: IPPImage.cpp:46