Repository navigation
Metal Acceleration for cuPDLP-C #3104
Replies: 10 comments 5 replies
|
We will be writing our own version of PDLP, and will look to enable it to run on Macs |
And this sounds glorious. Is there an ETA? Is this in the pdlp-raphael branch? I observed it is quite fast on some problems. |
|
Work has started on the new PDLP solver but it's not yet part of the repo. We've got external funding to develop it that will grease the wheels and will focus our minds on a delivery date of November. The |
By the way, how do I build the highspy package so that I can use "latest" in my python code? |
|
I thought we had this documented somewhere, but no... I've done it many times, and have the following note (for Linux)
cd build; cmake .. -DCMAKE_INSTALL_PREFIX=install
make install
sudo pip install . --break-system-packages
sudo apt install python3-pip If you're on Windows I don't know how to do it |
|
Has there been any progress on this in the last months? |
No, sorry, still working on the NVIDIA build |
|
Converting this to a discussion, still focusing on NVIDIA and AMD until possibly a later stage. |
|
I have seen that in the ZLUDA source tree, there is highs integration, https://github.com/vosen/ZLUDA/tree/master/ext/highs-sys but, since ZLUDA does not support metal, I am not sure how this performs. Have you done some performance testing there? (Or: does it work at all?) OTOH, have you had a look into cuda-metal https://github.com/Lulzx/cuda-metal/ or CUDAM https://github.com/MEHDI342/CUDAM ? |
|
@mocenigo I got the CUDA path running on an Apple GPU. https://github.com/Lulzx/cuda-metal/tree/main/demos/highs I tested it in two ways:
On my M4 Pro, with presolve disabled to isolate the PDLP loop, Across the three LPfeas instances I measured, the aggregate speedup is about 1.3x. With presolve enabled the end-to-end improvement falls to roughly 1.04x, since presolve runs on the CPU in both builds and dominates the runtime. Worst-case objective disagreement between the two builds is FP64 is emulated: storage remains IEEE-754 binary64, while arithmetic uses an FP32 pair with about 48 significand bits. cuPDLP is a good fit anyway, because |
Uh oh!
There was an error while loading. Please reload this page.
FEATURE REQUEST
Would it be possible to get a Metal accelerated version of cuPDLP-C anytime sooner? I believe without creating a direct dependency on High cost Nvidia GPUs, it would give a way to accelerate the algorithms using GPU on Mac devices
All reactions