You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

npu_error_define.h 2.9 kB

5 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * Copyright 2019-2020 Huawei Technologies Co., Ltd
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef INC_COMMON_NPU_ERROR_DEFINE_H_
  17. #define INC_COMMON_NPU_ERROR_DEFINE_H_
  18. typedef enum tagHiAiNpuLocal {
  19. HIAI_HOST = 1,
  20. HIAI_DEVICE = 2,
  21. } HiAiNpuLocal;
  22. typedef enum tagHiAiNpuCodeType {
  23. ERROR_CODE = 1,
  24. EXCEPTION_CODE = 2,
  25. } HiAiNpuCodeType;
  26. typedef enum tagHiAiNpuErrLevel {
  27. NONE_LEVEL = 0,
  28. SUGGESTION_LEVEL = 1,
  29. NORMAL_LEVEL = 2,
  30. SERIOUS_LEVEL = 3,
  31. CRITICAL_ERROR = 4,
  32. } HiAiNpuErrLevel;
  33. typedef enum tagHiAiNpuModuleId {
  34. HIAI_DRIVER = 1,
  35. HIAI_CTRLCPU = 2,
  36. HIAI_TS = 3,
  37. HIAI_RUNTIME = 4,
  38. HIAI_AICPU = 5,
  39. HIAI_CCE = 6,
  40. HIAI_TVM = 7,
  41. HIAI_FRAMEWORK = 8,
  42. HiAI_ENGINE = 9,
  43. HIAI_DVPP = 10,
  44. HIAI_AIPP = 11,
  45. HIAI_LOWPOWER = 12,
  46. HIAI_MDC = 13,
  47. HIAI_COMPILE = 14,
  48. HIAI_TOOLCHIAN = 15,
  49. HIAI_ALG = 16,
  50. HIAI_PROFILING = 17,
  51. HIAI_HCCL = 18,
  52. HIAI_SIMULATION = 19,
  53. HIAI_BIOS = 20,
  54. HIAI_SEC = 21,
  55. HIAI_TINY = 22,
  56. HIAI_DP = 23,
  57. } HiAiNpuModuleId;
  58. // bit 31-bit30 to be hiai local
  59. #define HIAI_NPULOCAL_MASK 0xC0000000
  60. #define SHIFT_LOCAL_MASK 30
  61. #define HIAI_NPULOCAL_VAL_MASK 0x3
  62. // bit 29 -bit28 to be hiai aicpu code type
  63. #define HIAI_CODE_TYPE_MASK 0x30000000
  64. #define SHIFT_CODE_MASK 28
  65. #define HIAI_CODE_TYPE_VAL_MASK 0x3
  66. // bit 27 -bit25 to be hiai error level
  67. #define HIAI_ERROR_LEVEL_MASK 0x0E000000
  68. #define SHIFT_ERROR_LVL_MASK 25
  69. #define HIAI_ERROR_LEVEL_VAL_MASK 0x7
  70. // bit 24 -bit17 to be hiai mod
  71. #define HIAI_MODE_ID_MASK 0x01FE0000
  72. #define SHIFT_MODE_MASK 17
  73. #define HIAI_MODE_ID_VAL_MASK 0xFF
  74. #define HIAI_NPU_LOC_BIT(a) \
  75. (HIAI_NPULOCAL_MASK & ((unsigned int)((HiAiNpuLocal)(a)) & HIAI_NPULOCAL_VAL_MASK) << SHIFT_LOCAL_MASK)
  76. #define HIAI_NPU_CODE_TYPE_BIT(a) \
  77. (HIAI_CODE_TYPE_MASK & ((unsigned int)((HiAiNpuCodeType)(a)) & HIAI_CODE_TYPE_VAL_MASK) << SHIFT_CODE_MASK)
  78. #define HIAI_NPU_ERR_LEV_BIT(a) \
  79. (HIAI_ERROR_LEVEL_MASK & ((unsigned int)((HiAiNpuErrLevel)(a)) & HIAI_ERROR_LEVEL_VAL_MASK) << SHIFT_ERROR_LVL_MASK)
  80. #define HIAI_NPU_MOD_ID_BIT(a) \
  81. (HIAI_MODE_ID_MASK & ((unsigned int)((HiAiNpuModuleId)(a)) & HIAI_MODE_ID_VAL_MASK) << SHIFT_MODE_MASK)
  82. #define HIAI_NPU_ERR_CODE_HEAD(npuLocal, codeType, errLevel, moduleId) \
  83. (HIAI_NPU_LOC_BIT(npuLocal) + HIAI_NPU_CODE_TYPE_BIT(codeType) + HIAI_NPU_ERR_LEV_BIT(errLevel) + \
  84. HIAI_NPU_MOD_ID_BIT(moduleId))
  85. #endif // INC_COMMON_NPU_ERROR_DEFINE_H_

图引擎模块(GE)是MindSpore的一个子模块,其代码由C++实现,位于前端模块ME和底层硬件之间,起到承接作用。图引擎模块以ME下发的图作为输入,然后进行一系列的深度图优化操作,最后输出一张可以在底层硬件上高效运行的图。GE针对昇腾AI处理器的硬件结构特点,做了特定的优化工作,以此来充分发挥出昇腾AI处理器的强大算力。在进行模型训练/推理时,GE会被自动调用而用户并不感知。GE主要由GE API和GE Core两部分组成,详细的架构图如下所示

Contributors (1)