-
Notifications
You must be signed in to change notification settings - Fork 180
chore(examples): restructure CUDA examples and add a GEMM example #200
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
adamcavendish
commented
Apr 15, 2025
- Refactored the CUDA examples directory for improved clarity and modularity so each example is more self-contained.
- Added a new GEMM (General Matrix Multiply) example, including naive and tiled kernel implementations, build scripts, and benchmarks.
- The tiled-gemm kernel demonstrates the shared memory usage.
20bd07e
to
5628a8a
Compare
Emm ... it seems that the Windows workflow is now generating the |
fb2e300
to
1141830
Compare
- Refactored the CUDA examples directory for improved clarity and modularity so each example is more self-contained. - Added a new GEMM (General Matrix Multiply) example, including naive and tiled kernel implementations, build scripts, and benchmarks. - The tiled-gemm kernel demonstrates the shared memory usage.
1141830
to
690911a
Compare
I found the original CI Windows pipeline has "add" disabled so maybe the issue has been around for a while. I wonder whether someone can reproduce it locally on a windows? @jorge-ortega |
On Windows, an import lib is generated in addition to the dll. All that does is load the actual dll when the process starts. I tried
I think the issue might have to be with these warnings:
We get them on both Windows and Linux (minus the .lib). Seems cargo is building it multiple times for each binary. As soon as it finishes building it for one build script, another build of the codegen comes and wipes it before the compiler can load it. This would explain the LoadLibrary and linker error We might need to switch to workspace dependencies so the codegen and other crates only build once for everything in the workspace. |
It tried switching to workspace deps, but it doesn't seem to work for build-dependencies. We might have to instead build each example in separate build commands, so they don't interfere with each other. |
Get it. What about merging this change first since previously we have such issue too? |
@LegNeato FYI, since you've been working on the modal CI. Hope this won't interfere much. |
Thanks! Don't worry about me, I'll keep rebasing. |