fix: missing header include in decode kernel jit binding#1802
fix: missing header include in decode kernel jit binding#1802tqchen merged 1 commit intoflashinfer-ai:mainfrom
Conversation
This commit adds the missing include of the header `decode.cuh` in the JIT binding `csrc/batch_decode.cu`, without this fix, there will be linking error when linking `batch_decode.o`, `batch_decode_kernel.o` and `batch_decode_jit_binding.o`. The reason is that, `csrc/batch_decode.cu` relies on `scheduler.cuh` for decoding attention planning. `scheduler.cuh` declares the decode kernel of `BatchDecodeWithPagedKVCacheKernel`, which is implemented in `decode.cuh`, but does not include `decode.cuh`. Therefore, if `csrc/batch_decode.cu` does not include `decode.cuh`, the decode kernel will be a symbol that is declared but not implemented.
Summary of ChangesHello @MasterJH5574, 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 specific build-time linking error by introducing a necessary header inclusion in 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.
Code Review
This pull request correctly addresses a linking error by adding the missing #include <flashinfer/attention/decode.cuh> in csrc/batch_decode.cu. The change is straightforward and effective. My review includes one suggestion for a potential follow-up to improve code maintainability by moving the include to a more appropriate location to better reflect the dependency between headers.
This commit reverts changes in flashinfer-ai#1802, and adds a new method `get_object_paths` to JITSpec, which returns the paths of all compiled object files. For applications that want to get the object files rather than the loaded shared library (such as MLC model compilation), this method could be leveraged.
## 📌 Description This commit reverts changes in #1802, and adds a new method `get_object_paths` to JITSpec, which returns the paths of all compiled object files. For applications that want to get the object files rather than the loaded shared library (such as MLC model compilation), this method could be leveraged. ## 🔍 Related Issues N/A ## 🚀 Pull Request Checklist Thank you for contributing to FlashInfer! Before we review your pull request, please make sure the following items are complete. ### ✅ Pre-commit Checks - [x] I have installed `pre-commit` by running `pip install pre-commit` (or used your preferred method). - [x] I have installed the hooks with `pre-commit install`. - [x] I have run the hooks manually with `pre-commit run --all-files` and fixed any reported issues. > If you are unsure about how to set up `pre-commit`, see [the pre-commit documentation](https://pre-commit.com/). ## 🧪 Tests - [x] Tests have been added or updated as needed. - [x] All tests are passing (`unittest`, etc.). ## Reviewer Notes
📌 Description
This commit adds the missing include of the header
decode.cuhin the JIT bindingcsrc/batch_decode.cu, without this fix, there will be linking error when linkingbatch_decode.o,batch_decode_kernel.oandbatch_decode_jit_binding.o.The reason is that,
csrc/batch_decode.curelies onscheduler.cuhfor decoding attention planning.scheduler.cuhdeclares the decode kernel ofBatchDecodeWithPagedKVCacheKernel, which is implemented indecode.cuh, but does not includedecode.cuh. Therefore, ifcsrc/batch_decode.cudoes not includedecode.cuh, the decode kernel will be a symbol that is declared but not implemented.🔍 Related Issues
N/A
🚀 Pull Request Checklist
Thank you for contributing to FlashInfer! Before we review your pull request, please make sure the following items are complete.
✅ Pre-commit Checks
pre-commitby runningpip install pre-commit(or used your preferred method).pre-commit install.pre-commit run --all-filesand fixed any reported issues.🧪 Tests
unittest, etc.).Reviewer Notes
N/A