Fix the performance degradation issue of the single-wheel operation in Ant Moving.#287
Conversation
Summary of ChangesHello @oagniqgnat, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses a performance degradation observed during single-wheel operations within the Ant Moving system, specifically impacting the Mixture of Experts (MoE) combine normal operator. The solution involves a significant architectural refactoring to differentiate between single-round and multi-round processing paths. By isolating the more complex multi-round logic into a dedicated implementation and optimizing the original operator for single-round execution, the system avoids unnecessary overhead. Complementary memory optimizations and conditional dispatching further contribute to the overall performance enhancement for the targeted single-wheel scenarios. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
d8c6e7e to
eaa9f83
Compare
There was a problem hiding this comment.
Code Review
The pull request refactors the CamMoeCombineNormal operator into single-round and multi-round implementations, introducing a tilingKey mechanism to select between them. The original cam_moe_combine_normal.h is streamlined for single-round processing by removing all multi-round specific logic, member variables, and related helper functions, while a new header cam_moe_combine_normal_multi_round.h is added to encapsulate the multi-round functionality. Memory offsets like COMBINE_STATE_WIN_OFFSET are reduced across several files. Review comments highlight issues with tensor management in CopyBufferToShareAndSetStatus, suggesting Get<uint32_t>() instead of AllocTensor<uint32_t>() for TBuf and proper passing of the status tensor to SetStatusBySrcInfo. Additionally, the use of preprocessor macros for TILINGKEY constants is flagged, recommending constexpr variables within a namespace for type safety, and code duplication between the single-round and multi-round classes is noted, suggesting refactoring into a base class. Finally, a redundant using namespace Moe; statement in cam_moe_combine_normal.h is pointed out.
c154f21 to
92bba92
Compare
92bba92 to
f5ee3fd
Compare
* upstream/main: Fix the performance degradation issue of the single-wheel operation in Ant Moving. (sgl-project#287)
…pu-old into bugfix * 'a3_topk-1' of https://github.com/luanyundu/sgl-kernel-npu-old: fix dispatch_layout to support topk -1 feature optimize gdn gating and fused_qkvzba_split_reshape_cat (sgl-project#306) fix layout numTokensPerExpertTensor partial Initialization bug (sgl-project#303) Supplement A2 doc, software and hardware compatibility info (sgl-project#294) Added an environment variable to control whether to enable the Combine Ant Migration feature. (sgl-project#304) Support build with cann 8.5 (sgl-project#283) LoRA: Optimization LoRA kernels and refactoring (sgl-project#284) fix a2 single combine aclnn params Resolving the UB out-of-bounds issue caused by A2 dual-machine mixed operation (sgl-project#288) fix notify magic auto-increment bug (sgl-project#291) split_qkv_rmsnorm_rope bugfix (sgl-project#290) Optimize prepare_lens by removing device transfer (sgl-project#289) Fix the performance degradation issue of the single-wheel operation in Ant Moving. (sgl-project#287) modify split_qkv_rmsnorm_rope (sgl-project#282)
Fix the performance degradation issue of the single-wheel operation in Ant Moving.