基础功能
ge.constLifecycle
用于训练和在线推理场景下配置常量节点的生命周期。
参数取值:
- session:按照session级别存储常量节点。配置为session级别时,session内多张图间的常量节点支持内存复用,但需要用户保证多张图上同名的常量节点完全相同。
- graph:按照graph级别存储常量节点,后续用户可调用SetGraphConstMemoryBase接口按图级别对const内存自行管理。
训练场景默认值为session;在线推理场景默认值为graph。
配置示例:
{"ge.constLifecycle", "graph"};
必选/可选:可选
生效级别:全局/session/graph
ge.deterministic
是否开启确定性计算。
默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。但启用确定性计算往往导致算子执行变慢。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。
参数取值:
- 0:(默认值)不开启确定性计算。
- 1:开启确定性计算。
配置示例:
{"ge.deterministic", "0"};
必选/可选:可选
生效级别:全局
ge.enableSingleStream
静态shape场景下,是否使能图运行顺序单流串行执行。
其中,流(Stream)用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。
参数取值:
- true:表示使能,图运行顺序单流串行执行。
- false:(默认值)表示关闭,图运行时多流并行执行。
配置示例:
{"ge.enableSingleStream", "false"};
必选/可选:可选
生效级别:graph
使用约束:
模型中存在Cmo算子和如下控制类算子时,不能使用单Stream特性,只能使用默认值false。
- Merge
- Switch
- Enter
- RefEnter
ge.exec.deviceId
GE实例运行时操作设备的逻辑ID。
参数取值:
- 在线推理场景,限制有限范围为-1~N-1,默认值为-1。
- 训练场景,限制有限范围为0~N-1,默认值为0。
N表示该台Server上的可用AI处理器个数。
配置示例:
{"ge.exec.deviceId", "-1"};
必选/可选:可选
生效级别:全局
ge.exec.frozenInputIndexes
设置地址不刷新的输入Tensor的索引。该参数仅限于LoadGraph调用。针对不同模型,输入Tensor索引内容不同:
- 动态shape模型:需要传递输入Tensor的索引、数据在Device上的地址、数据长度,其中地址要求十进制表示。
- 静态shape模型:只需要传递输入Tensor的索引即可;传其他参数比如数据长度参数,不生效。
配置示例:
# 只传输入Tensor索引
{"ge.exec.frozenInputIndexes", "0;1;2"};
# 传递输入Tensor索引、数据在Device上的地址、数据长度
{"ge.exec.frozenInputIndexes", "0,88832131,4;1,888213294,4;2,193492421,2"};
必选/可选:可选
生效级别:graph
使用约束:
地址不刷新的输入Tensor,必须是静态shape,针对动态shape模型,该输入节点Tensor也必须是静态shape。
ge.exec.hostInputIndexes
随路拷贝场景,设置placement为Host的输入Tensor索引,多个输入的Tensor索引使用英文分号分隔。
随路拷贝是指随着模型内算子地址刷新动作,将Host侧输入的Tensor内存一起拷贝到Device侧。
配置示例:
{"ge.exec.hostInputIndexes", "0;1;2"};
必选/可选:可选
生效级别:graph
使用约束:
- 该参数仅适用于静态shape模型。
- 随路拷贝特性不适合大数据量的输入,性能可能会有劣化。
- 若模型只有一个输入,不支持和ge.exec.frozenInputIndexes同时使用;若模型有多个输入,不支持和ge.exec.frozenInputIndexes指定同一个输入。
- 通过options配置项加载该参数后,后续的执行接口不支持使用RunGraphAsync。
ge.exec.rankTableFile
用于描述参与集合通信的集群信息,包括Server,Device,容器等的组织信息,填写ranktable文件路径,包含文件路径和文件名。
配置示例:
{"ge.exec.rankTableFile", "./yourfilepath/ranktable.json"};
必选/可选:可选
生效级别:全局/session/graph
ge.exec.rankId
指当前进程在group中对应的rank ID,用于分布式训练和集合通信,标识多卡训练中的当前设备。对于用户自定义group,rank在本group内从0开始进行重排;对于hccl world group,rank id和world rank id相同。该参数需要与ge.exec.rankTableFile配合使用。
参数取值:
字符串形式的整数:
- world rank id,指进程在hccl world group中对应的rank标识序号,范围:0~(rank size-1)。
- local rank id,指group内进程在其所在Server内的rank编号,范围:0~(local rank size-1)。
配置示例:
{"ge.exec.rankId", "0"};
必选/可选:可选
生效级别:全局/session/graph
ge.graphRunMode
图执行模式。
参数取值:
- 0:(默认值)在线推理场景下,请配置为0。
- 1:训练场景下,请配置为1。
配置示例:
{"ge.graphRunMode", "0"};
必选/可选:可选
生效级别:全局/session
ge.outputDatatype
指定图的输出数据类型。
参数取值:
- FP32
- FP16
- UINT8
- INT8
- UINT16
- INT16
- UINT32
- INT32
- UINT64
- INT64
- DOUBLE
- HIF8:仅Ascend 950PR/Ascend 950DT支持该类型。
- FP8E5M2:仅Ascend 950PR/Ascend 950DT支持该类型。
- FP8E4M3FN:仅Ascend 950PR/Ascend 950DT支持该类型。
图编译后,在对应的子图文件中,上述数据类型分别呈现方式如下:
- DT_FLOAT
- DT_FLOAT16
- DT_UINT8
- DT_INT8
- DT_UINT16
- DT_INT16
- DT_UINT32
- DT_INT32
- DT_UINT64
- DT_INT64
- DT_DOUBLE
- DT_HIFLOAT8
- DT_FLOAT8_E5M2
- DT_FLOAT8_E4M3FN
参数值约束:
若不指定具体数据类型,则以图最后一层输出的节点(算子)数据类型为准;若指定了类型,则以该参数指定的类型为准。
配置示例:
{"ge.outputDatatype", "FP32"};
必选/可选:可选
生效级别:session/graph
ge.session_device_id
当用户需要将不同的模型通过同一个脚本在不同的Device上执行,可以通过该参数指定Device的逻辑ID。
通常可以创建多个线程,每个线程是不同的Session,每个Session传不同的ge.session_device_id。
配置示例:
{"ge.session_device_id", "0"};
必选/可选:可选
生效级别:session
ge.socVersion
指定编译优化模型的AI处理器型号。
取值查询方法如下:
- 针对如下产品:在安装AI处理器的服务器执行npu-smi info命令进行查询,获取Name信息。实际配置值为AscendName,例如Name取值为xxxyy,实际配置值为Ascendxxxyy。
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas 200I/500 A2 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 - 针对
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,在安装AI处理器的服务器执行npu-smi info -t board -i id -c chip_id命令进行查询,获取Chip Name和NPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为Ascendxxx,NPU Name取值为1234,实际配置值为Ascendxxx_1234。其中:- id:设备id,通过npu-smi info -l命令查出的NPU ID即为设备id。
- chip_id:芯片id,通过npu-smi info -m命令查出的Chip ID即为芯片id。
- 针对Ascend 950PR/Ascend 950DT,在安装AI处理器的服务器执行npu-smi info -t board -i id命令进行查询,获取Chip Name和NPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为Ascendxxx,NPU Name取值为1234,实际配置值为Ascendxxx_1234。
其中,id为设备id,通过npu-smi info -l命令查出的NPU ID即为设备id。
必选/可选:可选
生效级别:全局/session/graph