单流执行功能

功能简介

在静态Shape场景下,图执行过程中可手动开启单Stream执行功能,默认情况下不开启。

Stream一般用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。

说明:

  • 对于没有实际并发效果且采用多Stream执行的模型,由于流间切换导致额外的计算耗时,影响性能。此时可通过开启单Stream来提高图执行性能。

  • 调用torch_npu.npu_prefetch接口时(参考《Ascend Extension for PyTorch 自定义 API参考》中的“torch_npu.npu_prefetch”章节),不支持同时开启本功能,否则影响算子正常执行。

  • 当通信算法的编排展开位置在Device侧的AI Vector Core计算单元时(CANN环境变量配置如下),不支持同时开启本功能。

    export HCCL_OP_EXPANSION_MODE="AIV"
    

使用约束

本功能仅适用于GE图模式场景。

使用方法

该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,仅供参考不支持直接拷贝运行,参数说明参见下表。

import torch_npu, torchair
config = torchair.CompilerConfig()
# 开启图单流执行功能
config.ge_config.enable_single_stream = True
npu_backend = torchair.get_npu_backend(compiler_config=config)
opt_model = torch.compile(model, backend=npu_backend)

表 1 参数说明

参数名 说明
enable_single_stream 图执行时是否开启单流模式。False(默认值):不开启单流模式。True:开启单流模式。