提交 ccd83ef6 编写于 作者: Y Yi Wang

Update

上级 903403b2
...@@ -61,12 +61,12 @@ inline size_t hash(const MemoryBlock::Desc& metadata, size_t initial_seed) { ...@@ -61,12 +61,12 @@ inline size_t hash(const MemoryBlock::Desc& metadata, size_t initial_seed) {
} // namespace } // namespace
void MemoryBlock::Desc::update_guards() { void MemoryBlock::Desc::update_guards() {
guard_begin = hash(this, 1); guard_begin = hash(*this, 1);
guard_end = hash(this, 2); guard_end = hash(*this, 2);
} }
bool MemoryBlock::Desc::check_guards() const { bool MemoryBlock::Desc::check_guards() const {
return guard_begin == hash(this, 1) && guard_end == hash(this, 2); return guard_begin == hash(*this, 1) && guard_end == hash(*this, 2);
} }
} // namespace detail } // namespace detail
......
...@@ -22,29 +22,28 @@ namespace detail { ...@@ -22,29 +22,28 @@ namespace detail {
MetadataCache::MetadataCache(bool uses_gpu) : uses_gpu_(uses_gpu) {} MetadataCache::MetadataCache(bool uses_gpu) : uses_gpu_(uses_gpu) {}
Metadata MetadataCache::load(const MemoryBlock* block) const { MemoryBlock::Desc MetadataCache::load(const MemoryBlock* block) const {
if (uses_gpu_) { if (uses_gpu_) {
auto existing_metadata = cache_.find(block); auto existing_desc = cache_.find(block);
PADDLE_ASSERT(existing_metadata->second.check_guards()); PADDLE_ASSERT(existing_desc->second.check_guards());
return existing_metadata->second; return existing_desc->second;
} else { } else {
auto* meta = reinterpret_cast<const Metadata*>(block); auto* desc = reinterpret_cast<const MemoryBlock::Desc*>(block);
VLOG(10) << "Load MetaData type=" << meta->type; VLOG(10) << "Load MemoryBlock::Desc type=" << desc->type;
PADDLE_ASSERT(meta->check_guards()); PADDLE_ASSERT(desc->check_guards());
return *reinterpret_cast<const Metadata*>(block); return *reinterpret_cast<const MemoryBlock::Desc*>(block);
} }
} }
void MetadataCache::save(MemoryBlock* block, void MetadataCache::save(MemoryBlock* block,
const Metadata& original_metadata) { const MemoryBlock::Desc& original_desc) {
auto metadata = original_metadata; auto desc = original_desc;
desc.update_guards();
metadata.update_guards();
if (uses_gpu_) { if (uses_gpu_) {
cache_[block] = metadata; cache_[block] = desc;
} else { } else {
*reinterpret_cast<Metadata*>(block) = metadata; *reinterpret_cast<MemoryBlock::Desc*>(block) = desc;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册