rachelselinar / DREAMPlaceFPGA

An Open-Source Analytical Placer for Large Scale Heterogeneous FPGAs using Deep-Learning Toolkit
BSD 3-Clause "New" or "Revised" License
73 stars 18 forks source link

NonLinearPlaceFPGA.dump() not defined #22

Open hailiangh opened 12 months ago

hailiangh commented 12 months ago

The issue is in file dreamplacefpga/NonLinearPlace.py, line 712. The function self.dump() is not defined.

To reproduce the error:

Add the following option in test/FPGA-example1.json:

"dump_global_place_solution_flag" : 1

Then run the following command:

python dreamplacefpga/Placer.py test/FPGA-example1.json

Error message:

Traceback (most recent call last):
  File "dreamplacefpga/Placer.py", line 120, in <module>
    placeFPGA(params)
  File "dreamplacefpga/Placer.py", line 44, in placeFPGA
    metrics = placer(params, placedb)
  File "/home/grads/h/hailiang/DREAMPlaceFPGA/dreamplacefpga/NonLinearPlace.py", line 712, in __call__
    self.dump(params, placedb, self.pos[0].cpu(), "%s.lg.pklz" %(params.design_name()))
  File "/home/grads/h/hailiang/anaconda3/envs/dreamplacefpga/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1270, in __getattr__
    type(self).__name__, name))
AttributeError: 'NonLinearPlaceFPGA' object has no attribute 'dump'

Possible method to fix this issue: Add the dump() and load() function in dreamplacefpga/BasicPlace.py as in DREAMPlace. (I think dump and load work in pairs.) Links to example: dump( ), load( ).

rachelselinar commented 11 months ago

Created initial versions for dump() and load() functions in branch 'load_dump_feature' Will verify use case before merging.