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.

logging_ops.h 2.5 kB

5 years ago
5 years ago
5 years ago
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 GE_OP_LOGGING_OPS_H
  17. #define GE_OP_LOGGING_OPS_H
  18. #include "graph/operator.h"
  19. #include "graph/operator_reg.h"
  20. namespace ge {
  21. /**
  22. *@brief Provides the time since epoch in seconds.
  23. *@par Outputs:
  24. *y: A Tensor of type float64. The timestamp as a double for seconds since \n
  25. the Unix epoch.
  26. *@attention Constraints: \n
  27. *The timestamp is computed when the op is executed, not when it is added to \n
  28. the graph.
  29. */
  30. REG_OP(Timestamp)
  31. .OUTPUT(y, TensorType({DT_DOUBLE}))
  32. .OP_END_FACTORY_REG(Timestamp)
  33. /**
  34. *@brief Asserts that the given condition is true.
  35. *@par Inputs:
  36. *If input_condition evaluates to false, print the list of tensors in data. \n
  37. Inputs include: \n
  38. *@li input_condition: The condition to evaluate.
  39. *@li input_data: The tensors to print out when condition is false.
  40. *@par Attributes:
  41. *summarize: Print this many entries of each tensor.
  42. */
  43. REG_OP(Assert)
  44. .INPUT(input_condition, TensorType{DT_BOOL})
  45. .DYNAMIC_INPUT(input_data, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT8,
  46. DT_INT16, DT_UINT16, DT_UINT8, DT_INT32, DT_INT64, DT_UINT32,
  47. DT_UINT64, DT_BOOL, DT_DOUBLE, DT_STRING}))
  48. .ATTR(summarize, Int, 3)
  49. .OP_END_FACTORY_REG(Assert)
  50. /**
  51. *@brief Prints a tensor.
  52. *@par Inputs:
  53. *x: The tensor to print, it is a dynamic_input.
  54. */
  55. REG_OP(Print)
  56. .DYNAMIC_INPUT(x, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT8, DT_INT16, DT_UINT16, DT_UINT8, DT_INT32,
  57. DT_INT64, DT_UINT32, DT_UINT64, DT_DOUBLE, DT_STRING}))
  58. .OP_END_FACTORY_REG(Print)
  59. /**
  60. *@brief Prints a string scalar.
  61. *@par Inputs:
  62. *The dtype of input x must be string. Inputs include: \n
  63. *x: The string scalar to print.
  64. *@par Attributes:
  65. *output_stream: A string specifying the output stream or logging level \n
  66. to print to.
  67. */
  68. REG_OP(PrintV2)
  69. .INPUT(x, TensorType({DT_STRING}))
  70. .ATTR(output_stream, String, "stderr")
  71. .OP_END_FACTORY_REG(PrintV2)
  72. } // namespace ge
  73. #endif // GE_OP_LOGGING_OPS_H

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