---
title: asc_mark_stamp
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_00206.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_00206.html
indexId: 8e0bb5ddba8ebc88de238855836c547005e674c6a1bddeb292c77dd2fe98937b77
---
# asc_mark_stamp

#### 产品支持情况

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


#### 功能说明

用户通过调用接口，用于在算子执行过程中标记特定位置，便于后期通过流水图分析代码执行路径与性能热点。


#### 函数原型

```
template<pipe_t pipe = PIPE_S>
__aicore__ inline void asc_mark_stamp(uint16_t idx)

template<pipe_t pipe = PIPE_S, uint16_t idx>
__aicore__ inline void asc_mark_stamp()
```


#### 参数说明

| 参数名 | 含义 |
| --- | --- |
| pipe | 指定打点所在的pipeline类型。 |
| index | 用户设置的打点的唯一标识id。 |


#### 返回值说明

无


#### 约束说明

- index取值范围为[0,4095]。为方便从打点图中找到对应的代码，建议不要重复使用相同的index。
- 如果在循环中增加了一个MarkStamp指令，每次执行到指令时都会输出一个打点，且index是相同的。
- 如果开发者在两个相邻的VF分别打标记，由于编译器可能会对VF A和VF B做融合，MarkStamp1和MarkStamp2则会被优化掉，不会输出打点。


#### 调用示例

```
mte2_opt();
mte1_opt();
//在算子执行开始处打点
asc_mark_stamp<CUBE, 0>();
//执行核心计算
cube_opt();
//在算子执行结束处打点
asc_mark_stamp<CUBE, 1>();
mte3_opt();
```
