MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / Read

Method Read

tensorflow/core/framework/embedding/emb_file.h:246–270  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

244 }
245
246 void Read(char* val, const size_t val_len,
247 const size_t offset) override {
248 size_t page_size = getpagesize();
249 int pages_to_read = val_len / page_size;
250 if (val_len % page_size != 0) {
251 pages_to_read += 1;
252 }
253 if (offset + val_len >= page_size * pages_to_read) {
254 pages_to_read += 1;
255 }
256 int aligned_offset = offset - (offset % page_size);
257 char* read_buffer = (char*)memalign(page_size, page_size * pages_to_read);
258
259 int status = pread(EmbFile::fd_,
260 (void*)read_buffer,
261 page_size * pages_to_read,
262 aligned_offset);
263 if (status < 0) {
264 LOG(FATAL)<<"Failed to pread, read size: "
265 <<page_size * pages_to_read
266 <<", offset: "<<aligned_offset;
267 }
268 memcpy(val, read_buffer + (offset % page_size), val_len);
269 free(read_buffer);
270 }
271};
272
273} // embedding

Callers

nothing calls this directly

Calls 1

preadFunction · 0.85

Tested by

no test coverage detected