Skip to content

HeteroSTA engine fails to load: undefined symbol DefWriter::write in timing_heterosta_cpp.so #238

Description

@GO25XIP

Environment

  • OS: Linux (x86_64)
  • Python: 3.9
  • CUDA: 11.8
  • Timing engine: HeteroSTA (timer_engine = "heterosta")
Image

Steps to reproduce

  1. Run DREAMPlace with HeteroSTA as the timing engine (e.g. set "timer_engine": "heterosta" in the JSON config).
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions