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.

rt_stars.h 2.8 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
  3. * Description:
  4. */
  5. #ifndef __CCE_RUNTIME_STARS_H
  6. #define __CCE_RUNTIME_STARS_H
  7. #include "base.h"
  8. #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE)
  9. extern "C" {
  10. #endif
  11. /**
  12. * @ingroup rt_stars
  13. * @brief launch stars task.
  14. * used for send star sqe directly.
  15. * @param [in] taskSqe stars task sqe
  16. * @param [in] sqeLen stars task sqe length
  17. * @param [in] stream associated stream
  18. * @return RT_ERROR_NONE for ok, others failed
  19. */
  20. RTS_API rtError_t rtStarsTaskLaunch(const void *taskSqe, uint32_t sqeLen, rtStream_t stream);
  21. /**
  22. * @ingroup rt_stars
  23. * @brief create cdq instance.
  24. * @param [in] batchNum batch number
  25. * @param [in] batchSize batch size
  26. * @param [in] queName cdq name
  27. * @return RT_ERROR_NONE for ok, ACL_ERROR_RT_NO_CDQ_RESOURCE for no cdq resources
  28. */
  29. RTS_API rtError_t rtCdqCreate(uint32_t batchNum, uint32_t batchSize, const char *queName);
  30. /**
  31. * @ingroup rt_stars
  32. * @brief destroy cdq instance.
  33. * @param [in] queName cdq name
  34. * @return RT_ERROR_NONE for ok, others failed
  35. */
  36. RTS_API rtError_t rtCdqDestroy(const char *queName);
  37. /**
  38. * @ingroup rt_stars
  39. * @brief get free batch in the queue.
  40. * @param [in] queName cdq name
  41. * @param [in] timeout batch size
  42. * @param [out] batchId batch index
  43. * @return RT_ERROR_NONE for ok, ACL_ERROR_RT_WAIT_TIMEOUT for timeout
  44. */
  45. RTS_API rtError_t rtCdqAllocBatch(const char *queName, int32_t timeout, uint32_t *batchId);
  46. /**
  47. * @ingroup rt_stars
  48. * @brief launch a write_cdqm task on the stream.
  49. * When the task is executed, the data information will be inserted into the cdqe index position of the queue.
  50. * @param [in] queName cdq name
  51. * @param [in] cdqeIndex cdqe index
  52. * @param [in] data cdqe infomation
  53. * @param [in] dataSize data size
  54. * @param [in] stream launch task on the stream
  55. * @return RT_ERROR_NONE for ok, others failed
  56. */
  57. RTS_API rtError_t rtCdqEnQueue(const char *queName, uint32_t cdqeIndex, void *data, uint32_t dataSize,
  58. rtStream_t stream);
  59. /**
  60. * @ingroup rt_stars
  61. * @brief launch a write_cdqm task on the stream.
  62. * When the task is executed, the data information will be inserted into the cdqe index position of the queue.
  63. * @param [in] queName cdq name
  64. * @param [in] cdqeIndex cdqe index
  65. * @param [in] data cdqe infomation
  66. * @param [in] dataSize data size
  67. * @param [in] stream launch task on the stream
  68. * @return RT_ERROR_NONE for ok, others failed
  69. */
  70. RTS_API rtError_t rtCdqEnQueuePtrMode(const char *queName, uint32_t cdqeIndex, const void *prtAddr,
  71. rtStream_t stream);
  72. #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE)
  73. }
  74. #endif
  75. #endif // __CCE_RUNTIME_STARS_H

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