| 21 | MetadataCache::MetadataCache(bool uses_gpu) : uses_gpu_(uses_gpu) {} |
| 22 | |
| 23 | MemoryBlock::Desc* MetadataCache::LoadDesc(MemoryBlock* block) { |
| 24 | if (uses_gpu_) { |
| 25 | auto iter = cache_.find(block); |
| 26 | PADDLE_ENFORCE_NE( |
| 27 | iter, |
| 28 | cache_.end(), |
| 29 | common::errors::NotFound("The memory block is not found in cache")); |
| 30 | auto* desc = &(iter->second); |
| 31 | PADDLE_ENFORCE_EQ( |
| 32 | desc->CheckGuards(), |
| 33 | true, |
| 34 | common::errors::InvalidArgument("Invalid CPU memory access")); |
| 35 | return desc; |
| 36 | } else { |
| 37 | auto* desc = reinterpret_cast<MemoryBlock::Desc*>(block); |
| 38 | VLOG(10) << "Load MemoryBlock::Desc type=" << desc->type; |
| 39 | PADDLE_ENFORCE_EQ( |
| 40 | desc->CheckGuards(), |
| 41 | true, |
| 42 | common::errors::InvalidArgument("Invalid CPU memory access")); |
| 43 | return reinterpret_cast<MemoryBlock::Desc*>(block); |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | void MetadataCache::Save(MemoryBlock* block, |
| 48 | const MemoryBlock::Desc& original_desc) { |
no test coverage detected