---
title: 内存管理总述
description: "在昇腾异构计算架构中，系统由主机（Host）和设备（Device）组成。Host和Device各自拥有独立的内存，Host内存是指AI处理器所在服务器的主机内存（即CPU内存），而Device内存则是指AI处理器自带的设备内存。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/runtime_doc_dev_0004.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/runtime_doc_dev_0004.html
indexId: 0f85681ab4a732ecf0efa5051a704c5adbab58c6be283cf4b952b99efe02529473
---
# 内存管理总述

在昇腾异构计算架构中，系统由主机（Host）和设备（Device）组成。Host和Device各自拥有独立的内存，Host内存是指AI处理器所在服务器的主机内存（即CPU内存），而Device内存则是指AI处理器自带的设备内存。

内存管理中要做好的两件事是：

1. 可以访问内存：Runtime提供了一套内存管理API，使开发者能够高效便捷地编写应用程序中的内存管理代码。由于Host和Device的内存相互独立，Runtime提供了专门的接口来分别申请和释放Host内存及Device内存。例如，申请和释放Host内存的接口为aclrtMallocHost和aclrtFreeHost，而申请和释放Device内存的接口为aclrtMalloc和aclrtFree。
2. 高效访问内存：为了实现最佳的内存访问性能，需要将数据存储在对应的内存中，例如算子在Device上执行过程中，访问Device上的数据性能要远高于访问Host侧的。为此，Runtime提供了Host与Device之间互相拷贝内存的接口，支持同步和异步方式，例如aclrtMemcpy和aclrtMemcpyAsync等，以便开发者更好地规划数据的存储与访问。
