内存管理【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflowmemory_config用于配置系统内存使用方式用户在创建NPURunConfig之前可以实例化一个MemoryConfig类进行功能配置。MemoryConfig类的构造函数请参见MemoryConfig构造函数。external_weight同一个session内同时加载多个模型时如果多个模型间的权重能够复用建议通过此配置项将网络中Const/Constant节点的权重外置实现多个模型间的权重复用从而减少权重的内存占用。False默认值权重不外置保存在图中。True权重外置将网络中所有Const/Constant节点的权重文件落盘并将Const/Constant类型转换为FileConstant。权重文件以“weight_hash值”命名。若环境中未配置环境变量ASCEND_WORK_PATH则权重文件落盘至当前执行目录“tmp_weight_pid_sessionid”下。若环境中配置了环境变量ASCEND_WORK_PATH则权重文件会落盘至${ASCEND_WORK_PATH}/tmp_weight_pid_sessionid目录下关于ASCEND_WORK_PATH的详细说明可参见[《]环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》中的“安装配置相关”章节。模型卸载时会自动删除“tmp_weight_pid_sessionid”目录。说明一般场景下不需要配置此参数针对模型加载环境有内存限制的场景可以将权重外置。配置示例config NPURunConfig(external_weightTrue)input_fusion_sizeHost侧输入数据搬运到Device侧时将用户离散多个输入数据合并拷贝的阈值。单位为Byte最小值为0 Byte最大值为33554432 Byte32MB默认值为131072 Byte128KB。若输入数据大小****阈值则合并输入然后从Host搬运到Device。若输入数据大小****阈值或者阈值0功能关闭则不合并直接从Host搬运到Device。例如用户有10个输入有2个输入数据大小为100KB2个输入数据大小为50KB其余输入大于100KB若设置“input_fusion_size”设置为100KB则上述4个输入合并为300KB执行搬运其他6个输入直接从Host搬运到Device。“input_fusion_size”设置为0KB则该功能关闭不进行输入合并即10个输入直接从Host搬运到Device。说明该参数仅针对静态shape图生效。配置示例config NPURunConfig(input_fusion_size25600)input_batch_cpyHost侧输入数据搬运到Device时是否开启批量内存拷贝功能。True开启批量内存拷贝功能。该配置仅在用户输入个数大于1时生效。False默认值关闭批量内存拷贝功能。说明该参数仅支持以下产品Ascend 950PR/Ascend 950DTAtlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品该参数可以提升Host到Device的数据搬运性能适用于需要频繁搬运数据且PCIe带宽利用率较低的场景。通过该参数使能批量拷贝功能后可提升带宽利用率。若网络初始输入个数仅有1个即使配置了批量拷贝功能也不会生效。当同时配置了“input_fusion_size”参数以启用合并拷贝功能和“input_batch_cpy”参数以启用批量拷贝功能时合并拷贝的阈值可能会影响批量拷贝功能。 例如如果用户有5个输入其中有4个输入数据小于合并拷贝阈值满足数据合并条件那么这4个输入会执行合并拷贝剩余的1个输入由于不满足批量拷贝的输入个数则不会执行批量拷贝。配置示例config NPURunConfig(input_batch_cpyTrue)【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考