---
title: SetStoreAtomicConfig(ISASI)
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_0286.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_0286.html
indexId: 9f970f96e4e668d91e539c4d50e9c6eb225aee3d074e710c8c32cbf265c3b15576
---
# SetStoreAtomicConfig(ISASI)

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 AI Core | x |
| Atlas 推理系列产品 Vector Core | x |
| Atlas 训练系列产品 | x |


#### 功能说明

设置原子操作使能位与原子操作类型。


#### 函数原型

```
template <AtomicDtype type, AtomicOp op>
__aicore__ inline void SetStoreAtomicConfig()
```


#### 参数说明


**表1 模板参数说明**

| 参数名 | 输入/输出 | 描述 |  |  |
| --- | --- | --- | --- | --- |
| type | 输入 | 原子操作使能位，AtomicDtype枚举类的定义如下： 1 2 3 4 5 6 7 8 9 enum class AtomicDtype { ATOMIC\_NONE = 0, // 无原子操作 ATOMIC\_F32, // 使能原子操作，进行原子操作的数据类型为float ATOMIC\_F16, // 使能原子操作，进行原子操作的数据类型为half ATOMIC\_S16, // 使能原子操作，进行原子操作的数据类型为int16\_t ATOMIC\_S32, // 使能原子操作，进行原子操作的数据类型为int32\_t ATOMIC\_S8, // 使能原子操作，进行原子操作的数据类型为int8\_t ATOMIC\_BF16 // 使能原子操作，进行原子操作的数据类型为bfloat16\_t }; | 1 2 3 4 5 6 7 8 9 | enum class AtomicDtype { ATOMIC\_NONE = 0, // 无原子操作 ATOMIC\_F32, // 使能原子操作，进行原子操作的数据类型为float ATOMIC\_F16, // 使能原子操作，进行原子操作的数据类型为half ATOMIC\_S16, // 使能原子操作，进行原子操作的数据类型为int16\_t ATOMIC\_S32, // 使能原子操作，进行原子操作的数据类型为int32\_t ATOMIC\_S8, // 使能原子操作，进行原子操作的数据类型为int8\_t ATOMIC\_BF16 // 使能原子操作，进行原子操作的数据类型为bfloat16\_t }; |
| 1 2 3 4 5 6 7 8 9 | enum class AtomicDtype { ATOMIC\_NONE = 0, // 无原子操作 ATOMIC\_F32, // 使能原子操作，进行原子操作的数据类型为float ATOMIC\_F16, // 使能原子操作，进行原子操作的数据类型为half ATOMIC\_S16, // 使能原子操作，进行原子操作的数据类型为int16\_t ATOMIC\_S32, // 使能原子操作，进行原子操作的数据类型为int32\_t ATOMIC\_S8, // 使能原子操作，进行原子操作的数据类型为int8\_t ATOMIC\_BF16 // 使能原子操作，进行原子操作的数据类型为bfloat16\_t }; |  |  |  |
| op | 输入 | 原子操作类型，仅当使能原子操作时有效（即“type”为非“ATOMIC\_NONE”的场景），当前仅支持求和操作。 1 2 3 enum class AtomicOp { ATOMIC\_SUM = 0 // 求和操作 }; | 1 2 3 | enum class AtomicOp { ATOMIC\_SUM = 0 // 求和操作 }; |
| 1 2 3 | enum class AtomicOp { ATOMIC\_SUM = 0 // 求和操作 }; |  |  |  |


#### 返回值说明

无


#### 约束说明

无


#### 调用示例

```
// 设置原子操作为求和操作，支持的数据类型为half
AscendC::SetStoreAtomicConfig<AscendC::AtomicDtype::ATOMIC_F16, AscendC::AtomicOp::ATOMIC_SUM>();
```
