已开启
docs: 归档arch5162 API支持关系分析 #4491
zhangpengpeng8创建于 15 天前
docs: 归档arch5162 API支持关系分析 #4491
已开启
共 4 个文件变更+3075-0
| @@ -0,0 +1,652 @@ | |||
| 1 | +# arch5162 API 支持性基线清单 | ||
| 2 | + | ||
| 3 | +## 1. 来源和使用说明 | ||
| 4 | + | ||
| 5 | +本文以 [arch5162 API 支持性 README](https://gitcode.com/zhangpengpeng8/files_trans_yw/blob/ed5ef652eff961bf4bddc2d4f040a744790d5e04/README.md) 的两张表为初始来源,并已直接刷新为 2026-08-27 确认后的产品支持结论。 | ||
| 6 | + | ||
| 7 | +- 来源提交:`ed5ef652eff961bf4bddc2d4f040a744790d5e04` | ||
| 8 | +- 来源 README blob:`ebb901f882cbf2f00756005b019822508c77df79` | ||
| 9 | +- 表内“arch5162 是否支持”是当前基线,不再保留刷新前状态;后续强桩与产品策略均以该列为准。 | ||
| 10 | +- baseline 未列出的 Runtime API 不混入本文;补充结论和实现差异见 [ACL-Runtime 支持关系矩阵](arch5162_acl_runtime_api_support_matrix.md) 与 [支持性一致性分析](arch5162_api_support_consistency_analysis.md)。 | ||
| 11 | +- 当前代码能执行成功不等同于产品支持,表内状态直接采用已确认的产品结论。 | ||
| 12 | + | ||
| 13 | +## 2. 汇总 | ||
| 14 | + | ||
| 15 | +| 接口层级 | 支持 | 不支持 | 待确认 | 合计 | | ||
| 16 | +|---|---:|---:|---:|---:| | ||
| 17 | +| ACL | 92 | 325 | 42 | 459 | | ||
| 18 | +| Runtime | 16 | 149 | 0 | 165 | | ||
| 19 | + | ||
| 20 | +## 3. ACL API 支持情况 | ||
| 21 | + | ||
| 22 | +| 功能分类 | API | arch5162 是否支持 | | ||
| 23 | +|---|---|---| | ||
| 24 | +| 初始化和去初始化 | `aclInit` | 支持 | | ||
| 25 | +| 初始化和去初始化 | `aclFinalize` | 支持 | | ||
| 26 | +| 初始化和去初始化 | `aclFinalizeReference` | 支持 | | ||
| 27 | +| 初始化和去初始化 | `aclInitCallbackRegister` | 不支持 | | ||
| 28 | +| 初始化和去初始化 | `aclInitCallbackUnRegister` | 不支持 | | ||
| 29 | +| 初始化和去初始化 | `aclFinalizeCallbackRegister` | 不支持 | | ||
| 30 | +| 初始化和去初始化 | `aclFinalizeCallbackUnRegister` | 不支持 | | ||
| 31 | +| 运行时配置 | `aclrtSetSysParamOpt` | 不支持 | | ||
| 32 | +| 运行时配置 | `aclrtGetSysParamOpt` | 不支持 | | ||
| 33 | +| 运行时配置 | `aclrtGetDeviceResLimit` | 不支持 | | ||
| 34 | +| 运行时配置 | `aclrtSetDeviceResLimit` | 不支持 | | ||
| 35 | +| 运行时配置 | `aclrtResetDeviceResLimit` | 不支持 | | ||
| 36 | +| 运行时配置 | `aclrtGetStreamResLimit` | 不支持 | | ||
| 37 | +| 运行时配置 | `aclrtSetStreamResLimit` | 不支持 | | ||
| 38 | +| 运行时配置 | `aclrtResetStreamResLimit` | 不支持 | | ||
| 39 | +| 运行时配置 | `aclrtUseStreamResInCurrentThread` | 不支持 | | ||
| 40 | +| 运行时配置 | `aclrtUnuseStreamResInCurrentThread` | 不支持 | | ||
| 41 | +| 运行时配置 | `aclrtGetResInCurrentThread` | 不支持 | | ||
| 42 | +| Device管理 | `aclrtSetDevice` | 支持 | | ||
| 43 | +| Device管理 | `aclrtResetDevice` | 支持 | | ||
| 44 | +| Device管理 | `aclrtResetDeviceForce` | 支持 | | ||
| 45 | +| Device管理 | `aclrtGetDevice` | 支持 | | ||
| 46 | +| Device管理 | `aclrtGetRunMode` | 不支持 | | ||
| 47 | +| Device管理 | `aclrtSetTsDevice` | 不支持 | | ||
| 48 | +| Device管理 | `aclrtGetDeviceCount` | 不支持 | | ||
| 49 | +| Device管理 | `aclrtGetDeviceUtilizationRate` | 支持 | | ||
| 50 | +| Device管理 | `aclrtQueryDeviceStatus` | 不支持 | | ||
| 51 | +| Device管理 | `aclrtGetSocName` | 支持 | | ||
| 52 | +| Device管理 | `aclrtSetDeviceSatMode` | 不支持 | | ||
| 53 | +| Device管理 | `aclrtGetDeviceSatMode` | 不支持 | | ||
| 54 | +| Device管理 | `aclrtDeviceCanAccessPeer` | 不支持 | | ||
| 55 | +| Device管理 | `aclrtDeviceEnablePeerAccess` | 不支持 | | ||
| 56 | +| Device管理 | `aclrtDeviceDisablePeerAccess` | 不支持 | | ||
| 57 | +| Device管理 | `aclrtDevicePeerAccessStatus` | 不支持 | | ||
| 58 | +| Device管理 | `aclrtGetOverflowStatus` | 不支持 | | ||
| 59 | +| Device管理 | `aclrtResetOverflowStatus` | 不支持 | | ||
| 60 | +| Device管理 | `aclrtSynchronizeDevice` | 不支持 | | ||
| 61 | +| Device管理 | `aclrtSynchronizeDeviceWithTimeout` | 不支持 | | ||
| 62 | +| Device管理 | `aclrtGetDeviceInfo` | 不支持 | | ||
| 63 | +| Device管理 | `aclrtDeviceGetStreamPriorityRange` | 支持 | | ||
| 64 | +| Device管理 | `aclrtGetDeviceCapability` | 不支持 | | ||
| 65 | +| Device管理 | `aclrtGetDevicesTopo` | 不支持 | | ||
| 66 | +| Device管理 | `aclrtRegDeviceStateCallback` | 不支持 | | ||
| 67 | +| Device管理 | `aclrtDeviceGetUuid` | 不支持 | | ||
| 68 | +| Device管理 | `aclrtGetLogicDevIdByUserDevId` | 不支持 | | ||
| 69 | +| Device管理 | `aclrtGetUserDevIdByLogicDevId` | 不支持 | | ||
| 70 | +| Device管理 | `aclrtGetLogicDevIdByPhyDevId` | 不支持 | | ||
| 71 | +| Device管理 | `aclrtGetPhyDevIdByLogicDevId` | 不支持 | | ||
| 72 | +| Device管理 | `aclrtGetUserDevIdByPhyDevId` | 不支持 | | ||
| 73 | +| Device管理 | `aclrtGetPhyDevIdByUserDevId` | 不支持 | | ||
| 74 | +| Device管理 | `aclrtDeviceGetHostAtomicCapabilities` | 不支持 | | ||
| 75 | +| Device管理 | `aclrtDeviceGetP2PAtomicCapabilities` | 不支持 | | ||
| 76 | +| Device管理 | `aclrtDeviceSetLimit` | 不支持 | | ||
| 77 | +| Device管理 | `aclrtDeviceGetLimit` | 不支持 | | ||
| 78 | +| Context管理 | `aclrtCreateContext` | 支持 | | ||
| 79 | +| Context管理 | `aclrtDestroyContext` | 支持 | | ||
| 80 | +| Context管理 | `aclrtSetCurrentContext` | 支持 | | ||
| 81 | +| Context管理 | `aclrtGetCurrentContext` | 支持 | | ||
| 82 | +| Context管理 | `aclrtCtxSetSysParamOpt` | 不支持 | | ||
| 83 | +| Context管理 | `aclrtCtxGetSysParamOpt` | 不支持 | | ||
| 84 | +| Context管理 | `aclrtCtxGetCurrentDefaultStream` | 支持 | | ||
| 85 | +| Context管理 | `aclrtGetPrimaryCtxState` | 支持 | | ||
| 86 | +| Context管理 | `aclrtCtxGetFloatOverflowAddr` | 不支持 | | ||
| 87 | +| Stream管理 | `aclrtCreateStream` | 支持 | | ||
| 88 | +| Stream管理 | `aclrtCreateStreamV2` | 不支持 | | ||
| 89 | +| Stream管理 | `aclrtSetStreamConfigOpt` | 不支持 | | ||
| 90 | +| Stream管理 | `aclrtCreateStreamWithConfig` | 支持 | | ||
| 91 | +| Stream管理 | `aclrtDestroyStream` | 支持 | | ||
| 92 | +| Stream管理 | `aclrtDestroyStreamForce` | 支持 | | ||
| 93 | +| Stream管理 | `aclrtSetStreamOverflowSwitch` | 不支持 | | ||
| 94 | +| Stream管理 | `aclrtGetStreamOverflowSwitch` | 不支持 | | ||
| 95 | +| Stream管理 | `aclrtSetStreamFailureMode` | 不支持 | | ||
| 96 | +| Stream管理 | `aclrtStreamQuery` | 不支持 | | ||
| 97 | +| Stream管理 | `aclrtSynchronizeStream` | 支持 | | ||
| 98 | +| Stream管理 | `aclrtSynchronizeStreamWithTimeout` | 支持 | | ||
| 99 | +| Stream管理 | `aclrtStreamAbort` | 不支持 | | ||
| 100 | +| Stream管理 | `aclrtStreamGetId` | 支持 | | ||
| 101 | +| Stream管理 | `aclrtGetStreamAvailableNum` | 支持 | | ||
| 102 | +| Stream管理 | `aclrtSetStreamAttribute` | 不支持 | | ||
| 103 | +| Stream管理 | `aclrtGetStreamAttribute` | 不支持 | | ||
| 104 | +| Stream管理 | `aclrtActiveStream` | 支持 | | ||
| 105 | +| Stream管理 | `aclrtSwitchStream` | 支持 | | ||
| 106 | +| Stream管理 | `aclrtRegStreamStateCallback` | 不支持 | | ||
| 107 | +| Stream管理 | `aclrtStreamStop` | 不支持 | | ||
| 108 | +| Stream管理 | `aclrtPersistentTaskClean` | 不支持 | | ||
| 109 | +| Stream管理 | `aclrtStreamGetPriority` | 支持 | | ||
| 110 | +| Stream管理 | `aclrtStreamGetFlags` | 不支持 | | ||
| 111 | +| Event管理 | `aclrtCreateEvent` | 支持 | | ||
| 112 | +| Event管理 | `aclrtCreateEventWithFlag` | 支持 | | ||
| 113 | +| Event管理 | `aclrtCreateEventExWithFlag` | 支持 | | ||
| 114 | +| Event管理 | `aclrtDestroyEvent` | 支持 | | ||
| 115 | +| Event管理 | `aclrtRecordEvent` | 支持 | | ||
| 116 | +| Event管理 | `aclrtResetEvent` | 支持 | | ||
| 117 | +| Event管理 | `aclrtQueryEventStatus` | 不支持 | | ||
| 118 | +| Event管理 | `aclrtQueryEventWaitStatus` | 不支持 | | ||
| 119 | +| Event管理 | `aclrtSynchronizeEvent` | 支持 | | ||
| 120 | +| Event管理 | `aclrtSynchronizeEventWithTimeout` | 支持 | | ||
| 121 | +| Event管理 | `aclrtEventElapsedTime` | 支持 | | ||
| 122 | +| Event管理 | `aclrtStreamWaitEvent` | 支持 | | ||
| 123 | +| Event管理 | `aclrtStreamWaitEventWithTimeout` | 支持 | | ||
| 124 | +| Event管理 | `aclrtSetOpWaitTimeout` | 不支持 | | ||
| 125 | +| Event管理 | `aclrtEventGetTimestamp` | 支持 | | ||
| 126 | +| Event管理 | `aclrtGetEventId` | 支持 | | ||
| 127 | +| Event管理 | `aclrtGetEventAvailNum` | 支持 | | ||
| 128 | +| Event管理 | `aclrtIpcGetEventHandle` | 不支持 | | ||
| 129 | +| Event管理 | `aclrtIpcOpenEventHandle` | 不支持 | | ||
| 130 | +| Event管理 | `aclrtStreamWaitEventWithFlag` | 不支持 | | ||
| 131 | +| Event管理 | `aclrtRecordEventWithFlag` | 不支持 | | ||
| 132 | +| Event管理 | `aclrtQueryEvent(废弃)` | 不支持 | | ||
| 133 | +| Notify管理 | `aclrtCreateNotify` | 支持 | | ||
| 134 | +| Notify管理 | `aclrtDestroyNotify` | 支持 | | ||
| 135 | +| Notify管理 | `aclrtRecordNotify` | 支持 | | ||
| 136 | +| Notify管理 | `aclrtWaitAndResetNotify` | 支持 | | ||
| 137 | +| Notify管理 | `aclrtGetNotifyId` | 支持 | | ||
| 138 | +| Notify管理 | `aclrtNotifyBatchReset` | 不支持 | | ||
| 139 | +| Notify管理 | `aclrtNotifyGetExportKey` | 不支持 | | ||
| 140 | +| Notify管理 | `aclrtNotifySetImportPid` | 不支持 | | ||
| 141 | +| Notify管理 | `aclrtNotifySetImportPidInterServer` | 不支持 | | ||
| 142 | +| Notify管理 | `aclrtNotifyImportByKey` | 不支持 | | ||
| 143 | +| CntNotify管理 | `aclrtCntNotifyCreate` | 不支持 | | ||
| 144 | +| CntNotify管理 | `aclrtCntNotifyRecord` | 不支持 | | ||
| 145 | +| CntNotify管理 | `aclrtCntNotifyWaitWithTimeout` | 不支持 | | ||
| 146 | +| CntNotify管理 | `aclrtCntNotifyReset` | 不支持 | | ||
| 147 | +| CntNotify管理 | `aclrtCntNotifyGetId` | 不支持 | | ||
| 148 | +| CntNotify管理 | `aclrtCntNotifyDestroy` | 不支持 | | ||
| 149 | +| Label管理 | `aclrtCreateLabel` | 支持 | | ||
| 150 | +| Label管理 | `aclrtSetLabel` | 支持 | | ||
| 151 | +| Label管理 | `aclrtDestroyLabel` | 支持 | | ||
| 152 | +| Label管理 | `aclrtCreateLabelList` | 支持 | | ||
| 153 | +| Label管理 | `aclrtDestroyLabelList` | 支持 | | ||
| 154 | +| Label管理 | `aclrtSwitchLabelByIndex` | 支持 | | ||
| 155 | +| 内存管理 | `aclrtMalloc` | 支持 | | ||
| 156 | +| 内存管理 | `aclrtMallocAlign32` | 不支持 | | ||
| 157 | +| 内存管理 | `aclrtMallocCached` | 支持 | | ||
| 158 | +| 内存管理 | `aclrtMemFlush` | 支持 | | ||
| 159 | +| 内存管理 | `aclrtMemInvalidate` | 支持 | | ||
| 160 | +| 内存管理 | `aclrtMallocWithCfg` | 不支持 | | ||
| 161 | +| 内存管理 | `aclrtMallocForTaskScheduler` | 不支持 | | ||
| 162 | +| 内存管理 | `aclrtFree` | 支持 | | ||
| 163 | +| 内存管理 | `aclrtFreeWithDevSync` | 不支持 | | ||
| 164 | +| 内存管理 | `aclrtMallocHost` | 不支持 | | ||
| 165 | +| 内存管理 | `aclrtMallocHostWithCfg` | 不支持 | | ||
| 166 | +| 内存管理 | `aclrtFreeHost` | 不支持 | | ||
| 167 | +| 内存管理 | `aclrtFreeHostWithDevSync` | 不支持 | | ||
| 168 | +| 内存管理 | `aclrtMemset` | 支持 | | ||
| 169 | +| 内存管理 | `aclrtMemsetAsync` | 支持 | | ||
| 170 | +| 内存管理 | `aclrtMemcpy` | 支持 | | ||
| 171 | +| 内存管理 | `aclrtMemcpyAsync` | 支持 | | ||
| 172 | +| 内存管理 | `aclrtMemcpyAsyncWithCondition` | 不支持 | | ||
| 173 | +| 内存管理 | `aclrtMemcpyBatch` | 不支持 | | ||
| 174 | +| 内存管理 | `aclrtMemcpyBatchAsync` | 不支持 | | ||
| 175 | +| 内存管理 | `aclrtMemcpy2d` | 不支持 | | ||
| 176 | +| 内存管理 | `aclrtMemcpy2dAsync` | 不支持 | | ||
| 177 | +| 内存管理 | `aclrtGetMemcpyDescSize` | 不支持 | | ||
| 178 | +| 内存管理 | `aclrtSetMemcpyDesc` | 不支持 | | ||
| 179 | +| 内存管理 | `aclrtMemcpyAsyncWithDesc` | 不支持 | | ||
| 180 | +| 内存管理 | `aclrtMemcpyAsyncWithOffset` | 不支持 | | ||
| 181 | +| 内存管理 | `aclrtMallocPhysical` | 不支持 | | ||
| 182 | +| 内存管理 | `aclrtFreePhysical` | 不支持 | | ||
| 183 | +| 内存管理 | `aclrtReserveMemAddress` | 不支持 | | ||
| 184 | +| 内存管理 | `aclrtReserveMemAddressNoUCMemory` | 不支持 | | ||
| 185 | +| 内存管理 | `aclrtReleaseMemAddress` | 不支持 | | ||
| 186 | +| 内存管理 | `aclrtMapMem` | 不支持 | | ||
| 187 | +| 内存管理 | `aclrtUnmapMem` | 不支持 | | ||
| 188 | +| 内存管理 | `aclrtMemExportToShareableHandle` | 不支持 | | ||
| 189 | +| 内存管理 | `aclrtMemSetPidToShareableHandle` | 不支持 | | ||
| 190 | +| 内存管理 | `aclrtMemImportFromShareableHandle` | 不支持 | | ||
| 191 | +| 内存管理 | `aclrtMemExportToShareableHandleV2` | 不支持 | | ||
| 192 | +| 内存管理 | `aclrtMemSetPidToShareableHandleV2` | 不支持 | | ||
| 193 | +| 内存管理 | `aclrtMemImportFromShareableHandleV2` | 不支持 | | ||
| 194 | +| 内存管理 | `aclrtDeviceGetBareTgid` | 不支持 | | ||
| 195 | +| 内存管理 | `aclrtMemGetAllocationGranularity` | 不支持 | | ||
| 196 | +| 内存管理 | `aclrtMemSetAccess` | 不支持 | | ||
| 197 | +| 内存管理 | `aclrtMemGetAccess` | 不支持 | | ||
| 198 | +| 内存管理 | `aclrtMemRetainAllocationHandle` | 不支持 | | ||
| 199 | +| 内存管理 | `aclrtMemGetAllocationPropertiesFromHandle` | 不支持 | | ||
| 200 | +| 内存管理 | `aclrtMemGetAddressRange` | 不支持 | | ||
| 201 | +| 内存管理 | `aclrtCmoAsync` | 不支持 | | ||
| 202 | +| 内存管理 | `aclrtCmoAsyncWithBarrier` | 不支持 | | ||
| 203 | +| 内存管理 | `aclrtCmoWaitBarrier` | 不支持 | | ||
| 204 | +| 内存管理 | `aclrtCmoGetDescSize` | 不支持 | | ||
| 205 | +| 内存管理 | `aclrtCmoSetDesc` | 不支持 | | ||
| 206 | +| 内存管理 | `aclrtCmoAsyncWithDesc` | 不支持 | | ||
| 207 | +| 内存管理 | `aclrtPointerGetAttributes` | 支持 | | ||
| 208 | +| 内存管理 | `aclrtHostRegister` | 不支持 | | ||
| 209 | +| 内存管理 | `aclrtHostRegisterV2` | 不支持 | | ||
| 210 | +| 内存管理 | `aclrtHostGetDevicePointer` | 不支持 | | ||
| 211 | +| 内存管理 | `aclrtHostUnregister` | 不支持 | | ||
| 212 | +| 内存管理 | `aclrtHostMemMapCapabilities` | 不支持 | | ||
| 213 | +| 内存管理 | `aclrtValueWrite` | 支持 | | ||
| 214 | +| 内存管理 | `aclrtValueWait` | 不支持 | | ||
| 215 | +| 内存管理 | `aclrtIpcMemGetExportKey` | 不支持 | | ||
| 216 | +| 内存管理 | `aclrtIpcMemSetImportPid` | 不支持 | | ||
| 217 | +| 内存管理 | `aclrtIpcMemImportPidInterServer` | 不支持 | | ||
| 218 | +| 内存管理 | `aclrtIpcMemImportByKey` | 不支持 | | ||
| 219 | +| 内存管理 | `aclrtIpcMemSetAttr` | 不支持 | | ||
| 220 | +| 内存管理 | `aclrtIpcMemClose` | 不支持 | | ||
| 221 | +| 内存管理 | `aclrtGetMemInfo` | 不支持 | | ||
| 222 | +| 内存管理 | `aclrtCheckMemType` | 不支持 | | ||
| 223 | +| 内存管理 | `aclrtGetMemUsageInfo` | 不支持 | | ||
| 224 | +| 内存管理 | `aclrtAllocatorRegister` | 不支持 | | ||
| 225 | +| 内存管理 | `aclrtAllocatorGetByStream` | 不支持 | | ||
| 226 | +| 内存管理 | `aclrtAllocatorUnregister` | 不支持 | | ||
| 227 | +| 内存管理 | `aclrtMemPoolCreate` | 不支持 | | ||
| 228 | +| 内存管理 | `aclrtMemPoolDestroy` | 不支持 | | ||
| 229 | +| 内存管理 | `aclrtMemPoolGetAttr` | 不支持 | | ||
| 230 | +| 内存管理 | `aclrtMemPoolSetAttr` | 不支持 | | ||
| 231 | +| 内存管理 | `aclrtMemPoolMallocAsync` | 不支持 | | ||
| 232 | +| 内存管理 | `aclrtMemPoolFreeAsync` | 不支持 | | ||
| 233 | +| 内存管理 | `aclrtMemPoolTrimTo` | 不支持 | | ||
| 234 | +| 内存管理 | `aclrtGetSymbolAddress` | 不支持 | | ||
| 235 | +| 内存管理 | `aclrtGetSymbolSize` | 不支持 | | ||
| 236 | +| 内存管理 | `aclrtMemcpyFromSymbol` | 不支持 | | ||
| 237 | +| 内存管理 | `aclrtMemcpyFromSymbolAsync` | 不支持 | | ||
| 238 | +| 内存管理 | `aclrtMemcpyToSymbol` | 不支持 | | ||
| 239 | +| 内存管理 | `aclrtMemcpyToSymbolAsync` | 不支持 | | ||
| 240 | +| 内存管理 | `aclrtMemsetD32` | 不支持 | | ||
| 241 | +| 内存管理 | `aclrtMemsetD32Async` | 不支持 | | ||
| 242 | +| 内存管理 | `aclrtMemcpyBatchV2` | 不支持 | | ||
| 243 | +| 内存管理 | `aclrtMemcpyBatchAsyncV2` | 不支持 | | ||
| 244 | +| 内存管理 | `aclrtMemMapSelectedLink` | 不支持 | | ||
| 245 | +| 内存管理 | `aclrtMemAllocManaged` | 不支持 | | ||
| 246 | +| 内存管理 | `aclrtMemManagedAdvise` | 不支持 | | ||
| 247 | +| 内存管理 | `aclrtMemManagedGetAttr` | 不支持 | | ||
| 248 | +| 内存管理 | `aclrtMemManagedGetAttrs` | 不支持 | | ||
| 249 | +| 内存管理 | `aclrtMemManagedPrefetchAsync` | 不支持 | | ||
| 250 | +| 内存管理 | `aclrtMemManagedPrefetchBatchAsync` | 不支持 | | ||
| 251 | +| 内存管理 | `aclrtMemP2PMap` | 不支持 | | ||
| 252 | +| 执行控制 | `aclrtLaunchCallback` | 不支持 | | ||
| 253 | +| 执行控制 | `aclrtSubscribeReport` | 不支持 | | ||
| 254 | +| 执行控制 | `aclrtProcessReport` | 不支持 | | ||
| 255 | +| 执行控制 | `aclrtUnSubscribeReport` | 不支持 | | ||
| 256 | +| 执行控制 | `aclrtSubscribeHostFunc` | 不支持 | | ||
| 257 | +| 执行控制 | `aclrtProcessHostFunc` | 不支持 | | ||
| 258 | +| 执行控制 | `aclrtUnSubscribeHostFunc` | 不支持 | | ||
| 259 | +| 执行控制 | `aclrtGetOpTimeoutInterval` | 支持 | | ||
| 260 | +| 执行控制 | `aclrtSetOpExecuteTimeOut` | 不支持 | | ||
| 261 | +| 执行控制 | `aclrtSetOpExecuteTimeOutV2` | 支持 | | ||
| 262 | +| 执行控制 | `aclrtSetOpExecuteTimeOutWithMs` | 不支持 | | ||
| 263 | +| 执行控制 | `aclrtGetOpExecuteTimeOut` | 支持 | | ||
| 264 | +| 执行控制 | `aclrtGetThreadLastTaskId` | 支持 | | ||
| 265 | +| 执行控制 | `aclrtReduceAsync` | 不支持 | | ||
| 266 | +| 执行控制 | `aclrtLaunchHostFunc` | 支持 | | ||
| 267 | +| 执行控制 | `aclrtRandomNumAsync` | 不支持 | | ||
| 268 | +| 执行控制 | `aclrtTaskUpdateAsync` | 不支持 | | ||
| 269 | +| 异常处理 | `aclGetRecentErrMsg` | 支持 | | ||
| 270 | +| 异常处理 | `aclrtSetExceptionInfoCallback` | 不支持 | | ||
| 271 | +| 异常处理 | `aclrtGetTaskIdFromExceptionInfo` | 不支持 | | ||
| 272 | +| 异常处理 | `aclrtGetStreamIdFromExceptionInfo` | 不支持 | | ||
| 273 | +| 异常处理 | `aclrtGetThreadIdFromExceptionInfo` | 不支持 | | ||
| 274 | +| 异常处理 | `aclrtGetDeviceIdFromExceptionInfo` | 不支持 | | ||
| 275 | +| 异常处理 | `aclrtGetErrorCodeFromExceptionInfo` | 不支持 | | ||
| 276 | +| 异常处理 | `aclrtPeekAtLastError` | 支持 | | ||
| 277 | +| 异常处理 | `aclrtGetLastError` | 支持 | | ||
| 278 | +| 异常处理 | `aclrtGetMemUceInfo` | 不支持 | | ||
| 279 | +| 异常处理 | `aclrtMemUceRepair` | 不支持 | | ||
| 280 | +| 异常处理 | `aclrtDeviceTaskAbort` | 不支持 | | ||
| 281 | +| 异常处理 | `aclRecoverAllHcclTasks` | 不支持 | | ||
| 282 | +| 异常处理 | `aclrtGetErrorVerbose` | 不支持 | | ||
| 283 | +| 异常处理 | `aclrtRepairError` | 不支持 | | ||
| 284 | +| 异常处理 | `aclrtSetDeviceTaskAbortCallback` | 不支持 | | ||
| 285 | +| Kernel加载与执行 | `aclrtBinaryLoadFromFile` | 支持 | | ||
| 286 | +| Kernel加载与执行 | `aclrtBinaryLoadFromData` | 支持 | | ||
| 287 | +| Kernel加载与执行 | `aclrtBinaryGetFunction` | 支持 | | ||
| 288 | +| Kernel加载与执行 | `aclrtBinaryGetFunctionByEntry` | 支持 | | ||
| 289 | +| Kernel加载与执行 | `aclrtBinaryGetDevAddress` | 不支持 | | ||
| 290 | +| Kernel加载与执行 | `aclrtGetFunctionAddr` | 不支持 | | ||
| 291 | +| Kernel加载与执行 | `aclrtGetFunctionName` | 不支持 | | ||
| 292 | +| Kernel加载与执行 | `aclrtGetFunctionAttribute` | 不支持 | | ||
| 293 | +| Kernel加载与执行 | `aclrtGetHardwareSyncAddr` | 不支持 | | ||
| 294 | +| Kernel加载与执行 | `aclrtRegisterCpuFunc` | 支持 | | ||
| 295 | +| Kernel加载与执行 | `aclrtKernelArgsInit` | 不支持 | | ||
| 296 | +| Kernel加载与执行 | `aclrtKernelArgsInitByUserMem` | 不支持 | | ||
| 297 | +| Kernel加载与执行 | `aclrtKernelArgsGetMemSize` | 不支持 | | ||
| 298 | +| Kernel加载与执行 | `aclrtKernelArgsGetHandleMemSize` | 不支持 | | ||
| 299 | +| Kernel加载与执行 | `aclrtKernelArgsAppend` | 不支持 | | ||
| 300 | +| Kernel加载与执行 | `aclrtKernelArgsAppendPlaceHolder` | 不支持 | | ||
| 301 | +| Kernel加载与执行 | `aclrtKernelArgsGetPlaceHolderBuffer` | 不支持 | | ||
| 302 | +| Kernel加载与执行 | `aclrtKernelArgsParaUpdate` | 不支持 | | ||
| 303 | +| Kernel加载与执行 | `aclrtKernelArgsFinalize` | 不支持 | | ||
| 304 | +| Kernel加载与执行 | `aclrtLaunchKernel` | 不支持 | | ||
| 305 | +| Kernel加载与执行 | `aclrtLaunchKernelV2` | 支持 | | ||
| 306 | +| Kernel加载与执行 | `aclrtLaunchKernelWithConfig` | 不支持 | | ||
| 307 | +| Kernel加载与执行 | `aclrtLaunchKernelWithHostArgs` | 不支持 | | ||
| 308 | +| Kernel加载与执行 | `aclrtCreateBinary` | 不支持 | | ||
| 309 | +| Kernel加载与执行 | `aclrtDestroyBinary` | 不支持 | | ||
| 310 | +| Kernel加载与执行 | `aclrtBinaryLoad` | 不支持 | | ||
| 311 | +| Kernel加载与执行 | `aclrtBinaryUnLoad` | 支持 | | ||
| 312 | +| Kernel加载与执行 | `aclrtLaunchKernelWithArgsArray` | 不支持 | | ||
| 313 | +| Kernel加载与执行 | `aclrtGetFunctionSize` | 不支持 | | ||
| 314 | +| Kernel加载与执行 | `aclrtFunctionGetBinary` | 不支持 | | ||
| 315 | +| Kernel加载与执行 | `aclrtFunctionGetParamCount` | 不支持 | | ||
| 316 | +| Kernel加载与执行 | `aclrtFunctionGetParamInfo` | 不支持 | | ||
| 317 | +| Kernel加载与执行 | `aclrtFunctionGetAvailDynUbufPerBlock` | 不支持 | | ||
| 318 | +| Kernel加载与执行 | `aclrtGetFuncBySymbol` | 不支持 | | ||
| 319 | +| Kernel加载与执行 | `aclrtLaunchSIMTKernelWithHostArgs` | 不支持 | | ||
| 320 | +| Kernel加载与执行 | `aclrtLaunchSIMTKernelWithArgsArray` | 不支持 | | ||
| 321 | +| Kernel加载与执行 | `aclrtBinaryGetGlobal` | 不支持 | | ||
| 322 | +| 模型运行实例管理 | `aclmdlRICaptureBegin` | 不支持 | | ||
| 323 | +| 模型运行实例管理 | `aclmdlRICaptureGetInfo` | 不支持 | | ||
| 324 | +| 模型运行实例管理 | `aclmdlRICaptureThreadExchangeMode` | 不支持 | | ||
| 325 | +| 模型运行实例管理 | `aclmdlRICaptureEnd` | 不支持 | | ||
| 326 | +| 模型运行实例管理 | `aclmdlRICaptureTaskGrpBegin` | 不支持 | | ||
| 327 | +| 模型运行实例管理 | `aclmdlRICaptureTaskGrpEnd` | 不支持 | | ||
| 328 | +| 模型运行实例管理 | `aclmdlRICaptureTaskUpdateBegin` | 不支持 | | ||
| 329 | +| 模型运行实例管理 | `aclmdlRICaptureTaskUpdateEnd` | 不支持 | | ||
| 330 | +| 模型运行实例管理 | `aclmdlRIDebugJsonPrint` | 不支持 | | ||
| 331 | +| 模型运行实例管理 | `aclmdlRIDebugPrint` | 不支持 | | ||
| 332 | +| 模型运行实例管理 | `aclmdlRIBuildBegin` | 支持 | | ||
| 333 | +| 模型运行实例管理 | `aclmdlRIBindStream` | 支持 | | ||
| 334 | +| 模型运行实例管理 | `aclmdlRIEndTask` | 支持 | | ||
| 335 | +| 模型运行实例管理 | `aclmdlRIBuildEnd` | 支持 | | ||
| 336 | +| 模型运行实例管理 | `aclmdlRIUnbindStream` | 支持 | | ||
| 337 | +| 模型运行实例管理 | `aclmdlRIExecute` | 支持 | | ||
| 338 | +| 模型运行实例管理 | `aclmdlRIExecuteAsync` | 支持 | | ||
| 339 | +| 模型运行实例管理 | `aclmdlRIDestroy` | 支持 | | ||
| 340 | +| 模型运行实例管理 | `aclmdlRISetName` | 支持 | | ||
| 341 | +| 模型运行实例管理 | `aclmdlRIGetName` | 支持 | | ||
| 342 | +| 模型运行实例管理 | `aclrtCheckArchCompatibility` | 不支持 | | ||
| 343 | +| 模型运行实例管理 | `aclmdlRIAbort` | 不支持 | | ||
| 344 | +| 模型运行实例管理 | `aclmdlRIGetStreams` | 不支持 | | ||
| 345 | +| 模型运行实例管理 | `aclmdlRIGetTasksByStream` | 不支持 | | ||
| 346 | +| 模型运行实例管理 | `aclmdlRITaskGetType` | 不支持 | | ||
| 347 | +| 模型运行实例管理 | `aclmdlRITaskGetSeqId` | 不支持 | | ||
| 348 | +| 模型运行实例管理 | `aclmdlRITaskGetParams` | 不支持 | | ||
| 349 | +| 模型运行实例管理 | `aclmdlRITaskSetParams` | 不支持 | | ||
| 350 | +| 模型运行实例管理 | `aclmdlRIKernelTaskGetAttribute` | 不支持 | | ||
| 351 | +| 模型运行实例管理 | `aclmdlRITaskDisable` | 不支持 | | ||
| 352 | +| 模型运行实例管理 | `aclmdlRIUpdate` | 不支持 | | ||
| 353 | +| 模型运行实例管理 | `aclmdlRIDestroyRegisterCallback` | 不支持 | | ||
| 354 | +| 模型运行实例管理 | `aclmdlRIDestroyUnregisterCallback` | 不支持 | | ||
| 355 | +| 模型运行实例管理 | `aclmdlRIGetId` | 不支持 | | ||
| 356 | +| 模型运行实例管理 | `aclmdlRIAddCondTask` | 不支持 | | ||
| 357 | +| 模型运行实例管理 | `aclmdlRICondHandleCreate` | 不支持 | | ||
| 358 | +| 模型运行实例管理 | `aclmdlRICondHandleGetCondPtr` | 不支持 | | ||
| 359 | +| 模型运行实例管理 | `aclmdlRICaptureToModelRIBegin` | 不支持 | | ||
| 360 | +| 算力Group查询与设置 | `aclrtSetGroup` | 不支持 | | ||
| 361 | +| 算力Group查询与设置 | `aclrtGetGroupCount` | 不支持 | | ||
| 362 | +| 算力Group查询与设置 | `aclrtGetAllGroupInfo` | 不支持 | | ||
| 363 | +| 算力Group查询与设置 | `aclrtGetGroupInfoDetail` | 不支持 | | ||
| 364 | +| 算力Group查询与设置 | `aclrtCreateGroupInfo` | 不支持 | | ||
| 365 | +| 算力Group查询与设置 | `aclrtDestroyGroupInfo` | 不支持 | | ||
| 366 | +| 共享Buffer管理 | `aclrtAllocBuf` | 不支持 | | ||
| 367 | +| 共享Buffer管理 | `aclrtFreeBuf` | 不支持 | | ||
| 368 | +| 共享Buffer管理 | `aclrtGetBufData` | 不支持 | | ||
| 369 | +| 共享Buffer管理 | `aclrtSetBufUserData` | 不支持 | | ||
| 370 | +| 共享Buffer管理 | `aclrtGetBufUserData` | 不支持 | | ||
| 371 | +| 共享Buffer管理 | `aclrtGetBufDataLen` | 不支持 | | ||
| 372 | +| 共享Buffer管理 | `aclrtSetBufDataLen` | 不支持 | | ||
| 373 | +| 共享Buffer管理 | `aclrtCopyBufRef` | 不支持 | | ||
| 374 | +| 共享Buffer管理 | `aclrtAppendBufChain` | 不支持 | | ||
| 375 | +| 共享Buffer管理 | `aclrtGetBufFromChain` | 不支持 | | ||
| 376 | +| 共享Buffer管理 | `aclrtGetBufChainNum` | 不支持 | | ||
| 377 | +| 快照管理 | `aclrtSnapShotProcessLock` | 不支持 | | ||
| 378 | +| 快照管理 | `aclrtSnapShotProcessBackup` | 不支持 | | ||
| 379 | +| 快照管理 | `aclrtSnapShotProcessRestore` | 不支持 | | ||
| 380 | +| 快照管理 | `aclrtSnapShotProcessUnlock` | 不支持 | | ||
| 381 | +| 快照管理 | `aclrtSnapShotCallbackRegister` | 不支持 | | ||
| 382 | +| 快照管理 | `aclrtSnapShotCallbackUnregister` | 不支持 | | ||
| 383 | +| 其他接口 | `aclAppLog` | 支持 | | ||
| 384 | +| 其他接口 | `aclDataTypeSize` | 不支持 | | ||
| 385 | +| 其他接口 | `aclFloat16ToFloat` | 不支持 | | ||
| 386 | +| 其他接口 | `aclFloatToFloat16` | 不支持 | | ||
| 387 | +| 其他接口 | `aclrtGetVersion` | 支持 | | ||
| 388 | +| 其他接口 | `aclsysGetCANNVersion(废弃)` | 不支持 | | ||
| 389 | +| 其他接口 | `aclGetCannAttributeList` | 不支持 | | ||
| 390 | +| 其他接口 | `aclGetCannAttribute` | 不支持 | | ||
| 391 | +| 其他接口 | `aclGetDeviceCapability` | 不支持 | | ||
| 392 | +| 其他接口 | `aclrtCacheLastTaskOpInfo` | 不支持 | | ||
| 393 | +| 其他接口 | `aclrtProfTrace` | 不支持 | | ||
| 394 | +| 其他接口 | `aclsysGetVersionStr` | 支持 | | ||
| 395 | +| 其他接口 | `aclsysGetVersionNum` | 支持 | | ||
| 396 | +| 其他接口 | `aclrtCacheLastTaskExtendInfo` | 不支持 | | ||
| 397 | +| 其他接口 | `aclplatformGetDeviceInfo` | 不支持 | | ||
| 398 | +| 其他接口 | `aclplatformGetInstructionInfo` | 不支持 | | ||
| 399 | +| 新增接口临时存放 | `aclrtResetFloatOverflowStatus` | 不支持 | | ||
| 400 | +| 新增接口临时存放 | `aclrtNpuGetFloatOverFlowStatus` | 不支持 | | ||
| 401 | +| 新增接口临时存放 | `aclrtNpuClearFloatOverFlowStatus` | 不支持 | | ||
| 402 | +| 新增接口临时存放 | `aclrtBinarySetExceptionCallback` | 不支持 | | ||
| 403 | +| 新增接口临时存放 | `aclrtGetArgsFromExceptionInfo` | 不支持 | | ||
| 404 | +| 新增接口临时存放 | `aclrtGetFuncHandleFromExceptionInfo` | 不支持 | | ||
| 405 | +| Dump配置 | `aclmdlInitDump` | 待确认 | | ||
| 406 | +| Dump配置 | `aclmdlSetDump` | 待确认 | | ||
| 407 | +| Dump配置 | `acldumpRegCallback` | 待确认 | | ||
| 408 | +| Dump配置 | `acldumpUnregCallback` | 待确认 | | ||
| 409 | +| Dump配置 | `acldumpGetPath` | 待确认 | | ||
| 410 | +| Dump配置 | `aclmdlFinalizeDump` | 待确认 | | ||
| 411 | +| Dump配置 | `aclopStartDumpArgs` | 待确认 | | ||
| 412 | +| Dump配置 | `aclopStopDumpArgs` | 待确认 | | ||
| 413 | +| Profiling数据采集 | `aclprofInit` | 待确认 | | ||
| 414 | +| Profiling数据采集 | `aclprofSetConfig` | 待确认 | | ||
| 415 | +| Profiling数据采集 | `aclprofStart` | 待确认 | | ||
| 416 | +| Profiling数据采集 | `aclprofStop` | 待确认 | | ||
| 417 | +| Profiling数据采集 | `aclprofFinalize` | 待确认 | | ||
| 418 | +| Profiling数据采集 | `aclprofPop` | 待确认 | | ||
| 419 | +| Profiling数据采集 | `aclprofRangeStart` | 待确认 | | ||
| 420 | +| Profiling数据采集 | `aclprofRangeStop` | 待确认 | | ||
| 421 | +| Profiling数据采集 | `aclprofDestroyStamp` | 待确认 | | ||
| 422 | +| Profiling数据采集 | `aclprofStr2Id` | 待确认 | | ||
| 423 | +| Profiling数据采集 | `aclprofRangePushEx` | 待确认 | | ||
| 424 | +| Profiling数据采集 | `aclprofRangePop` | 待确认 | | ||
| 425 | +| Profiling数据采集 | `aclprofCreateStamp` | 待确认 | | ||
| 426 | +| Profiling数据采集 | `aclprofSetStampCategory(删除)` | 不支持 | | ||
| 427 | +| Profiling数据采集 | `aclprofSetCategoryName(删除)` | 不支持 | | ||
| 428 | +| Profiling数据采集 | `aclprofSetStampPayload(删除)` | 不支持 | | ||
| 429 | +| Profiling数据采集 | `aclprofSetStampTraceMessage` | 待确认 | | ||
| 430 | +| Profiling数据采集 | `aclprofMark` | 待确认 | | ||
| 431 | +| Profiling数据采集 | `aclprofMarkEx` | 待确认 | | ||
| 432 | +| Profiling数据采集 | `aclprofPush` | 待确认 | | ||
| 433 | +| Profiling数据采集 | `aclprofGetOpStart` | 待确认 | | ||
| 434 | +| Profiling数据采集 | `aclprofGetOpEnd` | 待确认 | | ||
| 435 | +| Profiling数据采集 | `aclprofGetOpDuration` | 待确认 | | ||
| 436 | +| Profiling数据采集 | `aclprofGetOpFlag` | 待确认 | | ||
| 437 | +| Profiling数据采集 | `aclprofGetOpAttriValue` | 待确认 | | ||
| 438 | +| Profiling数据采集 | `aclprofGetModelId` | 待确认 | | ||
| 439 | +| Profiling数据采集 | `aclprofGetOpCubeOps` | 待确认 | | ||
| 440 | +| Profiling数据采集 | `aclprofGetOpVectorOps` | 待确认 | | ||
| 441 | +| Profiling数据采集 | `aclprofModelSubscribe` | 待确认 | | ||
| 442 | +| Profiling数据采集 | `aclprofModelUnSubscribe` | 待确认 | | ||
| 443 | +| Profiling数据采集 | `aclprofGetOpDescSize` | 待确认 | | ||
| 444 | +| Profiling数据采集 | `aclprofGetOpNum` | 待确认 | | ||
| 445 | +| Profiling数据采集 | `aclprofGetOpTypeLen` | 待确认 | | ||
| 446 | +| Profiling数据采集 | `aclprofGetOpType` | 待确认 | | ||
| 447 | +| Profiling数据采集 | `aclprofGetOpNameLen` | 待确认 | | ||
| 448 | +| Profiling数据采集 | `aclprofGetOpName` | 待确认 | | ||
| 449 | +| Profiling数据采集 | `aclprofGetStepTimestamp` | 待确认 | | ||
| 450 | +| 日志接口 | `acllogRegisterCallback` | 不支持 | | ||
| 451 | +| 日志接口 | `acllogUnregisterCallback` | 不支持 | | ||
| 452 | +| 数据传输 | `acltdtCreateChannel` | 不支持 | | ||
| 453 | +| 数据传输 | `acltdtCreateChannelWithCapacity` | 不支持 | | ||
| 454 | +| 数据传输 | `acltdtSendTensor` | 不支持 | | ||
| 455 | +| 数据传输 | `acltdtReceiveTensor` | 不支持 | | ||
| 456 | +| 数据传输 | `acltdtStopChannel` | 不支持 | | ||
| 457 | +| 数据传输 | `acltdtDestroyChannel` | 不支持 | | ||
| 458 | +| 数据传输 | `acltdtQueryChannelSize` | 不支持 | | ||
| 459 | +| 数据传输 | `acltdtGetSliceInfoFromItem` | 不支持 | | ||
| 460 | +| 数据传输 | `acltdtCleanChannel` | 不支持 | | ||
| 461 | +| 数据传输 | `acltdtQueryQueueRoutes` | 不支持 | | ||
| 462 | +| 数据传输 | `acltdtGrantQueue` | 不支持 | | ||
| 463 | +| 数据传输 | `acltdtAttachQueue` | 不支持 | | ||
| 464 | +| 数据传输 | `acltdtCreateQueue` | 不支持 | | ||
| 465 | +| 数据传输 | `acltdtDestroyQueue` | 不支持 | | ||
| 466 | +| 数据传输 | `acltdtEnqueueData` | 不支持 | | ||
| 467 | +| 数据传输 | `acltdtDequeueData` | 不支持 | | ||
| 468 | +| 数据传输 | `acltdtEnqueue` | 不支持 | | ||
| 469 | +| 数据传输 | `acltdtDequeue` | 不支持 | | ||
| 470 | +| 数据传输 | `acltdtBindQueueRoutes` | 不支持 | | ||
| 471 | +| 数据传输 | `acltdtUnbindQueueRoutes` | 不支持 | | ||
| 472 | +| 数据传输 | `acltdtAppendBufChain` | 不支持 | | ||
| 473 | +| 数据传输 | `acltdtGetBufChainNum` | 不支持 | | ||
| 474 | +| 数据传输 | `acltdtGetBufFromChain` | 不支持 | | ||
| 475 | +| 数据传输 | `acltdtAllocBuf` | 不支持 | | ||
| 476 | +| 数据传输 | `acltdtFreeBuf` | 不支持 | | ||
| 477 | +| 数据传输 | `acltdtGetBufData` | 不支持 | | ||
| 478 | +| 数据传输 | `acltdtSetBufUserData` | 不支持 | | ||
| 479 | +| 数据传输 | `acltdtGetBufUserData` | 不支持 | | ||
| 480 | +| 数据传输 | `acltdtSetBufDataLen` | 不支持 | | ||
| 481 | +| 数据传输 | `acltdtGetBufDataLen` | 不支持 | | ||
| 482 | +| 数据传输 | `acltdtCopyBufRef` | 不支持 | | ||
| 483 | + | ||
| 484 | +## 4. Runtime API 支持情况 | ||
| 485 | + | ||
| 486 | +| 功能分类 | API | arch5162 是否支持 | | ||
| 487 | +|---|---|---| | ||
| 488 | +| rt_external_stream.h | `rtStreamGetSqid` | 支持 | | ||
| 489 | +| rt_external_stream.h | `rtStreamGetCqid` | 支持 | | ||
| 490 | +| rt_external_stream.h | `rtDebugRegisterForStream` | 不支持 | | ||
| 491 | +| rt_external_stream.h | `rtStreamCreateWithFlags` | 支持 | | ||
| 492 | +| rt_external_stream.h | `rtStreamGetWorkspace` | 不支持 | | ||
| 493 | +| rt_external_stream.h | `rtGetMaxStreamAndTask` | 支持 | | ||
| 494 | +| rt_external_device.h | `rtSetSocVersion` | 支持 | | ||
| 495 | +| rt_external_device.h | `rtDebugSetDumpMode` | 不支持 | | ||
| 496 | +| rt_external_device.h | `rtDebugGetStalledCore` | 不支持 | | ||
| 497 | +| rt_external_device.h | `rtInit` | 不支持 | | ||
| 498 | +| rt_external_device.h | `rtDeinit` | 不支持 | | ||
| 499 | +| rt_external_device.h | `rtGetDevResAddress` | 不支持 | | ||
| 500 | +| rt_external_device.h | `rtReleaseDevResAddress` | 不支持 | | ||
| 501 | +| rt_external_device.h | `rtUbDevQueryInfo` | 不支持 | | ||
| 502 | +| rt_external_device.h | `rtOpenNetService` | 不支持 | | ||
| 503 | +| rt_external_device.h | `rtCloseNetService` | 不支持 | | ||
| 504 | +| rt_external_device.h | `rtSetDeviceWithoutTsd` | 支持 | | ||
| 505 | +| rt_external_device.h | `rtGetDevMsg` | 不支持 | | ||
| 506 | +| rt_external_device.h | `rtGetDeviceInfo` | 支持 | | ||
| 507 | +| rt_external_device.h | `rtsDeviceGetCapability` | 不支持 | | ||
| 508 | +| rt_external_device.h | `rtSetDeviceWithFlags` | 支持 | | ||
| 509 | +| rt_external_device.h | `rtEnableP2P` | 不支持 | | ||
| 510 | +| rt_external_device.h | `rtDisableP2P` | 不支持 | | ||
| 511 | +| rt_external_device.h | `rtGetP2PStatus` | 不支持 | | ||
| 512 | +| rt_external_device.h | `rtGetPairPhyDevicesInfo` | 不支持 | | ||
| 513 | +| rt_external_device.h | `rtGetPhyDeviceInfo` | 不支持 | | ||
| 514 | +| rt_external_device.h | `rtGetPairDevicesInfo` | 不支持 | | ||
| 515 | +| rt_external_device.h | `rtGetServerIDBySDID` | 不支持 | | ||
| 516 | +| rt_external_device.h | `rtXpuSetTaskFailCallback` | 不支持 | | ||
| 517 | +| rt_external_device.h | `rtGetRtCapability` | 不支持 | | ||
| 518 | +| rt_external_device.h | `rtGetTSDevice` | 不支持 | | ||
| 519 | +| rt_external_device.h | `rtGetDeviceCapability` | 不支持 | | ||
| 520 | +| rt_external_device.h | `rtGetTsMemType` | 支持 | | ||
| 521 | +| rt_external_ffts.h | `rtFftsPlusTaskLaunch` | 不支持 | | ||
| 522 | +| rt_external_ffts.h | `rtFftsPlusTaskLaunchWithFlag` | 不支持 | | ||
| 523 | +| rt_external_kernel.h | `rtGetNotifyAddress` | 不支持 | | ||
| 524 | +| rt_external_kernel.h | `rtSetExceptionExtInfo` | 不支持 | | ||
| 525 | +| rt_external_kernel.h | `rtKernelFusionStart` | 不支持 | | ||
| 526 | +| rt_external_kernel.h | `rtKernelFusionEnd` | 不支持 | | ||
| 527 | +| rt_external_kernel.h | `rtMetadataRegister` | 不支持 | | ||
| 528 | +| rt_external_kernel.h | `rtAicpuKernelLaunchExWithArgs` | 不支持 | | ||
| 529 | +| rt_external_kernel.h | `rtGetDevArgsAddr` | 不支持 | | ||
| 530 | +| rt_external_kernel.h | `rtDumpAddrSet` | 不支持 | | ||
| 531 | +| rt_external_kernel.h | `rtDatadumpInfoLoad` | 支持 | | ||
| 532 | +| rt_external_kernel.h | `rtAicpuInfoLoad` | 不支持 | | ||
| 533 | +| rt_external_kernel.h | `rtCCULaunch` | 不支持 | | ||
| 534 | +| rt_external_kernel.h | `rtCpuKernelLaunchWithFlag` | 不支持 | | ||
| 535 | +| rt_external_kernel.h | `rtBinarySetExceptionCallback` | 不支持 | | ||
| 536 | +| rt_external_kernel.h | `rtGetFuncHandleFromExceptionInfo` | 不支持 | | ||
| 537 | +| rt_external_kernel.h | `rtBinaryGetMetaNum` | 不支持 | | ||
| 538 | +| rt_external_kernel.h | `rtBinaryGetMetaInfo` | 不支持 | | ||
| 539 | +| rt_external_kernel.h | `rtFunctionGetMetaInfo` | 不支持 | | ||
| 540 | +| rt_external_kernel.h | `rtFunctionGetMetaInfoSize` | 不支持 | | ||
| 541 | +| rt_external_kernel.h | `rtGetL2CacheOffset` | 不支持 | | ||
| 542 | +| rt_external_kernel.h | `rtFusionLaunch` | 不支持 | | ||
| 543 | +| rt_external_kernel.h | `rtRegisterAllKernel` | 不支持 | | ||
| 544 | +| rt_external_kernel.h | `rtNopTask` | 不支持 | | ||
| 545 | +| rt_external_kernel.h | `rtRegisterVariable` | 不支持 | | ||
| 546 | +| rt_external_kernel.h | `rtRegisterFuncSymbol` | 不支持 | | ||
| 547 | +| rt_external_base.h | `rtProfSetProSwitch` | 支持 | | ||
| 548 | +| rt_external_base.h | `rtProfRegisterCtrlCallback` | 支持 | | ||
| 549 | +| rt_external_base.h | `rtGetTaskIdAndStreamID` | 支持 | | ||
| 550 | +| rt_external_base.h | `rtBindHostPid` | 不支持 | | ||
| 551 | +| rt_external_base.h | `rtUnbindHostPid` | 不支持 | | ||
| 552 | +| rt_external_base.h | `rtQueryProcessHostPid` | 不支持 | | ||
| 553 | +| rt_external_base.h | `rtRegTaskFailCallbackByModule` | 不支持 | | ||
| 554 | +| rt_external_base.h | `rtGetSocSpec` | 支持 | | ||
| 555 | +| rt_external_model.h | `rtSetStreamSqLock` | 不支持 | | ||
| 556 | +| rt_external_model.h | `rtSetStreamSqUnlock` | 不支持 | | ||
| 557 | +| rt_external_model.h | `rtNanoModelDestroy` | 不支持 | | ||
| 558 | +| rt_external_model.h | `rtModelBindQueue` | 不支持 | | ||
| 559 | +| rt_external_model.h | `rtNanoModelLoad` | 不支持 | | ||
| 560 | +| rt_external_model.h | `rtNanoModelExecute` | 不支持 | | ||
| 561 | +| rt_external_model.h | `rtMsgSend` | 不支持 | | ||
| 562 | +| rt_external_model.h | `rtSetTaskDescDumpFlag` | 不支持 | | ||
| 563 | +| rt_external_model.h | `rtDumpInit` | 不支持 | | ||
| 564 | +| rt_external_model.h | `rtDumpDeInit` | 不支持 | | ||
| 565 | +| rt_external_model.h | `rtStreamAddToModel` | 不支持 | | ||
| 566 | +| rt_external_model.h | `rtDebugRegister` | 不支持 | | ||
| 567 | +| rt_external_model.h | `rtDebugUnRegister` | 不支持 | | ||
| 568 | +| rt_external_model.h | `rtDebugUnRegisterForStream` | 不支持 | | ||
| 569 | +| rt_external_model.h | `rtModelGetId` | 不支持 | | ||
| 570 | +| rt_external_mem.h | `rtMemQueueInitFlowGw` | 不支持 | | ||
| 571 | +| rt_external_mem.h | `rtMemQueueInit` | 不支持 | | ||
| 572 | +| rt_external_mem.h | `rtBuffGetInfo` | 不支持 | | ||
| 573 | +| rt_external_mem.h | `rtMbufAlloc` | 不支持 | | ||
| 574 | +| rt_external_mem.h | `rtMbufAllocEx` | 不支持 | | ||
| 575 | +| rt_external_mem.h | `rtMbufFree` | 不支持 | | ||
| 576 | +| rt_external_mem.h | `rtMbufSetDataLen` | 不支持 | | ||
| 577 | +| rt_external_mem.h | `rtMbufGetDataLen` | 不支持 | | ||
| 578 | +| rt_external_mem.h | `rtMbufGetBuffAddr` | 不支持 | | ||
| 579 | +| rt_external_mem.h | `rtMbufGetBuffSize` | 不支持 | | ||
| 580 | +| rt_external_mem.h | `rtMbufGetPrivInfo` | 不支持 | | ||
| 581 | +| rt_external_mem.h | `rtMbufCopyBufRef` | 不支持 | | ||
| 582 | +| rt_external_mem.h | `rtBuffGet` | 不支持 | | ||
| 583 | +| rt_external_mem.h | `rtBuffFree` | 不支持 | | ||
| 584 | +| rt_external_mem.h | `rtMbufBuild` | 不支持 | | ||
| 585 | +| rt_external_mem.h | `rtMbufUnBuild` | 不支持 | | ||
| 586 | +| rt_external_mem.h | `rtBuffPut` | 不支持 | | ||
| 587 | +| rt_external_mem.h | `rtMbufInit` | 不支持 | | ||
| 588 | +| rt_external_mem.h | `rtBuffAlloc` | 不支持 | | ||
| 589 | +| rt_external_mem.h | `rtBuffConfirm` | 不支持 | | ||
| 590 | +| rt_external_mem.h | `rtQueryDevPid` | 不支持 | | ||
| 591 | +| rt_external_mem.h | `rtEschedSubmitEventSync` | 不支持 | | ||
| 592 | +| rt_external_mem.h | `rtMemGrpCreate` | 不支持 | | ||
| 593 | +| rt_external_mem.h | `rtMemGrpCacheAlloc` | 不支持 | | ||
| 594 | +| rt_external_mem.h | `rtMemGrpAddProc` | 不支持 | | ||
| 595 | +| rt_external_mem.h | `rtMemGrpAttach` | 不支持 | | ||
| 596 | +| rt_external_mem.h | `rtMemGrpQuery` | 不支持 | | ||
| 597 | +| rt_external_mem.h | `rtMemQueueGetQidByName` | 不支持 | | ||
| 598 | +| rt_external_mem.h | `rtEschedAttachDevice` | 不支持 | | ||
| 599 | +| rt_external_mem.h | `rtEschedDettachDevice` | 不支持 | | ||
| 600 | +| rt_external_mem.h | `rtEschedWaitEvent` | 不支持 | | ||
| 601 | +| rt_external_mem.h | `rtQueueSubscribe` | 不支持 | | ||
| 602 | +| rt_external_mem.h | `rtEschedAckEvent` | 不支持 | | ||
| 603 | +| rt_external_mem.h | `rtQueueSubF2NFEvent` | 不支持 | | ||
| 604 | +| rt_external_mem.h | `rtEschedCreateGrp` | 不支持 | | ||
| 605 | +| rt_external_mem.h | `rtEschedSubmitEvent` | 不支持 | | ||
| 606 | +| rt_external_mem.h | `rtEschedSubscribeEvent` | 不支持 | | ||
| 607 | +| rt_external_mem.h | `rtEschedQueryInfo` | 不支持 | | ||
| 608 | +| rt_external_mem.h | `rtDebugReadAICore` | 不支持 | | ||
| 609 | +| rt_external_mem.h | `rtRDMASend` | 不支持 | | ||
| 610 | +| rt_external_mem.h | `rtRDMADBSend` | 不支持 | | ||
| 611 | +| rt_external_mem.h | `rtUbDbSend` | 不支持 | | ||
| 612 | +| rt_external_mem.h | `rtUbDirectSend` | 不支持 | | ||
| 613 | +| rt_external_mem.h | `rtMemAlloc` | 不支持 | | ||
| 614 | +| rt_external_mem.h | `rtMemQueueCreate` | 不支持 | | ||
| 615 | +| rt_external_mem.h | `rtMemQueueSet` | 不支持 | | ||
| 616 | +| rt_external_mem.h | `rtMemQueueDestroy` | 不支持 | | ||
| 617 | +| rt_external_mem.h | `rtMemQueueReset` | 不支持 | | ||
| 618 | +| rt_external_mem.h | `rtMemQueueEnQueue` | 不支持 | | ||
| 619 | +| rt_external_mem.h | `rtMemQueueDeQueue` | 不支持 | | ||
| 620 | +| rt_external_mem.h | `rtMemQueuePeek` | 不支持 | | ||
| 621 | +| rt_external_mem.h | `rtBufEventTrigger` | 不支持 | | ||
| 622 | +| rt_external_mem.h | `rtMemQueueEnQueueBuff` | 不支持 | | ||
| 623 | +| rt_external_mem.h | `rtMemQueueDeQueueBuff` | 不支持 | | ||
| 624 | +| rt_external_mem.h | `rtMemQueueQueryInfo` | 不支持 | | ||
| 625 | +| rt_external_mem.h | `rtMemQueueQuery` | 不支持 | | ||
| 626 | +| rt_external_mem.h | `rtMemQueueGrant` | 不支持 | | ||
| 627 | +| rt_external_mem.h | `rtMemQueueAttach` | 不支持 | | ||
| 628 | +| rt_external_mem.h | `rtDvppMallocWithFlag` | 不支持 | | ||
| 629 | +| rt_external_mem.h | `rtMemcpyAsyncPtr` | 不支持 | | ||
| 630 | +| rt_external_mem.h | `rtMemcpyEx` | 不支持 | | ||
| 631 | +| rt_external_mem.h | `rtMemcpy` | 支持 | | ||
| 632 | +| rt_external_mem.h | `rtLaunchSqeUpdateTask` | 不支持 | | ||
| 633 | +| rt_external_mem.h | `rtMallocPhysical` | 不支持 | | ||
| 634 | +| rt_external_event.h | `rtNotifyGetAddrOffset` | 不支持 | | ||
| 635 | +| rt_external_event.h | `rtNotifyGetPhyInfo` | 不支持 | | ||
| 636 | +| rt_external_event.h | `rtNotifyGetPhyInfoExt` | 不支持 | | ||
| 637 | +| rt_external_event.h | `rtSetTaskTag` | 不支持 | | ||
| 638 | +| rt_external_event.h | `rtEventWorkModeSet` | 不支持 | | ||
| 639 | +| rt_external_event.h | `rtEventWorkModeGet` | 不支持 | | ||
| 640 | +| rt_external_event.h | `rtNotifyResetAll` | 不支持 | | ||
| 641 | +| rt_external_dqs.h | `rtLaunchDqsTask` | 不支持 | | ||
| 642 | +| rt_external_preload.h | `rtGetTaskBufferLen` | 不支持 | | ||
| 643 | +| rt_external_preload.h | `rtTaskBuild` | 不支持 | | ||
| 644 | +| rt_external_stars.h | `rtNeedDevVA2PA` | 支持 | | ||
| 645 | +| rt_external_stars.h | `rtDevVA2PA` | 不支持 | | ||
| 646 | +| rt_external_stars.h | `rtStreamCreateByGrp` | 不支持 | | ||
| 647 | +| rt_external_stars.h | `rtDvppGroupCreate` | 不支持 | | ||
| 648 | +| rt_external_stars.h | `rtDvppGroupDestory` | 不支持 | | ||
| 649 | +| rt_external_stars.h | `rtDvppWaitGroupReport` | 不支持 | | ||
| 650 | +| rt_external_stars.h | `rtMultipleTaskInfoLaunch` | 不支持 | | ||
| 651 | +| rt_external_stars.h | `rtLaunchDvppTask` | 不支持 | | ||
| 652 | +| rt_external_stars.h | `rtGeneralCtrl` | 不支持 | | ||
| @@ -0,0 +1,329 @@ | |||
| 1 | +# arch5162 API 支持性一致性分析 | ||
| 2 | + | ||
| 3 | +## 1. 背景和范围 | ||
| 4 | + | ||
| 5 | +本文分析 arch5162 的 ACL 与 Runtime API 支持性,目标是识别以下问题: | ||
| 6 | + | ||
| 7 | +1. 同一功能在 ACL 表和 Runtime 表中的支持状态相互矛盾。 | ||
| 8 | +2. 不支持 ACL API 与支持 ACL API 共享同一个 Runtime API,无法直接通过 Runtime 打桩完成隔离。 | ||
| 9 | +3. 当前 arch5162 Runtime 桩会影响 baseline 中标记为支持的 ACL API。 | ||
| 10 | +4. baseline 标记为不支持,但现有实现仍可能成功返回或只发生能力降级。 | ||
| 11 | +5. baseline 中的待确认和特殊返回类型接口。 | ||
| 12 | + | ||
| 13 | +来源基线: | ||
| 14 | + | ||
| 15 | +- 仓库:<https://gitcode.com/zhangpengpeng8/files_trans_yw> | ||
| 16 | +- 提交:`ed5ef652eff961bf4bddc2d4f040a744790d5e04` | ||
| 17 | +- README blob:`ebb901f882cbf2f00756005b019822508c77df79` | ||
| 18 | +- 刷新后的支持结论:[arch5162 API 支持性基线清单](arch5162_api_support_baseline.md) | ||
| 19 | +- 分析代码基线:Runtime `origin/master@f03655875e9615f46bd73d87f920d6769447d8bb` | ||
| 20 | + | ||
| 21 | +本文中的“当前产品清单”指 680 项 `arch5162_unsupported_runtime_api.def` 快照,“当前实现”指分析基线提交中的 Runtime 代码。本 PR 只归档分析结论和接口矩阵,不修改 Runtime 实现或产品强桩清单。 | ||
| 22 | + | ||
| 23 | +`acltdt*` 接口不在本次 ACL-Runtime 支持性分析范围内;支持性 baseline 仍保留对应记录,但不参与关系矩阵统计。 | ||
| 24 | + | ||
| 25 | +baseline 共包含 459 条 ACL 记录和 165 条 Runtime 记录。刷新 2026-08-27 确认结论后,统计如下: | ||
| 26 | + | ||
| 27 | +| 接口层级 | 支持 | 不支持 | 待确认 | 合计 | | ||
| 28 | +|---|---:|---:|---:|---:| | ||
| 29 | +| ACL | 92 | 325 | 42 | 459 | | ||
| 30 | +| Runtime | 16 | 149 | 0 | 165 | | ||
| 31 | + | ||
| 32 | +静态调用链分析覆盖 `src/acl` 中的 C/C++ 实现,并递归跟踪可解析的 ACL 内部辅助函数。宏展开、动态加载、跨动态库调用及同名重载可能需要人工复核,因此本文只把人工确认过的调用路径作为最终结论。 | ||
| 33 | + | ||
| 34 | +## 2. 判定原则 | ||
| 35 | + | ||
| 36 | +baseline 已直接刷新为当前产品结论。当前代码能否执行成功只用于判断实现差异和打桩方式,不能反向推导产品支持状态;后续实现和 UT 均以刷新后的 baseline 为准。 | ||
| 37 | + | ||
| 38 | +本文区分以下三种“支持性”语义: | ||
| 39 | + | ||
| 40 | +- **完整支持**:有效参数下执行原有功能并返回成功。 | ||
| 41 | +- **部分支持或降级**:主 API 可能返回成功,但某些 flag、配置项、诊断信息或附加状态不可用。 | ||
| 42 | +- **不支持**:有效参数调用也应稳定返回不支持,或者无返回码接口采用已确认的兼容行为。 | ||
| 43 | + | ||
| 44 | +README 明确为“不支持”的 ACL API,应在有效参数下稳定返回不支持。若它与支持 API 共享 Runtime API,或属于纯 Host/外部组件实现,则不通过本 PR 错误地打桩共享 Runtime API,而是记录为后续 ACL 路由或产品构建边界整改项。 | ||
| 45 | + | ||
| 46 | +对于 baseline未列的 Runtime API,按已确认 ACL 和 Runtime 调用关系补充以下判定: | ||
| 47 | + | ||
| 48 | +1. 被“支持”ACL API 或 Runtime API 调用的 Runtime API,推导为需要支持;支持状态沿 Runtime -> Runtime 调用关系传递,当前保留真实实现即为匹配。 | ||
| 49 | +2. 同一个 Runtime API 同时被支持和不支持调用方使用时,Runtime 按需要支持处理;不支持 ACL API 必须在 ACL、组件或产品边界隔离。 | ||
| 50 | +3. 只有完成支持 ACL/Runtime 调用方分析且未发现支持调用方后,baseline未列 Runtime API 才按“默认不支持”处理。 | ||
| 51 | +4. baseline 明确“不支持”的 Runtime API 和已确认的特殊策略优先于调用关系推导;这种依赖记录为支持能力降级,不自动改为支持。 | ||
| 52 | +5. baseline 中的 `aclrtGetOpTimeoutInterval` 与实际公开接口 `aclrtGetOpTimeOutInterval`、`aclrtGetOpExecuteTimeOut` 与实际公开接口 `aclrtGetOpExecuteTimeout` 分别按同一接口归一,状态均为支持。 | ||
| 53 | + | ||
| 54 | +按该口径,618 个 baseline 未列 Runtime API 中有 108 个由支持 ACL/Runtime 调用链或单独确认结论判定为需要支持,508 个在未发现支持调用方后按默认不支持处理;`rtDeviceSetLimit`、`rtRegKernelLaunchFillFunc` 单独确认为不支持,并接受 `aclInit` 对应扩展配置能力降级。`rtGetDevice` 采用 arch5162 固定设备语义:成功桩返回 `RT_ERROR_NONE` 并写入设备号 0。`rtGetRunMode` 曾因名称级调用图把无关的 `GetInstance()` 错连到另一个 `QueueManager::GetRunningEnv` 路径而被误判为支持 ACL 依赖,现已排除该伪依赖。 | ||
| 55 | + | ||
| 56 | +## 4. 已确认:原 ACL 与 Runtime 支持状态矛盾 | ||
| 57 | + | ||
| 58 | +本节原有 X01-X06 已完成产品确认。复选框均已勾选,下面列出刷新后的状态和目标实现策略。 | ||
| 59 | + | ||
| 60 | +| 确认 | 编号 | ACL API | ACL 当前确认状态 | Runtime API | Runtime 当前确认状态 | 结论与目标策略 | | ||
| 61 | +|---|---|---|---|---|---|---| | ||
| 62 | +| - [x] | X01 | `aclInit` | 支持 | `rtEventWorkModeSet` | 不支持 | 接受 `event_mode` 扩展配置能力降级,保留 Runtime 强桩 | | ||
| 63 | +| - [x] | X02 | `aclrtSetDevice`、`aclrtCreateContext` | 支持 | `rtGetDeviceInfo` | 支持 | `rtGetDeviceInfo` 由不支持改为支持,保留真实实现 | | ||
| 64 | +| - [x] | X03 | `aclGetRecentErrMsg` | 支持 | `rtGetDevMsg` | 不支持 | 接受仅保留 Host 错误信息的诊断降级,保留 Runtime 强桩 | | ||
| 65 | +| - [x] | X04 | `aclrtMallocAlign32`、`aclGetCannAttributeList`、`aclGetCannAttribute` | 不支持 | `rtGetSocSpec` | 支持 | `rtGetSocSpec` 保持库上已有真实实现且不加入 arch5162 强桩清单;ACL 接口按资料保持不支持,当前代码可执行成功的差异在资料中说明,不能打桩共享的 `rtMalloc` 或据此反推 ACL 支持 | | ||
| 66 | +| - [x] | X05 | `aclrtSetExceptionInfoCallback` | 不支持 | `rtRegTaskFailCallbackByModule` | 不支持 | Runtime 改为不支持,待实现侧补回强桩;baseline 未列的新 ACL callback 接口也按默认不支持处理 | | ||
| 67 | +| - [x] | X06 | `aclmdlRIGetId` | 不支持 | `rtModelGetId` | 不支持 | Runtime 改为不支持,待实现侧补回强桩 | | ||
| 68 | + | ||
| 69 | +### 4.1 X04 实现差异说明 | ||
| 70 | + | ||
| 71 | +X04 的产品结论是三个 ACL API 均不支持,但当前共享路径不能通过一个 Runtime 强桩完整落实: | ||
| 72 | + | ||
| 73 | +1. `aclrtMalloc`、`aclrtMallocCached` 和 `aclrtMallocAlign32` 共享 `GetAlignedAndPaddingSize`、`rtMalloc*` 与 `rtGetSocSpec` 查询路径;前两个 ACL API 保持支持,因此 `rtGetSocSpec` 和共享内存入口均需保留真实实现。 | ||
| 74 | +2. `GetPaddingSize` 会吞掉 `rtGetSocSpec` 的失败并继续使用默认 padding,`aclrtMallocAlign32` 当前仍可能分配成功。 | ||
| 75 | +3. `aclGetCannAttributeList` 和 `aclGetCannAttribute` 对 `rtGetSocSpec` 查询失败采用能力降级处理,初始化仍可能成功。 | ||
| 76 | +4. 因此本次只固定“不支持”的资料结论并记录当前代码可运行的差异;若后续要求有效参数稳定返回不支持,需要在 arch5162 ACL 产品入口或打包边界单独隔离,不能破坏支持 API 共享的 Runtime 能力。 | ||
| 77 | + | ||
| 78 | +## 5. 已确认的支持性调整与能力降级 | ||
| 79 | + | ||
| 80 | +### 5.1 由支持改为不支持 | ||
| 81 | + | ||
| 82 | +| 确认 | 编号 | ACL API | 当前确认状态 | Runtime 依赖 | 目标策略 | 实现侧状态 | | ||
| 83 | +|---|---|---|---|---|---|---| | ||
| 84 | +| - [x] | C03 | `aclrtTaskUpdateAsync` | 不支持 | `rtsLaunchUpdateTask` | 加入 arch5162 强桩清单,与 tiny 一致 | 当前产品清单未包含该接口,目标清单需要补充 | | ||
| 85 | +| - [x] | C04 | `aclrtBinaryLoad` | 不支持 | `rtBinaryLoadWithoutTilingKey` | 加入 arch5162 强桩清单,与 tiny 一致 | 当前产品清单未包含该接口,目标清单需要补充 | | ||
| 86 | + | ||
| 87 | +### 5.2 主 API 支持但能力降级 | ||
| 88 | + | ||
| 89 | +| 确认 | 编号 | ACL API | Runtime 策略 | 当前行为 | 确认结论 | | ||
| 90 | +|---|---|---|---|---|---| | ||
| 91 | +| - [x] | C05 | `aclInit` | `rtEventWorkModeSet` 不支持 | 不配置 `event_mode` 时不受影响;配置后可能返回不支持 | `aclInit` 保持支持,资料说明扩展配置不支持 | | ||
| 92 | +| - [x] | C06 | `aclInit` | `rtDeviceSetLimit` 不支持 | stack/fifo limit 返回不支持时被兼容为成功 | 保留强桩,接受 stack/fifo limit 配置能力降级 | | ||
| 93 | +| - [x] | C08 | `aclFinalize`、`aclFinalizeReference` | `rtUnRegKernelLaunchFillFunc` 不支持 | 不支持错误被忽略,Finalize 继续成功 | 主接口保持支持,资料说明扩展回调注销能力降级 | | ||
| 94 | +| - [x] | C09 | `aclGetRecentErrMsg` | `rtGetDevMsg` 不支持;`rtGetDevice` 目标为成功桩设备 0 | 保留 Host 错误信息,设备错误消息缺失 | 主接口保持支持,接受诊断能力降级;实现侧需刷新 `rtGetDevice` 桩策略 | | ||
| 95 | + | ||
| 96 | +`rtRegKernelLaunchFillFunc` 在 `aclInit` 中同样采用兼容处理,不支持时只跳过自动 UC memory 的扩展注册,基础初始化仍可成功。 | ||
| 97 | + | ||
| 98 | +## 6. 不支持接口的隔离风险与特殊桩策略 | ||
| 99 | + | ||
| 100 | +具备独占 Runtime 入口、且未被支持 API 共享的接口,目标是加入 arch5162 产品强桩清单。本节保留无法通过独占 Runtime 入口直接隔离的风险和特殊策略;“当前实现”与新确认结论不一致时,不视为已经完成。 | ||
| 101 | + | ||
| 102 | +勾选最左侧复选框表示该行风险、支持性判断及处理结论已经确认。 | ||
| 103 | + | ||
| 104 | +### 6.1 共享 Runtime 能力与状态调整 | ||
| 105 | + | ||
| 106 | +| 确认 | 编号 | ACL API | 共享 Runtime API | 其他调用方 | 结论或争议 | | ||
| 107 | +|---|---|---|---|---|---| | ||
| 108 | +| - [x] | C17 | `aclrtRecordEventWithFlag` | `rtEventRecord` | `aclrtRecordEvent` | 确认保持不支持并以资料说明为准;保留共享的 `rtEventRecord`,由独占的 `rtEventRecordWithFlag` 强桩阻断 | | ||
| 109 | +| - [x] | C18 | `aclrtGetDevice` | `rtGetDevice` | `aclGetRecentErrMsg` 的可选诊断路径 | ACL 改为支持;`rtGetDevice` 目标为成功桩,返回 `RT_ERROR_NONE` 并写入设备号 0 | | ||
| 110 | +| - [x] | C19 | `aclrtGetSocName` | `rtGetSocVersion` | `aclInit`、`aclrtSetDevice`、`aclrtCreateContext` 的平台初始化 | `aclrtGetSocName` 与 `rtGetSocVersion` 均支持,保留真实实现,无需隔离 | | ||
| 111 | +| - [x] | C20 | `aclrtMallocAlign32` | `rtMalloc`、`rtGetSocSpec` | `aclrtMalloc`、`aclrtMallocCached` | 确认保持不支持,但当前代码可以跑通;不打桩共享 Runtime 能力,在资料中说明实现差异 | | ||
| 112 | +| - [x] | C21 | `aclGetCannAttributeList`、`aclGetCannAttribute` | `rtGetSocSpec` | Runtime 表要求支持 `rtGetSocSpec` | 确认保持不支持,但当前代码可以跑通;在资料中说明实现差异 | | ||
| 113 | +| - [x] | C22 | `aclrtMemcpyFromSymbol*`、`aclrtMemcpyToSymbol*` | `rtMemcpy`、`rtMemcpyAsync` | `aclrtMemcpy`、`aclrtMemcpyAsync` | 确认保持不支持并以资料说明为准;由独占的 `rtSymbolLookup` 桩阻断,不打桩支持 ACL 共享的 `rtMemcpy`、`rtMemcpyAsync` | | ||
| 114 | +| - [x] | C23 | `aclrtMemsetD32`、`aclrtMemsetD32Async` | `rtsPointerGetAttributes` | `aclrtPointerGetAttributes` | 确认保持不支持并与 tiny 一致;由 `rtMemsetD32*` 强桩控制,现有 ACL 实现吞错差异见下一节 | | ||
| 115 | + | ||
| 116 | +### 6.2 底层不支持但 ACL 返回成功 | ||
| 117 | + | ||
| 118 | +| 确认 | 编号 | ACL API | 当前实现 | 风险 | 建议 | | ||
| 119 | +|---|---|---|---|---|---| | ||
| 120 | +| - [x] | C24 | `aclrtMemsetD32` | `rtMemsetD32` 返回 `ACL_ERROR_RT_FEATURE_NOT_SUPPORT` 时只记录告警,最终返回 `ACL_SUCCESS` | 调用方看到成功,但内存没有被设置 | 确认不支持并与 tiny 一致;资料说明当前成功空操作差异 | | ||
| 121 | +| - [x] | C25 | `aclrtMemsetD32Async` | 与同步接口相同 | 调用方看到成功,但没有提交内存设置任务 | 同 C24 | | ||
| 122 | + | ||
| 123 | +### 6.3 纯 ACL/Host 实现与“不支持”状态冲突 | ||
| 124 | + | ||
| 125 | +以下接口不依赖可打桩的 Runtime API,且部分实现会在有效输入下直接成功。README 已明确它们不支持,但该结论不能通过 Runtime 生成桩落实,需要后续在 ACL 实现、独立组件或产品打包边界处理。 | ||
| 126 | + | ||
| 127 | +| 确认 | 编号 | 接口组 | 接口 | 当前行为和建议 | | ||
| 128 | +|---|---|---|---|---| | ||
| 129 | +| - [x] | C26 | Host 数据工具 | `aclDataTypeSize`、`aclFloat16ToFloat`、`aclFloatToFloat16` | 确认保持不支持;纯 Host 代码当前可成功,资料说明实现差异 | | ||
| 130 | +| - [x] | C27 | 异常信息访问器 | `aclrtGetTaskIdFromExceptionInfo`、`aclrtGetStreamIdFromExceptionInfo`、`aclrtGetThreadIdFromExceptionInfo`、`aclrtGetDeviceIdFromExceptionInfo`、`aclrtGetErrorCodeFromExceptionInfo`、`aclrtGetArgsFromExceptionInfo` | 确认保持不支持;当前直接读取结构体字段,资料说明实现差异 | | ||
| 131 | +| - [x] | C28 | 外部 Allocator 注册 | `aclrtAllocatorRegister`、`aclrtAllocatorGetByStream`、`aclrtAllocatorUnregister` | 确认保持不支持;当前只操作 ACL 进程内映射,资料说明实现差异 | | ||
| 132 | +| - [x] | C29 | Stream 配置句柄 | `aclrtSetStreamConfigOpt` | 确认保持不支持;当前只修改 Host 配置结构,资料说明实现差异 | | ||
| 133 | +| - [x] | C30 | 版本查询 | `aclsysGetCANNVersion` | 确认保持不支持;当前读取安装路径和版本文件,资料说明实现差异 | | ||
| 134 | +| - [x] | C31 | Group 资源释放 | `aclrtDestroyGroupInfo` | 确认保持不支持;当前可释放有效对象并返回成功,资料说明实现差异 | | ||
| 135 | +| - [x] | C32 | 已删除/外部组件接口 | `aclRecoverAllHcclTasks`、`aclplatformGetDeviceInfo`、`aclplatformGetInstructionInfo`、`acllogRegisterCallback`、`acllogUnregisterCallback`、3 个已删除 profiling API | 确认保持不支持;不通过普通 Runtime API 生成器处理,在资料中说明实现或交付边界 | | ||
| 136 | +| - [x] | C33 | Binary 描述对象 | `aclrtCreateBinary`、`aclrtDestroyBinary` | 确认不支持;当前仅在 Host 侧创建或释放 `rtDevBinary_t`,有效参数下可成功,无 Runtime 强桩阻断点 | | ||
| 137 | + | ||
| 138 | +### 6.4 特殊返回类型的已确认策略 | ||
| 139 | + | ||
| 140 | +| 确认 | Runtime API | 返回类型 | 已确认处理 | 原因 | | ||
| 141 | +|---|---|---|---|---| | ||
| 142 | +| - [x] | `rtGetTsMemType` | `uint32_t` | 保持库上已有真实实现,不加入 arch5162 强桩清单 | 当前实现已经调用 `Runtime::GetTsMemType` 执行真实查询,无需切换实现 | | ||
| 143 | + | ||
| 144 | +### 6.5 仅 C/compact 实现的接口 | ||
| 145 | + | ||
| 146 | +以下接口在 README 中明确为不支持,且 Runtime 入口只有 `src/runtime_compact/feature/src/*.c` 下的 C 实现; | ||
| 147 | +其中 4 个接口的 ACL 包装也仅位于 `src/acl/aclrt_c/runtime/*.c`。普通 arch5162 `libruntime.so` 不编译这些 | ||
| 148 | +compact C 实现,因此不增加普通 C++ ACL/Runtime 桩 UT。4 个 compact 专用 Runtime API 不进入公共桩目录; | ||
| 149 | +`rtDeinit` 虽已进入公共 catalog 和当前 680 项产品清单快照,目标实现仍应从产品清单移除且不补普通 provider。 | ||
| 150 | + | ||
| 151 | +| ACL API | Runtime API | 确认状态 | C 实现位置 | 目标处理 | | ||
| 152 | +|---|---|---|---|---| | ||
| 153 | +| - | `rtDeinit` | 不支持 | `src/runtime_compact/feature/src/api.c` | arch5162 不编译该 compact C 文件;从产品清单移除,不生成普通 Runtime 强桩,也不保留普通 Runtime 真实实现 | | ||
| 154 | +| `aclrtCreateStreamV2` | `rtStreamCreateWithConfig` | 不支持 | `src/acl/aclrt_c/runtime/stream.c`、`src/runtime_compact/feature/src/stream.c` | 资料说明;不生成普通 Runtime 强桩 | | ||
| 155 | +| `aclrtSubscribeHostFunc` | `rtSubscribeHostFunc` | 不支持 | `src/acl/aclrt_c/runtime/host_func.c`、`src/runtime_compact/feature/src/host_func.c` | 资料说明;不生成普通 Runtime 强桩 | | ||
| 156 | +| `aclrtProcessHostFunc` | `rtProcessHostFunc` | 不支持 | `src/acl/aclrt_c/runtime/host_func.c`、`src/runtime_compact/feature/src/host_func.c` | 资料说明;不生成普通 Runtime 强桩 | | ||
| 157 | +| `aclrtUnSubscribeHostFunc` | `rtUnSubscribeHostFunc` | 不支持 | `src/acl/aclrt_c/runtime/host_func.c`、`src/runtime_compact/feature/src/host_func.c` | 资料说明;不生成普通 Runtime 强桩 | | ||
| 158 | + | ||
| 159 | +## 7. baseline 中的 42 个待确认接口 | ||
| 160 | + | ||
| 161 | +除第 4 节已确认项外,本节 42 个接口仍需要产品侧确认,因为 baseline 将其标记为“待确认”。当前 PR 不根据代码现状替它们作出支持性结论,也不因此增加新的 Runtime 强桩。 | ||
| 162 | + | ||
| 163 | +### 7.1 单独待确认:Dump 配置 | ||
| 164 | + | ||
| 165 | +| 编号 | API | 分组 | 分析结论 | | ||
| 166 | +|---|---|---|---| | ||
| 167 | +| P01 | `aclmdlInitDump` | ACL Dump 生命周期 | arch5162 编译 Impl,但不编译 `acl_rt.cpp` 中注册 Adump 回调的构造逻辑;当前会因回调未注册失败,建议确认为不支持 | | ||
| 168 | +| P02 | `aclmdlSetDump` | ACL Dump 生命周期 | 同 P01 | | ||
| 169 | +| P03 | `aclmdlFinalizeDump` | ACL Dump 生命周期 | 同 P01 | | ||
| 170 | +| P04 | `acldumpRegCallback` | Adump callback/path | 实现在 Adump 独立组件,不属于 Runtime 桩生成范围;需 Adump 产品构建确认 | | ||
| 171 | +| P05 | `acldumpUnregCallback` | Adump callback/path | 同 P04 | | ||
| 172 | +| P06 | `acldumpGetPath` | Adump callback/path | 同 P04 | | ||
| 173 | +| P07 | `aclopStartDumpArgs` | Dump args | 实现在 Adump 独立组件;需确认 arch5162 是否交付对应库 | | ||
| 174 | +| P08 | `aclopStopDumpArgs` | Dump args | 同 P07 | | ||
| 175 | + | ||
| 176 | +### 7.2 单独待确认:Profiling 数据采集 | ||
| 177 | + | ||
| 178 | +34 个待确认 profiling API 均不应仅根据 `libruntime.so` 的 Runtime 桩清单判定:它们主要实现在 `src/dfx/msprof`,arch5162 Runtime 只链接 `profapi_share`,是否交付完整 profiling 组件需要单独确认。 | ||
| 179 | + | ||
| 180 | +| 编号 | 分组 | API | 建议确认点 | | ||
| 181 | +|---|---|---|---| | ||
| 182 | +| P09 | 生命周期和配置 | `aclprofInit` | arch5162 是否交付采集组件及设备侧数据通路 | | ||
| 183 | +| P10 | 生命周期和配置 | `aclprofSetConfig` | 同 P09 | | ||
| 184 | +| P11 | 生命周期和配置 | `aclprofStart` | 同 P09 | | ||
| 185 | +| P12 | 生命周期和配置 | `aclprofStop` | 同 P09 | | ||
| 186 | +| P13 | 生命周期和配置 | `aclprofFinalize` | 同 P09 | | ||
| 187 | +| P14 | Host 标记和 Range | `aclprofPop` | 即使设备采集不支持,纯 Host 标记能力是否仍要求支持 | | ||
| 188 | +| P15 | Host 标记和 Range | `aclprofRangeStart` | 同 P14 | | ||
| 189 | +| P16 | Host 标记和 Range | `aclprofRangeStop` | 同 P14 | | ||
| 190 | +| P17 | Host 标记和 Range | `aclprofDestroyStamp` | 同 P14 | | ||
| 191 | +| P18 | Host 标记和 Range | `aclprofStr2Id` | 同 P14 | | ||
| 192 | +| P19 | Host 标记和 Range | `aclprofRangePushEx` | 同 P14 | | ||
| 193 | +| P20 | Host 标记和 Range | `aclprofRangePop` | 同 P14 | | ||
| 194 | +| P21 | Host 标记和 Range | `aclprofCreateStamp` | 同 P14 | | ||
| 195 | +| P22 | Host 标记和 Range | `aclprofSetStampTraceMessage` | 同 P14 | | ||
| 196 | +| P23 | Host 标记和 Range | `aclprofMark` | 同 P14 | | ||
| 197 | +| P24 | Host 标记和 Range | `aclprofMarkEx` | 同 P14 | | ||
| 198 | +| P25 | Host 标记和 Range | `aclprofPush` | 同 P14 | | ||
| 199 | +| P26 | Host 标记和 Range | `aclprofGetStepTimestamp` | 同 P14 | | ||
| 200 | +| P27 | 模型订阅 | `aclprofModelSubscribe` | 需要 Model 与 profiling 联合能力确认 | | ||
| 201 | +| P28 | 模型订阅 | `aclprofModelUnSubscribe` | 同 P27 | | ||
| 202 | +| P29 | Op 数据解析 | `aclprofGetOpStart` | 多数是 Host 数据解析接口,建议与设备采集能力分开判定 | | ||
| 203 | +| P30 | Op 数据解析 | `aclprofGetOpEnd` | 同 P29 | | ||
| 204 | +| P31 | Op 数据解析 | `aclprofGetOpDuration` | 同 P29 | | ||
| 205 | +| P32 | Op 数据解析 | `aclprofGetOpFlag` | 同 P29 | | ||
| 206 | +| P33 | Op 数据解析 | `aclprofGetOpAttriValue` | 同 P29 | | ||
| 207 | +| P34 | Op 数据解析 | `aclprofGetModelId` | 同 P29 | | ||
| 208 | +| P35 | Op 数据解析 | `aclprofGetOpCubeOps` | 同 P29 | | ||
| 209 | +| P36 | Op 数据解析 | `aclprofGetOpVectorOps` | 同 P29 | | ||
| 210 | +| P37 | Op 数据解析 | `aclprofGetOpDescSize` | 同 P29 | | ||
| 211 | +| P38 | Op 数据解析 | `aclprofGetOpNum` | 同 P29 | | ||
| 212 | +| P39 | Op 数据解析 | `aclprofGetOpTypeLen` | 同 P29 | | ||
| 213 | +| P40 | Op 数据解析 | `aclprofGetOpType` | 同 P29 | | ||
| 214 | +| P41 | Op 数据解析 | `aclprofGetOpNameLen` | 同 P29 | | ||
| 215 | +| P42 | Op 数据解析 | `aclprofGetOpName` | 同 P29 | | ||
| 216 | + | ||
| 217 | +## 8. 目标打桩与适配清单 | ||
| 218 | + | ||
| 219 | +当前 `arch5162_unsupported_runtime_api.def` 产品清单快照包含 680 项,公共桩目录包含 783 个 Runtime `rt/rts` API;其中 `rtDeinit` 仅有 compact C 实现,不进入普通 arch5162 provider,因此目标 provider 覆盖其余 782 项。本节按 baseline 状态及支持 ACL/Runtime 反向调用链给出目标集合;完整的逐接口状态见 [arch5162 ACL-Runtime API 支持关系矩阵](arch5162_acl_runtime_api_support_matrix.md),实现侧增删与特殊适配见 [arch5162 Runtime API 强桩与真实实现调整清单](arch5162_runtime_api_stub_adjustment_plan.md)。 | ||
| 220 | + | ||
| 221 | +### 8.1 目标 Runtime 策略组成 | ||
| 222 | + | ||
| 223 | +| 目标策略 | 数量 | 组成与实现方式 | | ||
| 224 | +|---|---:|---| | ||
| 225 | +| `FEATURE_NOT_SUPPORT` 生成强桩 | 654 | 目标产品清单中 catalog 策略为 `FEATURE_NOT_SUPPORT` 的接口,返回 `ACL_ERROR_RT_FEATURE_NOT_SUPPORT` | | ||
| 226 | +| `SUCCESS_NOOP` 生成强桩 | 3 | `rtBarrierTaskLaunch`、`rtMemAdvise`、`rtSetStreamTag` 按 catalog 策略返回 `ACL_RT_SUCCESS` | | ||
| 227 | +| `VOID_NOOP` 生成强桩 | 1 | `rtRegisterVariable` 按 catalog 策略保持无返回值空操作 | | ||
| 228 | +| `rtGetDevice` 产品专用成功适配 | 1 | 从通用不支持清单移除,在 arch5162 专用实现中返回 `RT_ERROR_NONE` 并写入设备号 0;不能把公共 catalog 策略改为 `SUCCESS_NOOP`,因为还必须写出参 | | ||
| 229 | +| 保留真实实现 | 123 | 包含保持库上真实实现的 `rtGetTsMemType`;不包含仅 compact C 实现的 `rtDeinit` | | ||
| 230 | + | ||
| 231 | +因此目标 `arch5162_unsupported_runtime_api.def` 为 658 项,具体返回行为由 catalog 策略决定;`rtGetDevice` 由产品专用实现提供额外的强符号,`rtDeinit` 不进入普通 arch5162 provider。相对当前 680 项产品清单快照,应保留 654 项、新增 4 项、移除 26 项。 | ||
| 232 | + | ||
| 233 | +### 8.2 需要新增的不支持强桩 | ||
| 234 | + | ||
| 235 | +| Runtime API | 不支持调用方 | baseline 支持 ACL 影响 | baseline 支持 Runtime 影响 | 结论 | | ||
| 236 | +|---|---|---|---|---| | ||
| 237 | +| `rtsLaunchUpdateTask` | `aclrtTaskUpdateAsync` | 无 | 无 | 增加强桩,与 tiny 一致 | | ||
| 238 | +| `rtBinaryLoadWithoutTilingKey` | `aclrtBinaryLoad` | 无 | 无 | 增加强桩,与 tiny 一致 | | ||
| 239 | +| `rtRegTaskFailCallbackByModule` | `aclrtSetExceptionInfoCallback`,以及 baseline未列的 callback 注册/注销接口 | 无 | 无 | 增加强桩 | | ||
| 240 | +| `rtModelGetId` | `aclmdlRIGetId`;baseline未列的 `rtsModelGetId` 也不支持 | 无 | 无 | 增加强桩 | | ||
| 241 | + | ||
| 242 | +这 4 个接口均未被 baseline 支持 ACL 直接调用,也未被支持 Runtime 调用链依赖,新增强桩不会截断已支持能力。 | ||
| 243 | + | ||
| 244 | +### 8.3 不支持强桩对 baseline 支持接口的影响 | ||
| 245 | + | ||
| 246 | +658 个生成桩中,653 个没有 baseline 支持 ACL/Runtime 调用方。以下 5 个接口会被 baseline 支持 ACL 的可选或降级路径调用;这是已确认的功能降级,不应扩展到其他共享 Runtime API: | ||
| 247 | + | ||
| 248 | +| 不支持强桩 | 受影响的支持 ACL | 实际影响 | 当前结论 | | ||
| 249 | +|---|---|---|---| | ||
| 250 | +| `rtDeviceSetLimit` | `aclInit` | stack/fifo limit 返回不支持时被兼容为成功 | 保留强桩,接受 limit 配置能力降级 | | ||
| 251 | +| `rtEventWorkModeSet` | `aclInit` | 只有配置 `event_mode` 时可能返回不支持 | 保留强桩,资料说明扩展配置不支持 | | ||
| 252 | +| `rtGetDevMsg` | `aclGetRecentErrMsg` | 仅保留 Host 错误信息,缺少设备侧故障消息 | 保留强桩,接受诊断能力降级 | | ||
| 253 | +| `rtRegKernelLaunchFillFunc` | `aclInit` | 跳过自动 UC memory 扩展注册,基础初始化仍可成功 | 保留强桩,接受扩展注册能力降级 | | ||
| 254 | +| `rtUnRegKernelLaunchFillFunc` | `aclFinalize`、`aclFinalizeReference` | 不支持错误被忽略,基础去初始化仍继续 | 保留强桩,接受扩展回调注销能力降级 | | ||
| 255 | + | ||
| 256 | +当前静态调用图未发现 658 个生成桩被 baseline 支持 Runtime API 调用。该结论覆盖直接调用和 Runtime -> Runtime 传递调用,不覆盖动态加载、函数指针或仓外组件内部调用;实现侧仍需用正向 UT 固化支持 API 行为。 | ||
| 257 | + | ||
| 258 | +`rtEventRecordWithFlag`、`rtSymbolLookup`、`rtMemsetD32` 和 `rtMemsetD32Async` 保留独占强桩。它们分别阻断不支持的 WithFlag Event、Symbol memcpy 和 D32 memset 入口,不打桩这些路径与支持的 `aclrtRecordEvent`、`aclrtMemcpy`、`aclrtMemcpyAsync`、`aclrtPointerGetAttributes` 共享的 `rtEventRecord`、`rtMemcpy`、`rtMemcpyAsync`、`rtsPointerGetAttributes`。 | ||
| 259 | + | ||
| 260 | +### 8.4 需要保持真实实现或特殊适配的 Runtime API | ||
| 261 | + | ||
| 262 | +以下 24 个接口在库上已有真实实现,必须保持现状且不得加入 arch5162 不支持清单,否则会截断 baseline 支持 ACL/Runtime 调用链或违背已确认的真实查询策略: | ||
| 263 | + | ||
| 264 | +| Runtime API | 支持调用链或依据 | | ||
| 265 | +|---|---| | ||
| 266 | +| `rtGetSocSpec` | baseline 明确支持;`aclrtMalloc`、`aclrtMallocCached` 调用 | | ||
| 267 | +| `rtCtxGetCurrentDefaultStream` | `aclrtCtxGetCurrentDefaultStream -> rtsCtxGetCurrentDefaultStream -> rtCtxGetCurrentDefaultStream` | | ||
| 268 | +| `rtDatadumpInfoLoadWithFlag` | baseline 支持的 `rtDatadumpInfoLoad` 直接调用 | | ||
| 269 | +| `rtDeviceGetStreamPriorityRange` | `aclrtDeviceGetStreamPriorityRange -> rtsDeviceGetStreamPriorityRange -> rtDeviceGetStreamPriorityRange` | | ||
| 270 | +| `rtGetAvailEventNum` | `aclrtGetEventAvailNum -> rtsEventGetAvailNum -> rtGetAvailEventNum` | | ||
| 271 | +| `rtGetEventID` | `aclrtGetEventId -> rtsEventGetId -> rtGetEventID` | | ||
| 272 | +| `rtGetNotifyID` | `aclrtGetNotifyId -> rtsNotifyGetId -> rtGetNotifyID` | | ||
| 273 | +| `rtGetStreamId` | `aclrtStreamGetId -> rtsStreamGetId -> rtGetStreamId` | | ||
| 274 | +| `rtGetTsMemType` | baseline 明确支持;库上已经调用 `Runtime::GetTsMemType` 执行真实查询,保持现有实现且不加入产品强桩清单 | | ||
| 275 | +| `rtLabelDestroy` | `aclrtDestroyLabel -> rtsLabelDestroy -> rtLabelDestroy` | | ||
| 276 | +| `rtLabelSet` | `aclrtSetLabel -> rtsLabelSet -> rtLabelSet` | | ||
| 277 | +| `rtLabelSwitchByIndex` | `aclrtSwitchLabelByIndex -> rtsLabelSwitchByIndex -> rtLabelSwitchByIndex` | | ||
| 278 | +| `rtModelCreate` | `aclmdlRIBuildBegin -> rtsModelCreate -> rtModelCreate` | | ||
| 279 | +| `rtModelLoadComplete` | `aclmdlRIBuildEnd -> rtsModelLoadComplete -> rtModelLoadComplete` | | ||
| 280 | +| `rtModelUnbindStream` | `aclmdlRIUnbindStream -> rtsModelUnbindStream -> rtModelUnbindStream` | | ||
| 281 | +| `rtNotifyDestroy` | `aclrtDestroyNotify -> rtsNotifyDestroy -> rtNotifyDestroy` | | ||
| 282 | +| `rtNotifyRecord` | `aclrtRecordNotify -> rtsNotifyRecord -> rtNotifyRecord` | | ||
| 283 | +| `rtNotifyWait`、`rtNotifyWaitWithTimeOut` | `aclrtWaitAndResetNotify -> rtsNotifyWaitAndReset` 按超时值调用二者之一;`rtNotifyWaitWithTimeOut` 还会调用 `rtNotifyWait` | | ||
| 284 | +| `rtSetModelName` | `aclmdlRISetName -> rtsModelSetName -> rtSetModelName` | | ||
| 285 | +| `rtStreamActive` | `aclrtActiveStream -> rtsActiveStream -> rtStreamActive` | | ||
| 286 | +| `rtStreamSwitchEx` | `aclrtSwitchStream -> rtsSwitchStream -> rtStreamSwitchEx` | | ||
| 287 | +| `rtStreamWaitEventWithTimeout` | `aclrtStreamWaitEventWithTimeout -> rtsEventWait -> rtStreamWaitEventWithTimeout` | | ||
| 288 | +| `rtsFree` | `aclrtDestroyLabelList -> rtsLabelSwitchListDestroy -> rtsFree` | | ||
| 289 | + | ||
| 290 | +`rtGetDevice` 需要单独处理:从产品清单移除后增加 arch5162 专用成功适配,除 `aclrtGetDevice`、`aclGetRecentErrMsg` 外还要保障 `aclrtCreateNotify -> rtsNotifyCreate -> rtGetDevice` 支持链。`rtDeinit` 按第 6.5 节处理,从产品清单移除后不补普通 Runtime provider。 | ||
| 291 | + | ||
| 292 | +### 8.5 需要 ACL 或产品边界适配的接口 | ||
| 293 | + | ||
| 294 | +以下接口不能依赖共享 Runtime 强桩实现“不支持”语义,需要后续在 arch5162 ACL 路由、产品编译边界或错误返回处理中适配。代码适配候选共 37 个 ACL API: | ||
| 295 | + | ||
| 296 | +| 类别 | ACL API | 不能直接打桩共享 Runtime 的原因 | 建议适配方式 | | ||
| 297 | +|---|---|---|---| | ||
| 298 | +| 与支持 ACL 共享 Runtime | `aclrtMallocAlign32`、`aclGetCannAttributeList`、`aclGetCannAttribute` | 共享 `rtMalloc*`、`rtGetSocSpec`,这些 Runtime 能力必须为支持调用方保留 | 在 arch5162 ACL 产品入口增加能力判断并返回不支持,不修改共享 Runtime API | | ||
| 299 | +| Runtime 已返回不支持但 ACL 吞错 | `aclrtMemsetD32`、`aclrtMemsetD32Async` | `rtMemsetD32*` 强桩有效,但 ACL 当前记录告警后返回成功 | arch5162 路径直接返回或向上传递 `ACL_ERROR_RT_FEATURE_NOT_SUPPORT` | | ||
| 300 | +| baseline 已列的纯 ACL/Host 实现 | `aclDataTypeSize`、`aclFloat16ToFloat`、`aclFloatToFloat16`;`aclrtGetTaskIdFromExceptionInfo`、`aclrtGetStreamIdFromExceptionInfo`、`aclrtGetThreadIdFromExceptionInfo`、`aclrtGetDeviceIdFromExceptionInfo`、`aclrtGetErrorCodeFromExceptionInfo`、`aclrtGetArgsFromExceptionInfo`;`aclrtAllocatorRegister`、`aclrtAllocatorGetByStream`、`aclrtAllocatorUnregister`;`aclrtSetStreamConfigOpt`;`aclsysGetCANNVersion`;`aclrtDestroyGroupInfo`;`aclrtCreateBinary`、`aclrtDestroyBinary` | 没有可用于阻断的 Runtime 调用,有效参数下部分接口会直接成功 | 增加 arch5162 ACL 产品门禁,或从 arch5162 ACL 交付物中隔离对应实现/导出 | | ||
| 301 | +| baseline未列的纯 ACL/Host 实现 | `aclCreateDataBuffer`、`aclDestroyDataBuffer`、`aclGetDataBufferAddr`、`aclGetDataBufferSize`、`aclGetDataBufferSizeV2`、`aclUpdateDataBuffer`;`aclrtAllocatorCreateDesc`、`aclrtAllocatorDestroyDesc`、`aclrtAllocatorSetAllocAdviseFuncToDesc`、`aclrtAllocatorSetAllocFuncToDesc`、`aclrtAllocatorSetFreeFuncToDesc`、`aclrtAllocatorSetGetAddrFromBlockFuncToDesc`、`aclrtAllocatorSetObjToDesc`;`aclrtApiInjectionGetFunc`、`aclrtApiInjectionSetFunc` | baseline未列 ACL 默认不支持,但 15 个接口没有 Runtime 阻断点 | 与上一类采用同一产品门禁或编译/导出隔离方案 | | ||
| 302 | + | ||
| 303 | +`aclRecoverAllHcclTasks`、`aclplatformGetDeviceInfo`、`aclplatformGetInstructionInfo`、`acllogRegisterCallback`、`acllogUnregisterCallback`、`aclprofSetStampCategory`、`aclprofSetCategoryName`、`aclprofSetStampPayload` 属于外部组件、无仓内实现或已删除接口,只需在资料和交付边界保持不支持,不纳入普通 Runtime 桩或本仓 ACL 适配。`aclrtCreateStreamV2`、`aclrtSubscribeHostFunc`、`aclrtProcessHostFunc`、`aclrtUnSubscribeHostFunc` 及对应的 4 个 Runtime API 仅有 C/compact 实现,同样不进入普通 `libruntime.so` 桩清单;若 arch5162 交付 compact 路径,应在对应产品构建边界单独校验。 | ||
| 304 | + | ||
| 305 | +新增 `rtRegTaskFailCallbackByModule` 强桩后,baseline未列的 `aclrtExceptionInfoCallbackRegister`、`aclrtExceptionInfoCallbackUnregister` 可被同一独占 Runtime 入口阻断;其余已有独占强桩的不支持 ACL 也不需要额外修改 ACL 路由。 | ||
| 306 | + | ||
| 307 | +### 8.6 实现与验证约束 | ||
| 308 | + | ||
| 309 | +1. 先按集合运算刷新产品清单:当前 680 项保留 654 项,增加第 8.2 节 4 项,移除第 8.4 节 26 项,得到 658 项;避免人工重建整份清单。 | ||
| 310 | +2. `rtGetDevice` 使用 arch5162 专用强实现并校验空指针与设备号 0 出参;不要修改公共 catalog 的 `FEATURE_NOT_SUPPORT` 策略影响其他产品。 | ||
| 311 | +3. 生成桩 UT 覆盖目标 658 项的返回策略,并为第 8.4 节 24 个保持真实实现的接口增加支持链路正向 UT,防止强桩截断。 | ||
| 312 | +4. 对第 8.3 节 5 条已接受降级路径分别验证主 ACL 返回行为和降级边界;不能只验证 Runtime 桩返回值。 | ||
| 313 | +5. ACL 层 37 个适配候选应单独拆分实现,逐组验证有效参数返回不支持,避免与 Runtime 产品清单调整在同一变更中扩大回归面。 | ||
| 314 | + | ||
| 315 | +当前确认状态下,618 个 baseline 未列 Runtime API 中有 108 个由支持 ACL/Runtime 调用链或单独确认结论判定为需要支持,508 个在未发现支持调用方后按默认不支持处理;`rtDeviceSetLimit`、`rtRegKernelLaunchFillFunc` 单独确认为不支持,并接受 `aclInit` 功能降级。 | ||
| 316 | + | ||
| 317 | +## 9. 实现约束与后续工作边界 | ||
| 318 | + | ||
| 319 | +实现侧后续刷新应遵循以下约束: | ||
| 320 | + | ||
| 321 | +1. ACL 与 Runtime 表结论一致时,baseline 标记支持的 Runtime API 不进入 arch5162 不支持强桩清单。 | ||
| 322 | +2. ACL 与 Runtime 表结论一致时,baseline 标记支持的 ACL API,其必经 Runtime 依赖不打不支持强桩。 | ||
| 323 | +3. baseline 标记不支持的 ACL API,优先对未共享的 Runtime 入口增加产品强桩。 | ||
| 324 | +4. 共享 Runtime 入口、纯 Host API 和外部组件接口不通过错误的共享强桩处理,记录资料差异或在产品边界整改。 | ||
| 325 | +5. baseline 标记“待确认”的 42 个 ACL API,在产品结论明确前不新增 Runtime 强桩。 | ||
| 326 | +6. `rtDeinit` 仅保留 compact C 接口状态记录,不生成普通 Runtime 强桩,也不补普通 Runtime 真实实现。 | ||
| 327 | +7. UT 固化支持 API 保留、未被支持 API 共享的入口打桩及特殊返回策略,防止后续刷新清单时回退。 | ||
| 328 | +8. 仅在 ACL C 和 Runtime compact C 路径实现的接口只记录支持状态,不纳入普通 `libruntime.so` 的桩目录和 UT。 | ||
| 329 | +9. baseline未列 Runtime API 必须先完成支持 ACL/Runtime 反向调用分析;只有未发现支持调用方时,才可按默认不支持加入强桩。 | ||