fix bug for ch05 (#444)

Co-authored-by: chujinjin <chujinjin52@huawei.com>
Co-authored-by: Tanzhipeng <Rudysheeppig@users.noreply.github.com>
This commit is contained in:
zjuchujinjin
2023-03-31 17:40:13 +08:00
committed by GitHub
parent 04285985a3
commit cef59fa233
4 changed files with 22 additions and 26 deletions

View File

@@ -1,11 +1,11 @@
## 内存分配
:label:`ch05-sec-memory_pool`
内存在传统计算机存储器层次结构中有着重要的地位它是连接高速缓存和磁盘之间的桥梁有着比高速缓存更大的空间比磁盘更快的访问速度。随着深度学习的发展深度神经网络的模型越来越复杂AI芯片\footnote{与前文中的硬件加速器指意相同业内习惯称为AI芯片}上的内存很可能无法容纳一个大型网络模型。因此,对内存进行复用是一个重要的优化手段。此外,通过连续内存分配和 In-Place内存分配还可以提高某些算子的执行效率。
内存在传统计算机存储器层次结构中有着重要的地位它是连接高速缓存和磁盘之间的桥梁有着比高速缓存更大的空间比磁盘更快的访问速度。随着深度学习的发展深度神经网络的模型越来越复杂AI芯片上的内存很可能无法容纳一个大型网络模型。因此对内存进行复用是一个重要的优化手段。此外通过连续内存分配和 In-Place内存分配还可以提高某些算子的执行效率。
### Device内存概念
在深度学习体系结构中通常将与硬件加速器如GPU、AI芯片等相邻的内存称之为设备Device内存而与CPU相邻的内存称之为主机Host内存。如:numref:`host-device-memory`所示CPU可以合法地访问主机上的内存而无法直接访问设备上的内存同理AI芯片可以访问设备上的内存却无法访问主机上的内存。因此在网络训练过程中往往需要从磁盘加载数据到主机内存中然后在主机内存中做数据处理再从主机内存拷贝到设备内存中最后设备才能合法地访问数据。算子全部计算完成后用户要获取训练结果又需要把数据从设备内存拷贝到主机内存中。
在深度学习体系结构中通常将与硬件加速器如GPU、AI芯片等相邻的内存称之为设备Device内存而与CPU相邻的内存称之为主机Host内存。如 :numref:`host-device-memory`所示CPU可以合法地访问主机上的内存而无法直接访问设备上的内存同理AI芯片可以访问设备上的内存却无法访问主机上的内存。因此在网络训练过程中往往需要从磁盘加载数据到主机内存中然后在主机内存中做数据处理再从主机内存拷贝到设备内存中最后设备才能合法地访问数据。算子全部计算完成后用户要获取训练结果又需要把数据从设备内存拷贝到主机内存中。
![主机内存和设备内存](../img/ch05/host-device-memory.png)
:width:`800px`