---
title: aclSysParamOpt
description: "```"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_1393.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_1393.html
indexId: a9cdfd76d1ff0caa6200269f4ce90c9caeb4b25d848ac1e34215999db71d0fcb68
---
# aclSysParamOpt

```
typedef enum { 
    ACL_OPT_DETERMINISTIC = 0,
    ACL_OPT_ENABLE_DEBUG_KERNEL = 1,
    ACL_OPT_STRONG_CONSISTENCY = 2,
} aclSysParamOpt;
```


**表1 枚举项说明**

| 枚举项 | 说明 |
| --- | --- |
| ACL\_OPT\_DETERMINISTIC | 是否开启确定性计算。 0：不开启确定性计算。默认不开启。 1：开启确定性计算。 当开启确定性计算功能时，算子在相同的硬件和输入下，多次执行将产生相同的输出。但启用确定性计算往往导致算子执行变慢。 默认情况下，不开启确定性计算，算子在相同的硬件和输入下，多次执行的结果可能不同。这个差异的来源，一般是因为在算子实现中，存在异步的多线程执行，会导致浮点数累加的顺序变化。 通常建议不开启确定性计算，因为确定性计算往往会导致算子执行变慢，进而影响性能。当发现模型多次执行结果不同，或者是进行精度调优时，可开启确定性计算，辅助模型调试、调优。 |
| ACL\_OPT\_ENABLE\_DEBUG\_KERNEL | 是否开启算子执行阶段的Global Memory访问越界检测。 0：不开启内存访问越界检测。默认不开启。 1：开启内存访问越界检测。 编译算子前调用aclSetCompileopt(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendgraphapi/aclcppdevg\_03\_0025.html)接口将ACL\_OP\_DEBUG\_OPTION配置为oom，同时配合调用aclrtCtxSetSysParamOpt接口（作用域是Context）或aclrtSetSysParamOpt接口（作用域是进程）将ACL\_OPT\_ENABLE\_DEBUG\_KERNEL配置为1，开启Global Memory访问越界检测，这时执行算子过程中，若从Global Memory中读写数据（例如读算子输入数据、写算子输出数据等）出现内存越界，则会返回“EZ9999”错误码，表示存在算子AI Core Error问题。 |
| ACL\_OPT\_STRONG\_CONSISTENCY | 是否开启强一致性计算。 0：不开启强一致性计算。默认不开启。 1：开启强一致性计算。 当开启强一致性计算功能时，计算结果是确定的，多次执行将产生相同的输出。此外，计算结果与数据的位置无关。例如，在进行矩阵乘时，不同行的累加顺序可能不同，这可能会导致相同数据在不同行的计算结果出现细微差异。然而，在启用强一致性计算的情况下，即使在不同的行中，只要输入相同，计算结果也将一致。 默认情况下，不开启强一致性计算，这可能导致相同数据位于不同行时，计算结果出现不一致的现象。 通常建议不开启强一致性计算，因为这会导致算子执行速度变慢，影响性能。只有在需要严格保证不同位置上的相同数据计算结果一致，或进行精度调优时，才应开启强一致性计算，以辅助模型调试和优化。 须知：本参数为试验参数，后续版本可能会存在变更，不支持应用于商用产品中。 |
