Fix undefined symbol issue for transformer_engine::getenv #763
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix #756. The issue happens because we recently included
common/util/system.h
into PyTorch source CPP files at https://github.com/NVIDIA/TransformerEngine/pull/713/files to utilize thetransformer_engine::getenv
method. As a result, the PyTorchtransformer_engine_extensions
will now search for symbols within thelibtransformer_engine.so
library.However, if the user builds TransformerEngine in a local environment (conda or PyPI), because the pre-built PyTorch, either from conda or PyPI, has the CXX11_ABI set as False, whereas the common library is using the new CXX11_ABI. As a result, there will be an undefined symbol problem when importing
transformer_engine_extensions
. NGC PyTorch container is usingCXX11_ABI=1
, so there is no problem.