已合并
docs目录基本概念章节文件名中文改英文 #73
chenjiao创建于 7月23日
docs目录基本概念章节文件名中文改英文 #73
已合并
chenjiao创建于 7月23日
共 22 个文件变更+67-67
@@ -19,20 +19,20 @@ Docs目录结构说明如下:
19 │ └── ...19 │ └── ...
20 ├── figures # 图片目录20 ├── figures # 图片目录
21 ├── install # 环境安装和编译指导文档21 ├── install # 环境安装和编译指导文档
22- │ ├── build.md 22+ │ ├── build.md
23- │ ├── compile.md 23+ │ ├── compile.md
24 │ ├── dir_structure.md24 │ ├── dir_structure.md
25- │ ├── quick_install.md 25+ │ ├── quick_install.md
26 │ └── ...26 │ └── ...
27 ├── invocation # 算子调用指导文档(包括aclnn调用、图模式调用等)27 ├── invocation # 算子调用指导文档(包括aclnn调用、图模式调用等)
28 │ ├── quick_op_invocation.md28 │ ├── quick_op_invocation.md
29 │ ├── op_invocation.md29 │ ├── op_invocation.md
30 │ └── ...30 │ └── ...
31 ├── op_api_list.md # 全量算子接口列表(aclnn)31 ├── op_api_list.md # 全量算子接口列表(aclnn)
32- ├── op_list.md # 全量算子列表 32+ ├── op_list.md # 全量算子列表
33├── CONTRIBUTING_DOCS.md # 文档贡献说明33├── CONTRIBUTING_DOCS.md # 文档贡献说明
34├── QUICKSTART.md # 快速入门34├── QUICKSTART.md # 快速入门
35-└── README.md 35+└── README.md
36```36```
37 37 
38## 进阶教程38## 进阶教程
@@ -68,5 +68,5 @@ Docs目录结构说明如下:
68 68 
69| 文档 | 说明 |69| 文档 | 说明 |
70| ----------------------------------- | ------------------------------------------------------------ |70| ----------------------------------- | ------------------------------------------------------------ |
71-| [算子基本概念](zh/context/基本概念.md) | 介绍算子领域相关的基础概念和术语,如量化/稀疏、数据类型、数据格式等。 |71+| [算子基本概念](zh/context/basic_concept.md) | 介绍算子领域相关的基础概念和术语,如量化/稀疏、数据类型、数据格式等。 |
72| [build参数说明](zh/install/build.md) | 介绍本项目build.sh参数功能和取值,包括源码编译、算子调用、调试等。 |72| [build参数说明](zh/install/build.md) | 介绍本项目build.sh参数功能和取值,包括源码编译、算子调用、调试等。 |
Rdocs/zh/context/aclnn返回码.md→docs/zh/context/aclnn_return_code.md+0-0
文件重命名但无更改。
@@ -0,0 +1,12 @@
1+# 基本概念
2+ 
3+- [两段式接口](./two_phase_api.md)
4+- [数据结构](./data_structure.md)
5+- [数据类型](./data_type.md)
6+- [数据格式](./data_format.md)
7+- [非连续的Tensor](./non_contiguous_tensor.md)
8+- [broadcast关系](./broadcast_relationship.md)
9+- [互推导关系](./deduction_relationship.md)
10+- [互转换关系](./conversion_relationship.md)
11+- [量化介绍](./quant_mode_introduction.md)
12+- [sparse模式介绍](./sparse_mode_introduction.md)
Rdocs/zh/context/broadcast关系.md→docs/zh/context/broadcast_relationship.md+0-0
文件重命名但无更改。
Rdocs/zh/context/编译与运行样例.md→docs/zh/context/compile_and_run_sample.md+0-0
文件重命名但无更改。
Rdocs/zh/context/互转换关系.md→docs/zh/context/conversion_relationship.md+0-0
文件重命名但无更改。
Rdocs/zh/context/数据格式.md→docs/zh/context/data_format.md+0-0
文件重命名但无更改。
Rdocs/zh/context/数据结构.md→docs/zh/context/data_structure.md+0-0
文件重命名但无更改。
Rdocs/zh/context/数据类型.md→docs/zh/context/data_type.md+0-0
文件重命名但无更改。
Rdocs/zh/context/互推导关系.md→docs/zh/context/deduction_relationship.md+2-2
@@ -6,7 +6,7 @@
6 6 
7当一个API(如aclnnAdd、aclnnMul等)**输入的aclTensor数据类型**不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。7当一个API(如aclnnAdd、aclnnMul等)**输入的aclTensor数据类型**不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。
8 8 
9-aclTensor支持的数据类型参见[数据类型](数据类型.md),其中部分类型满足如下推导规则,推导原理类似PyTorch的[Type Promotion](https://pytorch.org/docs/stable/tensor_attributes.html#type-promotion-doc)。9+aclTensor支持的数据类型参见[数据类型](data_type.md),其中部分类型满足如下推导规则,推导原理类似PyTorch的[Type Promotion](https://pytorch.org/docs/stable/tensor_attributes.html#type-promotion-doc)。
10 10 
11类型推导的规则如下:11类型推导的规则如下:
12 12 
@@ -48,7 +48,7 @@ aclTensor支持的数据类型参见[数据类型](数据类型.md),其中部
48 48 
49当一个API(如aclnnAdds、aclnnMuls等)**输入的Tensor数据类型**和**输入的Scalar数据类型**不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。49当一个API(如aclnnAdds、aclnnMuls等)**输入的Tensor数据类型**和**输入的Scalar数据类型**不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。
50 50 
51-aclTensor支持的数据类型参见[数据类型](数据类型.md),其中部分类型满足如下推导规则,推导原理类似PyTorch的[Type Promotion](https://pytorch.org/docs/stable/tensor_attributes.html#type-promotion-doc)。51+aclTensor支持的数据类型参见[数据类型](data_type.md),其中部分类型满足如下推导规则,推导原理类似PyTorch的[Type Promotion](https://pytorch.org/docs/stable/tensor_attributes.html#type-promotion-doc)。
52 52 
53类型推导的规则如下:53类型推导的规则如下:
54 54 
Rdocs/zh/context/非连续的Tensor.md→docs/zh/context/non_contiguous_tensor.md+0-0
文件重命名但无更改。
Rdocs/zh/context/量化介绍.md→docs/zh/context/quant_mode_introduction.md+0-0
文件重命名但无更改。
Rdocs/zh/context/sparse_mode参数说明.md→docs/zh/context/sparse_mode_introduction.md+0-0
文件重命名但无更改。
Rdocs/zh/context/两段式接口.md→docs/zh/context/two_phase_api.md+0-0
文件重命名但无更改。
@@ -1,12 +0,0 @@
1-# 基本概念
2- 
3-- [两段式接口](./两段式接口.md)
4-- [数据结构](./数据结构.md)
5-- [数据类型](./数据类型.md)
6-- [数据格式](./数据格式.md)
7-- [非连续的Tensor](./非连续的Tensor.md)
8-- [broadcast关系](./broadcast关系.md)
9-- [互推导关系](./互推导关系.md)
10-- [互转换关系](./互转换关系.md)
11-- [量化介绍](./量化介绍.md)
12-- [sparse模式介绍](./sparse_mode参数说明.md)
@@ -43,7 +43,7 @@ bash build.sh --pkg --soc=Ascend950 --vendor_name=custom --ops=add_example
43./build_out/cann-ops-ras-${vendor_name}_linux-${arch}.run43./build_out/cann-ops-ras-${vendor_name}_linux-${arch}.run
44```44```
45 45 
46-* 参考[aclnn调用](../invocation/quick_op_invocation.md#aclnn调用)完成test_aclnn_add_example.cpp的编译,编出可执行文件test_aclnn_add_example46+* 参考[aclnn调用](../invocation/quick_op_invocation.md)完成test_aclnn_add_example.cpp的编译,编出可执行文件test_aclnn_add_example
47 47 
48## 执行仿真命令48## 执行仿真命令
49 49 
@@ -6,5 +6,5 @@
6- [aclnnObfuscationCalculateV2](../../reliability/obfuscation_calculate/docs/aclnnObfuscationCalculateV2.md)6- [aclnnObfuscationCalculateV2](../../reliability/obfuscation_calculate/docs/aclnnObfuscationCalculateV2.md)
7- [aclnnObfuscationSetup](../../reliability/obfuscation_setup/docs/aclnnObfuscationSetup.md)7- [aclnnObfuscationSetup](../../reliability/obfuscation_setup/docs/aclnnObfuscationSetup.md)
8- [aclnnObfuscationSetupV2](../../reliability/obfuscation_setup/docs/aclnnObfuscationSetupV2.md)8- [aclnnObfuscationSetupV2](../../reliability/obfuscation_setup/docs/aclnnObfuscationSetupV2.md)
9-- [编译与运行样例](context/编译与运行样例.md)9+- [编译与运行样例](context/compile_and_run_sample.md)
10-- [aclnn返回码](context/aclnn返回码.md)10+- [aclnn返回码](context/aclnn_return_code.md)
@@ -85,7 +85,7 @@ aclnnStatus aclnnCryptoAicpu(
85 <td>inputText (aclTensor*) </td>85 <td>inputText (aclTensor*) </td>
86 <td>输入</td>86 <td>输入</td>
87 <td>算子加解密输入的明文或密文。</td>87 <td>算子加解密输入的明文或密文。</td>
88- <td> 88+ <td>
89 支持空Tensor,读密钥时可为空。89 支持空Tensor,读密钥时可为空。
90 形状和类型需要与outputText一致。</td>90 形状和类型需要与outputText一致。</td>
91 <td>FLOAT, FLOAT16, INT32, INT64, INT16, INT8, UINT8, DOUBLE, BFLOAT16</td>91 <td>FLOAT, FLOAT16, INT32, INT64, INT16, INT8, UINT8, DOUBLE, BFLOAT16</td>
@@ -178,7 +178,7 @@ aclnnStatus aclnnCryptoAicpu(
178 178 
179- **返回值**179- **返回值**
180 180 
181- aclnnStatus:返回状态码,具体参见 [aclnn返回码](../../../docs/zh/context/aclnn.md)181+ aclnnStatus:返回状态码,具体参见 [aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)
182 182 
183 第一段接口完成入参校验,出现以下场景时报错:183 第一段接口完成入参校验,出现以下场景时报错:
184 184 
@@ -248,7 +248,7 @@ aclnnStatus aclnnCryptoAicpu(
248 248 
249- **返回值**249- **返回值**
250 250 
251- 返回aclnnStatus状态码,具体见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)251+ 返回aclnnStatus状态码,具体见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)
252 252 
253## 约束说明253## 约束说明
254 254 
@@ -262,11 +262,11 @@ aclnnStatus aclnnCryptoAicpu(
262 5. opConfig.algType = 1 (AES-CTR-128算法) 时,tag 可以为空(不为空也不会使用该参数)262 5. opConfig.algType = 1 (AES-CTR-128算法) 时,tag 可以为空(不为空也不会使用该参数)
263 6. opConfig.algType = 2 (AES-GCM-128算法) 时,tag 不能为空263 6. opConfig.algType = 2 (AES-GCM-128算法) 时,tag 不能为空
264 7. opConfig 的参数必须符合定义,version 取值 1,2,mode 取值 0,1,2, algType 取值 1,2, keyType 取值 1,keyId 取值 [0, UINT32_MAX], deviceId 取值 [0,63]264 7. opConfig 的参数必须符合定义,version 取值 1,2,mode 取值 0,1,2, algType 取值 1,2, keyType 取值 1,keyId 取值 [0, UINT32_MAX], deviceId 取值 [0,63]
265- 8. 读秘钥时必须传入正确的 keyId (一个 keyId 对应一个spdm 已派生的加解密秘钥),否则会报错 265+ 8. 读秘钥时必须传入正确的 keyId (一个 keyId 对应一个spdm 已派生的加解密秘钥),否则会报错
266 266 
267## 调用示例267## 调用示例
268 268 
269-示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。269+示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/compile_and_run_sample.md)。
270 270 
271```cpp271```cpp
272#include <iostream>272#include <iostream>
@@ -393,7 +393,7 @@ int aes_128_ctr_decrypt(const unsigned char *key, unsigned char *iv,
393 plaintext_len += len;393 plaintext_len += len;
394 // 5. 释放上下文394 // 5. 释放上下文
395 EVP_CIPHER_CTX_free(ctx);395 EVP_CIPHER_CTX_free(ctx);
396- 396+ 
397 if (ciphertext_len != plaintext_len) {397 if (ciphertext_len != plaintext_len) {
398 return -1;398 return -1;
399 }399 }
@@ -413,13 +413,13 @@ int aes_128_gcm_encrypt(unsigned char *key, unsigned char *iv,
413 return -1;413 return -1;
414 }414 }
415 int len = 0, ciphertext_len = 0;415 int len = 0, ciphertext_len = 0;
416- 416+ 
417 if (1 != EVP_EncryptUpdate(ctx, ciphertext, &len, plaintext, plaintext_len)) {417 if (1 != EVP_EncryptUpdate(ctx, ciphertext, &len, plaintext, plaintext_len)) {
418 EVP_CIPHER_CTX_free(ctx);418 EVP_CIPHER_CTX_free(ctx);
419 return -1;419 return -1;
420 }420 }
421 ciphertext_len += len;421 ciphertext_len += len;
422- 422+ 
423 if (1 != EVP_EncryptFinal_ex(ctx, nullptr, &len)) {423 if (1 != EVP_EncryptFinal_ex(ctx, nullptr, &len)) {
424 EVP_CIPHER_CTX_free(ctx);424 EVP_CIPHER_CTX_free(ctx);
425 return -1;425 return -1;
@@ -686,7 +686,7 @@ int main(int argc, char *argv[]) {
686 for (int i = 0; i < 1; i++) {686 for (int i = 0; i < 1; i++) {
687 LOG_PRINT("y[%d] = %d\n", i, resultY[i]);687 LOG_PRINT("y[%d] = %d\n", i, resultY[i]);
688 }688 }
689- if (mode == 0) { 689+ if (mode == 0) {
690 std::vector<uint8_t> resKey(16, 0);690 std::vector<uint8_t> resKey(16, 0);
691 ret = aclrtMemcpy(691 ret = aclrtMemcpy(
692 resKey.data(), resKey.size(),692 resKey.data(), resKey.size(),
@@ -14,12 +14,12 @@
14## 功能说明14## 功能说明
15 15 
16- 接口功能:将张量x和配置参数(如param、cmd)发送至PMCC混淆引擎。引擎的CA模块调用TA模块,进行张量混淆处理,最终返回shape与x一致的混淆后的张量y。16- 接口功能:将张量x和配置参数(如param、cmd)发送至PMCC混淆引擎。引擎的CA模块调用TA模块,进行张量混淆处理,最终返回shape与x一致的混淆后的张量y。
17- 17+ 
18- 背景:PMCC(Privacy&Model Confidential Computing)模型混淆特性利用CPU核中的TrustZone可信执行环境隔离存储混淆因子、派生混淆掩码、执行动态掩码添加。PMCC基于NPU TrustZone构建了模型混淆引擎CA(普通OS中的Client Application)与模型混淆引擎TA(TEE OS中的Trusted Application)。为了使模型在推理执行过程中能够访问模型混淆引擎TA,通过AICPU算子机制及NPU卡内localhost socket进行中转。18- 背景:PMCC(Privacy&Model Confidential Computing)模型混淆特性利用CPU核中的TrustZone可信执行环境隔离存储混淆因子、派生混淆掩码、执行动态掩码添加。PMCC基于NPU TrustZone构建了模型混淆引擎CA(普通OS中的Client Application)与模型混淆引擎TA(TEE OS中的Trusted Application)。为了使模型在推理执行过程中能够访问模型混淆引擎TA,通过AICPU算子机制及NPU卡内localhost socket进行中转。
19 19 
20## 函数原型20## 函数原型
21 21 
22-每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnObfuscationCalculateGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationCalculate”接口执行计算。22+每个算子分为[两段式接口](../../../docs/zh/context/two_phase_api.md),必须先调用 “aclnnObfuscationCalculateGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationCalculate”接口执行计算。
23 23 
24```c++24```c++
25aclnnStatus aclnnObfuscationCalculateGetWorkspaceSize(25aclnnStatus aclnnObfuscationCalculateGetWorkspaceSize(
@@ -143,10 +143,10 @@ aclnnStatus aclnnObfuscationCalculate(
143 143 
144- **返回值**144- **返回值**
145 145 
146- aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。146+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
147 147 
148 第一段接口完成入参校验,出现以下场景时报错:148 第一段接口完成入参校验,出现以下场景时报错:
149- 149+ 
150 <table style="undefined;table-layout: fixed;width: 1202px"><colgroup>150 <table style="undefined;table-layout: fixed;width: 1202px"><colgroup>
151 <col style="width: 262px">151 <col style="width: 262px">
152 <col style="width: 121px">152 <col style="width: 121px">
@@ -180,7 +180,7 @@ aclnnStatus aclnnObfuscationCalculate(
180 </table>180 </table>
181 181 
182## aclnnObfuscationCalculate182## aclnnObfuscationCalculate
183- 183+ 
184- **参数说明**184- **参数说明**
185 <table style="undefined;table-layout: fixed; width: 1154px"><colgroup>185 <table style="undefined;table-layout: fixed; width: 1154px"><colgroup>
186 <col style="width: 153px">186 <col style="width: 153px">
@@ -219,21 +219,21 @@ aclnnStatus aclnnObfuscationCalculate(
219 219 
220- **返回值**220- **返回值**
221 221 
222- 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。222+ 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
223 223 
224## 约束说明224## 约束说明
225 225 
226- 确定性计算:226- 确定性计算:
227 - aclnnObfuscationCalculate默认确定性实现。227 - aclnnObfuscationCalculate默认确定性实现。
228 228 
229-- 该接口与[aclnnObfuscationSetup](../context/aclnnObfuscationSetup.md)配套使用,完成PMCC模型混淆功能,使用方式如下:229+- 该接口与aclnnObfuscationSetup配套使用,完成PMCC模型混淆功能,使用方式如下:
230 - 首先调用aclnnObfuscationSetup进行资源初始化,可重复调用,以最后一次初始化为准230 - 首先调用aclnnObfuscationSetup进行资源初始化,可重复调用,以最后一次初始化为准
231 - 再多次调用aclnnObfuscationCalculate进行张量混淆处理231 - 再多次调用aclnnObfuscationCalculate进行张量混淆处理
232 - 最后调用aclnnObfuscationSetup进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的232 - 最后调用aclnnObfuscationSetup进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的
233 233 
234## 调用示例234## 调用示例
235 235 
236-示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。236+示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/compile_and_run_sample.md)。
237 237 
238```cpp238```cpp
239#include <iostream>239#include <iostream>
@@ -319,7 +319,7 @@ int main() {
319 aclTensor* fd = nullptr;319 aclTensor* fd = nullptr;
320 std::vector<float> fdHostData = {-1};320 std::vector<float> fdHostData = {-1};
321 321 
322- //创建fd aclTensor 322+ //创建fd aclTensor
323 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);323 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);
324 CHECK_RET(ret == ACL_SUCCESS, return ret);324 CHECK_RET(ret == ACL_SUCCESS, return ret);
325 325 
@@ -456,7 +456,7 @@ int main() {
456 }456 }
457 if (workspaceSize2 > 0) {457 if (workspaceSize2 > 0) {
458 aclrtFree(workspaceAddr2);458 aclrtFree(workspaceAddr2);
459- } 459+ }
460 if (workspaceSize3 > 0) {460 if (workspaceSize3 > 0) {
461 aclrtFree(workspaceAddr3);461 aclrtFree(workspaceAddr3);
462 }462 }
@@ -14,12 +14,12 @@
14## 功能说明14## 功能说明
15 15 
16- 接口功能:将张量x和配置参数(如param、cmd)发送至PMCC混淆引擎。引擎的CA模块调用TA模块,进行张量混淆处理,最终返回shape与x一致的混淆后的张量y。16- 接口功能:将张量x和配置参数(如param、cmd)发送至PMCC混淆引擎。引擎的CA模块调用TA模块,进行张量混淆处理,最终返回shape与x一致的混淆后的张量y。
17- 17+ 
18- 背景:PMCC(Privacy&Model Confidential Computing)模型混淆特性利用CPU核中的TrustZone可信执行环境隔离存储混淆因子、派生混淆掩码、执行动态掩码添加。PMCC基于NPU TrustZone构建了模型混淆引擎CA(普通OS中的Client Application)与模型混淆引擎TA(TEE OS中的Trusted Application)。为了使模型在推理执行过程中能够访问模型混淆引擎TA,通过AICPU算子机制及NPU卡内localhost socket进行中转。本次接口新增obfCoefficient,本参数为DeepSeek满血版本中,为了保证模型混淆性能满足要求,增加混淆系数,对输入数据按照混淆系数比例进行处理。18- 背景:PMCC(Privacy&Model Confidential Computing)模型混淆特性利用CPU核中的TrustZone可信执行环境隔离存储混淆因子、派生混淆掩码、执行动态掩码添加。PMCC基于NPU TrustZone构建了模型混淆引擎CA(普通OS中的Client Application)与模型混淆引擎TA(TEE OS中的Trusted Application)。为了使模型在推理执行过程中能够访问模型混淆引擎TA,通过AICPU算子机制及NPU卡内localhost socket进行中转。本次接口新增obfCoefficient,本参数为DeepSeek满血版本中,为了保证模型混淆性能满足要求,增加混淆系数,对输入数据按照混淆系数比例进行处理。
19 19 
20## 函数原型20## 函数原型
21 21 
22-每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnObfuscationCalculateV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationCalculateV2”接口执行计算。22+每个算子分为[两段式接口](../../../docs/zh/context/two_phase_api.md),必须先调用 “aclnnObfuscationCalculateV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationCalculateV2”接口执行计算。
23 23 
24```c++24```c++
25aclnnStatus aclnnObfuscationCalculateV2GetWorkspaceSize(25aclnnStatus aclnnObfuscationCalculateV2GetWorkspaceSize(
@@ -153,7 +153,7 @@ aclnnStatus aclnnObfuscationCalculateV2(
153 153 
154- **返回值**154- **返回值**
155 155 
156- aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。156+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
157 157 
158 第一段接口完成入参校验,出现以下场景时报错:158 第一段接口完成入参校验,出现以下场景时报错:
159 159 
@@ -227,24 +227,24 @@ aclnnStatus aclnnObfuscationCalculateV2(
227 </tr>227 </tr>
228 </tbody>228 </tbody>
229 </table>229 </table>
230- 230+ 
231- **返回值**231- **返回值**
232 232 
233- 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。233+ 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
234 234 
235## 约束说明235## 约束说明
236 236 
237- 确定性计算:237- 确定性计算:
238 - aclnnObfuscationCalculateV2默认确定性实现。238 - aclnnObfuscationCalculateV2默认确定性实现。
239 239 
240-- 该接口与[aclnnObfuscationSetupV2](../context/aclnnObfuscationSetupV2.md)配套使用,完成PMCC模型混淆功能,使用方式如下:240+- 该接口与aclnnObfuscationSetupV2配套使用,完成PMCC模型混淆功能,使用方式如下:
L
LLiuZonggu7月23日

【Review】这里的引用为什么要移除呢

likedislike
241 - 首先调用aclnnObfuscationSetupV2进行资源初始化,可重复调用,以最后一次初始化为准241 - 首先调用aclnnObfuscationSetupV2进行资源初始化,可重复调用,以最后一次初始化为准
242 - 再多次调用aclnnObfuscationCalculateV2进行张量混淆处理242 - 再多次调用aclnnObfuscationCalculateV2进行张量混淆处理
243 - 最后调用aclnnObfuscationSetupV2进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的243 - 最后调用aclnnObfuscationSetupV2进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的
244 244 
245## 调用示例245## 调用示例
246 246 
247-调用示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。247+调用示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/compile_and_run_sample.md)。
248 248 
249```C++249```C++
250#include <iostream>250#include <iostream>
@@ -331,7 +331,7 @@ int main() {
331 aclTensor* fd = nullptr;331 aclTensor* fd = nullptr;
332 std::vector<float> fdHostData = {-1};332 std::vector<float> fdHostData = {-1};
333 333 
334- //创建fd aclTensor 334+ //创建fd aclTensor
335 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);335 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);
336 CHECK_RET(ret == ACL_SUCCESS, return ret);336 CHECK_RET(ret == ACL_SUCCESS, return ret);
337 337 
@@ -468,7 +468,7 @@ int main() {
468 }468 }
469 if (workspaceSize2 > 0) {469 if (workspaceSize2 > 0) {
470 aclrtFree(workspaceAddr2);470 aclrtFree(workspaceAddr2);
471- } 471+ }
472 if (workspaceSize3 > 0) {472 if (workspaceSize3 > 0) {
473 aclrtFree(workspaceAddr3);473 aclrtFree(workspaceAddr3);
474 }474 }
@@ -22,7 +22,7 @@
22 22 
23## 函数原型23## 函数原型
24 24 
25-每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnObfuscationSetupGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationSetup”接口执行计算。25+每个算子分为[两段式接口](../../../docs/zh/context/two_phase_api.md),必须先调用 “aclnnObfuscationSetupGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationSetup”接口执行计算。
26 26 
27```c++27```c++
28aclnnStatus aclnnObfuscationSetupGetWorkspaceSize(28aclnnStatus aclnnObfuscationSetupGetWorkspaceSize(
@@ -196,10 +196,10 @@ aclnnStatus aclnnObfuscationSetup(
196 196 
197- **返回值**197- **返回值**
198 198 
199- aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。199+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
200 200 
201 第一段接口完成入参校验,出现以下场景时报错:201 第一段接口完成入参校验,出现以下场景时报错:
202- 202+ 
203 <table style="undefined;table-layout: fixed;width: 1202px"><colgroup>203 <table style="undefined;table-layout: fixed;width: 1202px"><colgroup>
204 <col style="width: 262px">204 <col style="width: 262px">
205 <col style="width: 121px">205 <col style="width: 121px">
@@ -266,21 +266,21 @@ aclnnStatus aclnnObfuscationSetup(
266 266 
267- **返回值**267- **返回值**
268 268 
269- 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。269+ 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
270 270 
271## 约束说明271## 约束说明
272 272 
273- 确定性计算:273- 确定性计算:
274 - aclnnObfuscationSetup默认确定性实现。274 - aclnnObfuscationSetup默认确定性实现。
275 275 
276-- 该接口与[aclnnObfuscationCalculate](../context/aclnnObfuscationCalculate.md)配套使用,完成PMCC模型混淆功能,使用方式如下:276+- 该接口与aclnnObfuscationCalculate配套使用,完成PMCC模型混淆功能,使用方式如下:
277 - 首先调用aclnnObfuscationSetup进行资源初始化,可重复调用,以最后一次初始化为准277 - 首先调用aclnnObfuscationSetup进行资源初始化,可重复调用,以最后一次初始化为准
278 - 再多次调用aclnnObfuscationCalculate进行张量混淆处理278 - 再多次调用aclnnObfuscationCalculate进行张量混淆处理
279 - 最后调用aclnnObfuscationSetup进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的279 - 最后调用aclnnObfuscationSetup进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的
280 280 
281## 调用示例281## 调用示例
282 282 
283-示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。283+示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/compile_and_run_sample.md)。
284 284 
285```cpp285```cpp
286#include <iostream>286#include <iostream>
@@ -366,7 +366,7 @@ int main() {
366 aclTensor* fd = nullptr;366 aclTensor* fd = nullptr;
367 std::vector<float> fdHostData = {-1};367 std::vector<float> fdHostData = {-1};
368 368 
369- //创建fd aclTensor 369+ //创建fd aclTensor
370 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);370 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);
371 CHECK_RET(ret == ACL_SUCCESS, return ret);371 CHECK_RET(ret == ACL_SUCCESS, return ret);
372 372 
@@ -503,7 +503,7 @@ int main() {
503 }503 }
504 if (workspaceSize2 > 0) {504 if (workspaceSize2 > 0) {
505 aclrtFree(workspaceAddr2);505 aclrtFree(workspaceAddr2);
506- } 506+ }
507 if (workspaceSize3 > 0) {507 if (workspaceSize3 > 0) {
508 aclrtFree(workspaceAddr3);508 aclrtFree(workspaceAddr3);
509 }509 }
@@ -22,7 +22,7 @@
22 22 
23## 函数原型23## 函数原型
24 24 
25-每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnObfuscationSetupV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationSetupV2”接口执行计算。25+每个算子分为[两段式接口](../../../docs/zh/context/two_phase_api.md),必须先调用 “aclnnObfuscationSetupV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnObfuscationSetupV2”接口执行计算。
26 26 
27```c++27```c++
28aclnnStatus aclnnObfuscationSetupV2GetWorkspaceSize(28aclnnStatus aclnnObfuscationSetupV2GetWorkspaceSize(
@@ -206,7 +206,7 @@ aclnnStatus aclnnObfuscationSetupV2(
206 206 
207- **返回值**207- **返回值**
208 208 
209- aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。209+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
210 210 
211 第一段接口完成入参校验,出现以下场景时报错:211 第一段接口完成入参校验,出现以下场景时报错:
212 212 
@@ -274,24 +274,24 @@ aclnnStatus aclnnObfuscationSetupV2(
274 </tr>274 </tr>
275 </tbody>275 </tbody>
276 </table>276 </table>
277- 277+ 
278- **返回值**278- **返回值**
279 279 
280- 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。280+ 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn_return_code.md)。
281 281 
282## 约束说明282## 约束说明
283 283 
284- 确定性计算:284- 确定性计算:
285 - aclnnObfuscationSetupV2默认确定性实现。285 - aclnnObfuscationSetupV2默认确定性实现。
286 286 
287-- 该接口与[aclnnObfuscationCalculateV2](../context/aclnnObfuscationCalculateV2.md)配套使用,完成PMCC模型混淆功能,使用方式如下:287+- 该接口与aclnnObfuscationCalculateV2配套使用,完成PMCC模型混淆功能,使用方式如下:
288 - 首先调用aclnnObfuscationSetupV2进行资源初始化,可重复调用,以最后一次初始化为准288 - 首先调用aclnnObfuscationSetupV2进行资源初始化,可重复调用,以最后一次初始化为准
289 - 再多次调用aclnnObfuscationCalculateV2进行张量混淆处理289 - 再多次调用aclnnObfuscationCalculateV2进行张量混淆处理
290 - 最后调用aclnnObfuscationSetupV2进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的290 - 最后调用aclnnObfuscationSetupV2进行资源释放,只能调用一次;也可不显式进行资源释放,而是通过终止程序进程的方式达到资源释放的目的
291 291 
292## 调用示例292## 调用示例
293 293 
294-示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。294+示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/compile_and_run_sample.md)。
295 295 
296```cpp296```cpp
297#include <iostream>297#include <iostream>
@@ -378,7 +378,7 @@ int main() {
378 aclTensor* fd = nullptr;378 aclTensor* fd = nullptr;
379 std::vector<float> fdHostData = {-1};379 std::vector<float> fdHostData = {-1};
380 380 
381- //创建fd aclTensor 381+ //创建fd aclTensor
382 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);382 ret = CreateAclTensor(fdHostData, fdShape, &fdDeviceAddr, aclDataType::ACL_INT32, &fd);
383 CHECK_RET(ret == ACL_SUCCESS, return ret);383 CHECK_RET(ret == ACL_SUCCESS, return ret);
384 384 
@@ -515,7 +515,7 @@ int main() {
515 }515 }
516 if (workspaceSize2 > 0) {516 if (workspaceSize2 > 0) {
517 aclrtFree(workspaceAddr2);517 aclrtFree(workspaceAddr2);
518- } 518+ }
519 if (workspaceSize3 > 0) {519 if (workspaceSize3 > 0) {
520 aclrtFree(workspaceAddr3);520 aclrtFree(workspaceAddr3);
521 }521 }