Environment
- OS: Linux (x86_64)
- Python: 3.9
- CUDA: 11.8
- Timing engine: HeteroSTA (
timer_engine = "heterosta")
Steps to reproduce
- Run DREAMPlace with HeteroSTA as the timing engine (e.g. set
"timer_engine": "heterosta" in the JSON config).
- The error occurs after the benchmark is read and when the Timer is being initialized.
Error message
Traceback (most recent call last): File ".../dreamplace/Timer.py", line 40, in init import dreamplace.ops.timing_heterosta.timing_hs as timing File ".../dreamplace/ops/timing_heterosta/timing_hs.py", line 5, in import dreamplace.ops.timing_heterosta.timing_heterosta_cpp as timing_hs_cpp ImportError: .../timing_heterosta_cpp.cpython-39-x86_64-linux-gnu.so: undefined symbol: ZNK10DreamPlace9DefWriter5writeERKSsS2_RKSt6vectorINS_4NodeESaIS4_EERKS3_IjSaIjEEPKiSE
The C++ mangled symbol demangles to DreamPlace::DefWriter::write(...) (const member function with parameters including std::string, std::vector<Node>, std::vector<unsigned>, etc.).
Possible cause
The timing_heterosta_cpp extension depends on DreamPlace::DefWriter::write at runtime, but that symbol is not defined in timing_heterosta_cpp.so and was not resolved during linking. This usually means the object or library that defines DefWriter was not linked when building the timing_heterosta extension.
Expected behavior
With HeteroSTA enabled, import dreamplace.ops.timing_heterosta.timing_heterosta_cpp should succeed without the above ImportError.
Happy to provide build steps or CMake/setup configuration if that would help.
Environment
timer_engine = "heterosta")Steps to reproduce
"timer_engine": "heterosta"in the JSON config).Error message
Traceback (most recent call last): File ".../dreamplace/Timer.py", line 40, in init import dreamplace.ops.timing_heterosta.timing_hs as timing File ".../dreamplace/ops/timing_heterosta/timing_hs.py", line 5, in import dreamplace.ops.timing_heterosta.timing_heterosta_cpp as timing_hs_cpp ImportError: .../timing_heterosta_cpp.cpython-39-x86_64-linux-gnu.so: undefined symbol: ZNK10DreamPlace9DefWriter5writeERKSsS2_RKSt6vectorINS_4NodeESaIS4_EERKS3_IjSaIjEEPKiSE
The C++ mangled symbol demangles to
DreamPlace::DefWriter::write(...)(const member function with parameters includingstd::string,std::vector<Node>,std::vector<unsigned>, etc.).Possible cause
The
timing_heterosta_cppextension depends onDreamPlace::DefWriter::writeat runtime, but that symbol is not defined intiming_heterosta_cpp.soand was not resolved during linking. This usually means the object or library that definesDefWriterwas not linked when building thetiming_heterostaextension.Expected behavior
With HeteroSTA enabled,
import dreamplace.ops.timing_heterosta.timing_heterosta_cppshould succeed without the aboveImportError.Happy to provide build steps or CMake/setup configuration if that would help.