|
|
|
@ -96,6 +96,12 @@ uint8_t *AscendMemoryManager::MallocStaticMem(size_t size, bool communication_me
|
|
|
|
|
} else {
|
|
|
|
|
align_size = GetCommonAlignSize(size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto device_mem_pool_offset = AscendMemoryPool::GetInstance().device_mem_pool_offset();
|
|
|
|
|
MS_LOG(INFO) << "Malloc Memory: Static, total[" << device_mem_size_ << "] (dynamic[" << total_dynamic_size_
|
|
|
|
|
<< "] memory pool[" << device_mem_pool_offset << "])"
|
|
|
|
|
<< " malloc [" << align_size << "] communication_mem: " << communication_mem;
|
|
|
|
|
|
|
|
|
|
if (communication_mem) {
|
|
|
|
|
// create protect area [kMemAlignSize -- data -- kMemAlignSize]
|
|
|
|
|
uint8_t *alloc_address = reinterpret_cast<uint8_t *>(AscendMemoryPool::GetInstance().AllocTensorMem(align_size));
|
|
|
|
@ -112,12 +118,17 @@ uint8_t *AscendMemoryManager::MallocDynamicMem(size_t size, bool communication_m
|
|
|
|
|
} else {
|
|
|
|
|
align_size = GetCommonAlignSize(size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto device_mem_pool_offset = AscendMemoryPool::GetInstance().device_mem_pool_offset();
|
|
|
|
|
MS_LOG(INFO) << "Malloc Memory: Dynamic, total[" << device_mem_size_ << "] (dynamic[" << total_dynamic_size_
|
|
|
|
|
<< "] memory pool[" << device_mem_pool_offset << "])"
|
|
|
|
|
<< " malloc [" << align_size << "] communication_mem: " << communication_mem;
|
|
|
|
|
|
|
|
|
|
if (dynamic_mem_offset_ < align_size) {
|
|
|
|
|
MS_LOG(EXCEPTION) << "Out of memory!!! total[" << device_mem_size_ << "] (dynamic[" << total_dynamic_size_
|
|
|
|
|
<< "]) malloc [" << align_size << "] failed!";
|
|
|
|
|
}
|
|
|
|
|
auto new_offset = dynamic_mem_offset_ - align_size;
|
|
|
|
|
auto device_mem_pool_offset = AscendMemoryPool::GetInstance().device_mem_pool_offset();
|
|
|
|
|
if (new_offset <= device_mem_pool_offset) {
|
|
|
|
|
MS_LOG(EXCEPTION) << "Out of memory!!! total[" << device_mem_size_ << "] (dynamic[" << total_dynamic_size_
|
|
|
|
|
<< "] memory pool[" << device_mem_pool_offset << "])"
|
|
|
|
|