-
Notifications
You must be signed in to change notification settings - Fork 57
support long cat on a3 #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @luanyundu, 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 significantly enhances the Mixture-of-Experts (MoE) low-latency dispatch and combine mechanisms on the A3 platform by introducing new operators capable of handling dropped tokens, represented by a Highlights
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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds support for topk=-1 in low-latency mode on A3 hardware, which seems to be referred to as "long cat". The changes are extensive, introducing new operators (MoeDistributeDispatchNegOne, MoeDistributeCombineNegOne) with their corresponding definitions, kernel implementations, and tiling logic. Additionally, some utility code has been refactored into a shared header, and tests have been updated to cover the new functionality.
My review has identified several issues. There are a couple of high-severity bugs in csrc/deepep/deep_ep.cpp related to code duplication and the potential use of uninitialized variables, which could lead to incorrect behavior. I've also found a critical out-of-bounds memory access in an error-handling utility header (check_winsize.h) and a compilation-breaking typo in one of the new tiling files. Other findings include a typo in a test script and an unconventional use of a preprocessor directive. I've provided suggestions to address these points to improve code quality, correctness, and maintainability.
Support topk -1 for low_latency on A3


Before we open the environment variable MOE_ENABLE_TOPK_NEG_ONE, the performance is
After we open it, the performance is
As the environment variable can cause large performance loss, we should only use it necessarily, for example, long cat model.