Conversation
|
!test |
Description
Changes walkthrough 📝
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
|
!test --dev |
|
The CI script of dev branch (--dev) has already been merged and had no difference from the default CI trigger. I'll take a look at the PR later. |
xwang233
left a comment
There was a problem hiding this comment.
This change seems a bit weird to me. I want to ask, if we add NVFUSER_BUILD_WITH_ASAN to cmake definitions, should we also add all other build configs?
When you build nvfuser the first time with python setup.py develop, the cmake build cache is already populated. Without cleaning up the build, the second python setup.py develop is expected to be an incremental build that follows similar build configs as your first build. If you don't want ASAN in the second build, perhaps you should clean up the build and uninstall first?
If the option for NVFUSER_BUILD_WITH_ASAN is turned off in CMake here
Lines 374 to 379 in 07effe8
codegen_internal target should be recompiled.
I think so. I'm happy to do that if you think this PR is moving to the right direction.
That's exactly the part I wanted to check with you -- user-facing behavior. I wrote down my motivation in the PR description in case you missed it. To me, there's an inconsistency between switching from noasan to asan and switching from asan to noasan. The former rebuilds but the latter doesn't. This user-facing behavior sounds counter-intuitive to me; if both had rebuilt, I would have accepted the behavior. Does the problem now make sense to you, and do you think it needs a fix? |
I agree, that sounds counter-intuitive. I'd take a look and see if there are standards or conventions for pip editable install. Either way won't change our release behavior since we only build once in CI. Also, let @jjsjann123 take a look. |
jjsjann123
left a comment
There was a problem hiding this comment.
I'm on board with the direction. i.e. let's make options explicit.
A follow-up to #4319 Before this PR, we don't pass -D for default values. This confused me several times, so I'm making this change to ensure consistent behavior across clean and dirty builds. Refer to code comments for details.
This is a follow-up to #4319 Before this PR, we don't pass -D for default values. This confused me several times, so I'm making this change to ensure consistent behavior across clean and dirty builds. Refer to code comments for details.
This might just show my ignorance of CMake. Let me know if you have a better fix.
Symptom
When I run
python setup.py --build-with-asanand thenpython setup.py, the second build still has asan enabled.Investigation
The first build runs
cmake -DNVFUSER_BUILD_WITH_ASAN=ON, which addsNVFUSER_BUILD_WITH_ASAN:BOOL=ONto CMakeLists.txtThe second build runs
cmakewithout-DNVFUSER_BUILD_WITH_ASANspecified.cmakechooses to use the cached value and therefore doesn't change the existingNVFUSER_BUILD_WITH_ASAN:BOOL=ONin CMakeLists.txt toOFF.Proposed solution
Let
setup.pyalways specify-DNVFUSER_BUILD_WITH_ASAN.