Browse Source

!6463 gpu code review

Merge pull request !6463 from limingqi107/master
tags/v1.0.0
mindspore-ci-bot Gitee 5 years ago
parent
commit
8bb8ae82f1
2 changed files with 11 additions and 11 deletions
  1. +5
    -5
      mindspore/ccsrc/backend/optimizer/mem_reuse/mem_dynamic_allocator.cc
  2. +6
    -6
      mindspore/ccsrc/backend/optimizer/mem_reuse/mem_dynamic_allocator.h

+ 5
- 5
mindspore/ccsrc/backend/optimizer/mem_reuse/mem_dynamic_allocator.cc View File

@@ -172,13 +172,13 @@ void DynamicMemPoolBestFit::DivideMemBuf(size_t size, const DynamicMemBufPtr &me
(void)global_idle_mem_buf_map_.emplace(newbuf_size, new_mem_buf);
}
bool DynamicMemPoolBestFit::CmpMemBlock(const DeviceMemPtr device_addr, const DynamicMemBlockPtr mem_block) {
bool DynamicMemPoolBestFit::CmpMemBlock(const DeviceMemPtr &device_addr, const DynamicMemBlockPtr &mem_block) {
MS_EXCEPTION_IF_NULL(device_addr);
MS_EXCEPTION_IF_NULL(mem_block);
return device_addr < mem_block->device_addr();
}
DynamicMemBlockPtr DynamicMemPoolBestFit::FindMemBlock(const DeviceMemPtr device_addr) {
DynamicMemBlockPtr DynamicMemPoolBestFit::FindMemBlock(const DeviceMemPtr &device_addr) {
MS_EXCEPTION_IF_NULL(device_addr);
auto iter = std::upper_bound(global_mem_block_list_.begin(), global_mem_block_list_.end(), device_addr, CmpMemBlock);
if (iter != global_mem_block_list_.begin()) {
@@ -187,7 +187,7 @@ DynamicMemBlockPtr DynamicMemPoolBestFit::FindMemBlock(const DeviceMemPtr device
return nullptr;
}
void DynamicMemPoolBestFit::FreeTensorMem(const DeviceMemPtr device_addr) {
void DynamicMemPoolBestFit::FreeTensorMem(const DeviceMemPtr &device_addr) {
MS_EXCEPTION_IF_NULL(device_addr);
auto mem_block = FindMemBlock(device_addr);
if (mem_block == nullptr) {
@@ -198,7 +198,7 @@ void DynamicMemPoolBestFit::FreeTensorMem(const DeviceMemPtr device_addr) {
CombineMemBuf(mem_block, device_addr);
}
void DynamicMemPoolBestFit::CombineMemBuf(const DynamicMemBlockPtr &mem_block, const DeviceMemPtr device_addr) {
void DynamicMemPoolBestFit::CombineMemBuf(const DynamicMemBlockPtr &mem_block, const DeviceMemPtr &device_addr) {
MS_EXCEPTION_IF_NULL(mem_block);
MS_EXCEPTION_IF_NULL(device_addr);
auto iter = mem_block->block_all_mem_buf_map_.find(device_addr);
@@ -247,7 +247,7 @@ void DynamicMemPoolBestFit::CombineMemBuf(const DynamicMemBlockPtr &mem_block, c
}
}
void DynamicMemPoolBestFit::EraseIdleMemBuf(size_t size, const DeviceMemPtr device_addr) {
void DynamicMemPoolBestFit::EraseIdleMemBuf(size_t size, const DeviceMemPtr &device_addr) {
MS_EXCEPTION_IF_NULL(device_addr);
auto iter = global_idle_mem_buf_map_.equal_range(size);
while (iter.first != iter.second) {


+ 6
- 6
mindspore/ccsrc/backend/optimizer/mem_reuse/mem_dynamic_allocator.h View File

@@ -38,7 +38,7 @@ static const size_t DYNAMIC_MEM_ALLOC_UNIT_SIZE = 500 << 20;
// The Comparator of device address from small to large.
struct DeviceAddrCmp {
bool operator()(const DeviceMemPtr addr1, const DeviceMemPtr addr2) const { return addr1 < addr2; }
bool operator()(const DeviceMemPtr &addr1, const DeviceMemPtr &addr2) const { return addr1 < addr2; }
};
// Memory buf is the smallest operation object of dynamic memory pool.
@@ -82,7 +82,7 @@ class DynamicMemPoolBestFit {
// The main program entry of continuous memory alloc.
std::vector<DeviceMemPtr> AllocContinuousTensorMem(size_t total_size, std::vector<size_t> size_list);
// The main program entry of memory free.
void FreeTensorMem(const DeviceMemPtr device_addr);
void FreeTensorMem(const DeviceMemPtr &device_addr);
// Release the real device memory.
void ReleaseDeviceRes();
// Display the information of memory block and memory buf.
@@ -118,14 +118,14 @@ class DynamicMemPoolBestFit {
// Divide the memory buf by alloc size.
void DivideMemBuf(size_t size, const DynamicMemBufPtr &mem_buf);
// Find the memory block by deivce address.
DynamicMemBlockPtr FindMemBlock(const DeviceMemPtr device_addr);
DynamicMemBlockPtr FindMemBlock(const DeviceMemPtr &device_addr);
// The Comparator of memory block by device address, because memory blocks are arranged in order by device address.
static bool CmpMemBlock(const DeviceMemPtr device_addr, const DynamicMemBlockPtr mem_block);
static bool CmpMemBlock(const DeviceMemPtr &device_addr, const DynamicMemBlockPtr &mem_block);
// Combine the memory buf when memory free, to avoid the memory fragmentation.
void CombineMemBuf(const DynamicMemBlockPtr &mem_block, const DeviceMemPtr device_addr);
void CombineMemBuf(const DynamicMemBlockPtr &mem_block, const DeviceMemPtr &device_addr);
// Erase the idle memory buf by size and device address when idle memory buf is combined.
void EraseIdleMemBuf(size_t size, const DeviceMemPtr device_addr);
void EraseIdleMemBuf(size_t size, const DeviceMemPtr &device_addr);
// The global memory block list which is arranged in order by base device address of memory block.
std::vector<DynamicMemBlockPtr> global_mem_block_list_;


Loading…
Cancel
Save