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.

cast.py 10 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. # Copyright 2020 Huawei Technologies Co., Ltd
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # ============================================================================
  15. """Cast op"""
  16. from mindspore.ops.op_info_register import op_info_register, AiCPURegOp, DataType
  17. cast_op_info = AiCPURegOp("Cast") \
  18. .fusion_type("OPAQUE") \
  19. .input(0, "x", "required") \
  20. .output(0, "y", "required") \
  21. .dtype_format(DataType.U8_Default, DataType.U8_Default) \
  22. .dtype_format(DataType.U8_Default, DataType.U16_Default) \
  23. .dtype_format(DataType.U8_Default, DataType.U32_Default) \
  24. .dtype_format(DataType.U8_Default, DataType.U64_Default) \
  25. .dtype_format(DataType.U8_Default, DataType.I8_Default) \
  26. .dtype_format(DataType.U8_Default, DataType.I16_Default) \
  27. .dtype_format(DataType.U8_Default, DataType.I32_Default) \
  28. .dtype_format(DataType.U8_Default, DataType.I64_Default) \
  29. .dtype_format(DataType.U8_Default, DataType.F16_Default) \
  30. .dtype_format(DataType.U8_Default, DataType.F32_Default) \
  31. .dtype_format(DataType.U8_Default, DataType.F64_Default) \
  32. .dtype_format(DataType.U8_Default, DataType.BOOL_Default) \
  33. .dtype_format(DataType.U16_Default, DataType.U8_Default) \
  34. .dtype_format(DataType.U16_Default, DataType.U16_Default) \
  35. .dtype_format(DataType.U16_Default, DataType.U32_Default) \
  36. .dtype_format(DataType.U16_Default, DataType.U64_Default) \
  37. .dtype_format(DataType.U16_Default, DataType.I8_Default) \
  38. .dtype_format(DataType.U16_Default, DataType.I16_Default) \
  39. .dtype_format(DataType.U16_Default, DataType.I32_Default) \
  40. .dtype_format(DataType.U16_Default, DataType.I64_Default) \
  41. .dtype_format(DataType.U16_Default, DataType.F16_Default) \
  42. .dtype_format(DataType.U16_Default, DataType.F32_Default) \
  43. .dtype_format(DataType.U16_Default, DataType.F64_Default) \
  44. .dtype_format(DataType.U16_Default, DataType.BOOL_Default) \
  45. .dtype_format(DataType.U32_Default, DataType.U8_Default) \
  46. .dtype_format(DataType.U32_Default, DataType.U16_Default) \
  47. .dtype_format(DataType.U32_Default, DataType.U32_Default) \
  48. .dtype_format(DataType.U32_Default, DataType.U64_Default) \
  49. .dtype_format(DataType.U32_Default, DataType.I8_Default) \
  50. .dtype_format(DataType.U32_Default, DataType.I16_Default) \
  51. .dtype_format(DataType.U32_Default, DataType.I32_Default) \
  52. .dtype_format(DataType.U32_Default, DataType.I64_Default) \
  53. .dtype_format(DataType.U32_Default, DataType.F16_Default) \
  54. .dtype_format(DataType.U32_Default, DataType.F32_Default) \
  55. .dtype_format(DataType.U32_Default, DataType.F64_Default) \
  56. .dtype_format(DataType.U32_Default, DataType.BOOL_Default) \
  57. .dtype_format(DataType.U64_Default, DataType.U8_Default) \
  58. .dtype_format(DataType.U64_Default, DataType.U16_Default) \
  59. .dtype_format(DataType.U64_Default, DataType.U32_Default) \
  60. .dtype_format(DataType.U64_Default, DataType.U64_Default) \
  61. .dtype_format(DataType.U64_Default, DataType.I8_Default) \
  62. .dtype_format(DataType.U64_Default, DataType.I16_Default) \
  63. .dtype_format(DataType.U64_Default, DataType.I32_Default) \
  64. .dtype_format(DataType.U64_Default, DataType.I64_Default) \
  65. .dtype_format(DataType.U64_Default, DataType.F16_Default) \
  66. .dtype_format(DataType.U64_Default, DataType.F32_Default) \
  67. .dtype_format(DataType.U64_Default, DataType.F64_Default) \
  68. .dtype_format(DataType.U64_Default, DataType.BOOL_Default) \
  69. .dtype_format(DataType.I8_Default, DataType.U8_Default) \
  70. .dtype_format(DataType.I8_Default, DataType.U16_Default) \
  71. .dtype_format(DataType.I8_Default, DataType.U32_Default) \
  72. .dtype_format(DataType.I8_Default, DataType.U64_Default) \
  73. .dtype_format(DataType.I8_Default, DataType.I8_Default) \
  74. .dtype_format(DataType.I8_Default, DataType.I16_Default) \
  75. .dtype_format(DataType.I8_Default, DataType.I32_Default) \
  76. .dtype_format(DataType.I8_Default, DataType.I64_Default) \
  77. .dtype_format(DataType.I8_Default, DataType.F16_Default) \
  78. .dtype_format(DataType.I8_Default, DataType.F32_Default) \
  79. .dtype_format(DataType.I8_Default, DataType.F64_Default) \
  80. .dtype_format(DataType.I8_Default, DataType.BOOL_Default) \
  81. .dtype_format(DataType.I16_Default, DataType.U8_Default) \
  82. .dtype_format(DataType.I16_Default, DataType.U16_Default) \
  83. .dtype_format(DataType.I16_Default, DataType.U32_Default) \
  84. .dtype_format(DataType.I16_Default, DataType.U64_Default) \
  85. .dtype_format(DataType.I16_Default, DataType.I8_Default) \
  86. .dtype_format(DataType.I16_Default, DataType.I16_Default) \
  87. .dtype_format(DataType.I16_Default, DataType.I32_Default) \
  88. .dtype_format(DataType.I16_Default, DataType.I64_Default) \
  89. .dtype_format(DataType.I16_Default, DataType.F16_Default) \
  90. .dtype_format(DataType.I16_Default, DataType.F32_Default) \
  91. .dtype_format(DataType.I16_Default, DataType.F64_Default) \
  92. .dtype_format(DataType.I16_Default, DataType.BOOL_Default) \
  93. .dtype_format(DataType.I32_Default, DataType.U8_Default) \
  94. .dtype_format(DataType.I32_Default, DataType.U16_Default) \
  95. .dtype_format(DataType.I32_Default, DataType.U32_Default) \
  96. .dtype_format(DataType.I32_Default, DataType.U64_Default) \
  97. .dtype_format(DataType.I32_Default, DataType.I8_Default) \
  98. .dtype_format(DataType.I32_Default, DataType.I16_Default) \
  99. .dtype_format(DataType.I32_Default, DataType.I32_Default) \
  100. .dtype_format(DataType.I32_Default, DataType.I64_Default) \
  101. .dtype_format(DataType.I32_Default, DataType.F16_Default) \
  102. .dtype_format(DataType.I32_Default, DataType.F32_Default) \
  103. .dtype_format(DataType.I32_Default, DataType.F64_Default) \
  104. .dtype_format(DataType.I32_Default, DataType.BOOL_Default) \
  105. .dtype_format(DataType.I64_Default, DataType.U8_Default) \
  106. .dtype_format(DataType.I64_Default, DataType.U16_Default) \
  107. .dtype_format(DataType.I64_Default, DataType.U32_Default) \
  108. .dtype_format(DataType.I64_Default, DataType.U64_Default) \
  109. .dtype_format(DataType.I64_Default, DataType.I8_Default) \
  110. .dtype_format(DataType.I64_Default, DataType.I16_Default) \
  111. .dtype_format(DataType.I64_Default, DataType.I32_Default) \
  112. .dtype_format(DataType.I64_Default, DataType.I64_Default) \
  113. .dtype_format(DataType.I64_Default, DataType.F16_Default) \
  114. .dtype_format(DataType.I64_Default, DataType.F32_Default) \
  115. .dtype_format(DataType.I64_Default, DataType.F64_Default) \
  116. .dtype_format(DataType.I64_Default, DataType.BOOL_Default) \
  117. .dtype_format(DataType.F16_Default, DataType.U8_Default) \
  118. .dtype_format(DataType.F16_Default, DataType.U16_Default) \
  119. .dtype_format(DataType.F16_Default, DataType.U32_Default) \
  120. .dtype_format(DataType.F16_Default, DataType.U64_Default) \
  121. .dtype_format(DataType.F16_Default, DataType.I8_Default) \
  122. .dtype_format(DataType.F16_Default, DataType.I16_Default) \
  123. .dtype_format(DataType.F16_Default, DataType.I32_Default) \
  124. .dtype_format(DataType.F16_Default, DataType.I64_Default) \
  125. .dtype_format(DataType.F16_Default, DataType.F16_Default) \
  126. .dtype_format(DataType.F16_Default, DataType.F32_Default) \
  127. .dtype_format(DataType.F16_Default, DataType.F64_Default) \
  128. .dtype_format(DataType.F16_Default, DataType.BOOL_Default) \
  129. .dtype_format(DataType.F32_Default, DataType.U8_Default) \
  130. .dtype_format(DataType.F32_Default, DataType.U16_Default) \
  131. .dtype_format(DataType.F32_Default, DataType.U32_Default) \
  132. .dtype_format(DataType.F32_Default, DataType.U64_Default) \
  133. .dtype_format(DataType.F32_Default, DataType.I8_Default) \
  134. .dtype_format(DataType.F32_Default, DataType.I16_Default) \
  135. .dtype_format(DataType.F32_Default, DataType.I32_Default) \
  136. .dtype_format(DataType.F32_Default, DataType.I64_Default) \
  137. .dtype_format(DataType.F32_Default, DataType.F16_Default) \
  138. .dtype_format(DataType.F32_Default, DataType.F32_Default) \
  139. .dtype_format(DataType.F32_Default, DataType.F64_Default) \
  140. .dtype_format(DataType.F32_Default, DataType.BOOL_Default) \
  141. .dtype_format(DataType.F64_Default, DataType.U8_Default) \
  142. .dtype_format(DataType.F64_Default, DataType.U16_Default) \
  143. .dtype_format(DataType.F64_Default, DataType.U32_Default) \
  144. .dtype_format(DataType.F64_Default, DataType.U64_Default) \
  145. .dtype_format(DataType.F64_Default, DataType.I8_Default) \
  146. .dtype_format(DataType.F64_Default, DataType.I16_Default) \
  147. .dtype_format(DataType.F64_Default, DataType.I32_Default) \
  148. .dtype_format(DataType.F64_Default, DataType.I64_Default) \
  149. .dtype_format(DataType.F64_Default, DataType.F16_Default) \
  150. .dtype_format(DataType.F64_Default, DataType.F32_Default) \
  151. .dtype_format(DataType.F64_Default, DataType.F64_Default) \
  152. .dtype_format(DataType.F64_Default, DataType.BOOL_Default) \
  153. .dtype_format(DataType.BOOL_Default, DataType.U8_Default) \
  154. .dtype_format(DataType.BOOL_Default, DataType.U16_Default) \
  155. .dtype_format(DataType.BOOL_Default, DataType.U32_Default) \
  156. .dtype_format(DataType.BOOL_Default, DataType.U64_Default) \
  157. .dtype_format(DataType.BOOL_Default, DataType.I8_Default) \
  158. .dtype_format(DataType.BOOL_Default, DataType.I16_Default) \
  159. .dtype_format(DataType.BOOL_Default, DataType.I32_Default) \
  160. .dtype_format(DataType.BOOL_Default, DataType.I64_Default) \
  161. .dtype_format(DataType.BOOL_Default, DataType.F16_Default) \
  162. .dtype_format(DataType.BOOL_Default, DataType.F32_Default) \
  163. .dtype_format(DataType.BOOL_Default, DataType.F64_Default) \
  164. .dtype_format(DataType.BOOL_Default, DataType.BOOL_Default) \
  165. .get_op_info()
  166. @op_info_register(cast_op_info)
  167. def _cast_aicpu():
  168. """Cast AiCPU register"""
  169. return