Open fuglede opened 5 months ago
The segfault itself comes from here:
$ gdb build/bin/plc
Reading symbols from build/bin/plc...
(gdb) run
Starting program: /home/user/repos/cuPDLP-C/build/bin/plc
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
--------------------------------------------------
reading file...
./example/afiro.mps
--------------------------------------------------
Running HiGHS 1.7.0 (git hash: 13363c9f1): Copyright (c) 2024 HiGHS under MIT licence terms
Minimize
No obj offset
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7d1d381 in Init_Scaling () from /usr/local/lib/libhighs.so.1
Linking to HiGHS 1.6.0 works, with and without CUDA, so this appears to just be a dependency versioning issue.
I tried building #17 instead but get a ton of other warnings/errors, so some amount of work would be required to get this up and running, it seems.
Hi, thank you for your feedback! Our cuPDLP-C is developed with the mps reader of HiGHS 1.6.0 and we are still trying to improve its usability and stability.
Currently, HiGHS 1.7.0 https://highs.dev integrates the CPU part of our cuPDLP-C (no GPU part may cause several conflicts 😭).
For a more stable and user-friendly version with both CPU and GPU parts of our solver, we highly recommend you to try COPT 7.1 https://www.shanshu.ai/copt with the parameter LpMethod = 6
. You can easily get a free license for academic use😉.
I too got a bunch of problems when trying to use HiGHS 1.7, I think they mostly came from the fact that HiGHS 1.7 includes a copy of this project. So, I deleted src/pdlp
in HiGHS and recompiled the library (this required only minor patching), and this has worked fine for me this far (but I have only tested a couple of models).
This seems related https://github.com/ERGO-Code/HiGHS/issues/1694
Yes, sorry, I didn't think that including a modified version of cuPDLP-C
in HiGHS would cause problems. I'm about to rename the modified methods so that the native cuPDLP-C
will work with future versions of HiGHS.
I've modified the names of the two cuPDLP-C methods that I modified to control logging, so that the original cuPDLP-C methods are called when building the stand-alone version. The modified code has been pushed to https://github.com/ERGO-Code/HiGHS/tree/latest
I can run HiGHS on
example/afiro.mps
after building from source. I can buildplc
without errors, but trying to run it on the example file will produce a segmentation fault.If I build with
-DBUILD_CUDA=ON
, with either of the two proposed cmake configurations, the-h
option also gives some errors that suggest that something is off:If I set
-DBUILD_CODA=OFF
, the error from-h
goes away, but I still get the segfault on the example file.Build output: I can run HiGHS on
example/afiro.mps
after building from source. I can buildplc
without errors, but trying to run it on the example file will produce a segmentation fault.If I build with
-DBUILD_CUDA=ON
, with either of the two proposed cmake configurations, the-h
option also gives some errors that suggest that something is off:If I set
-DBUILD_CODA=OFF
, the error from-h
goes away, but I still get the segfault on the example file.Build output:
Does this ring a bell?