Correctly set _GLIBCXX_USE_CXX11_ABI pybind compile options#6744
Correctly set _GLIBCXX_USE_CXX11_ABI pybind compile options#6744
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/6744
Note: Links to docs will display an error until the docs builds have been completed. ✅ No FailuresAs of commit 51d6fba with merge base 785ebf3 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
As to reason why this is necessary: Until 2.6 PyTorch was targeting manylinux2014, which still ships with CXX library that does not support C++11 ABI, so wheel binaries where always build with pre-cxx11 ABI (but conda with it, as conda ships newer libstdc++) |
Co-authored-by: Nikita Shulga <2453524+malfet@users.noreply.github.com>
Thank you for the explanation! Now that makes sense, I vaguely remember reading about this before. |
|
Going to test this out on pytorch/pytorch#140199 to wait for a green CI signal before landing. I have been able to verified this locally |
This will be updated to ET trunk commit after pytorch/executorch#6744 lands. I also move ET back from unstable and install llama3 dependencies Pull Request resolved: #140199 Approved by: https://github.com/kit1980
This will be updated to ET trunk commit after pytorch/executorch#6744 lands. I also move ET back from unstable and install llama3 dependencies Pull Request resolved: pytorch#140199 Approved by: https://github.com/kit1980
I finally understand why pytorch/pytorch#139947 (comment) passed on PyTorch nightly binaries while failed on those that were built from source on CI. It turns out that
_GLIBCXX_USE_CXX11_ABIis always unset when building ET pybind. For some reason what I'm not sure, PyTorch nightly binaries unset_GLIBCXX_USE_CXX11_ABIwhile PyTorch CI sets it, maybe @malfet has some context here. This explains why the test couldn't find these quantized symbol. The missing torchao and torchtune was a red herring.As ET already has
EXECUTORCH_DO_NOT_USE_CXX11_ABIoption, the fix here is just to check for this and set_GLIBCXX_USE_CXX11_ABIaccordingly.