You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/guide/gpu.md
+33-6Lines changed: 33 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,49 @@
1
1
# [GPU acceleration](@id gpu)
2
2
3
-
From HiGHS v1.10.0, its first order primal-dual LP (PDLP) solver [cuPDLP-C](https://github.com/COPT-Public/cuPDLP-C) can be run on an NVIDIA GPU under Linux and Windows. However, to achieve this, CUDA utilities must be installed and HiGHS must be built locally using CMake, as described below.
3
+
From HiGHS v1.10.0, its first order primal-dual LP (PDLP) solver
4
+
[cuPDLP-C](https://github.com/COPT-Public/cuPDLP-C) can be run on an
5
+
NVIDIA GPU under Linux and Windows. However, to achieve this, CUDA
6
+
utilities must be installed and HiGHS must be built locally using
7
+
CMake, as described below.
4
8
5
9
### PDLP: A health warning
6
10
7
-
First order solvers for LP are still very much "work in progress". Although impressive results have been reported, these are often to lower accuracy than is achieved by simplex and interior point solvers, have been obtained using top-of-the-range GPUs, and not achieved for all problem classes. Note that, due to PDLP using relative termination conditions, a solution deemed optimal by PDLP may not be accepted as optimal by HiGHS. The user should consider the infeasibility data returned by [HighsInfo](@ref HighsInfo) to decide whether the solution is acceptable to them.
11
+
First order solvers for LP are still very much "work in
12
+
progress". Although impressive results have been reported, these are
13
+
often to lower accuracy than is achieved by simplex and interior point
14
+
solvers, have been obtained using top-of-the-range GPUs, and not
15
+
achieved for all problem classes. Note that, due to PDLP using
16
+
relative termination conditions, a solution deemed optimal by PDLP may
17
+
not be accepted as optimal by HiGHS. The user should consider the
18
+
infeasibility data returned by [HighsInfo](@ref HighsInfo) to decide
19
+
whether the solution is acceptable to them.
8
20
9
21
#### Termination criteria
10
22
11
-
Although the PDLP solver may report that it has terminated with an optimal solution, HiGHS may identify that the solution returned by PDLP is not optimal. As discussed in [HiGHS feasibilty and optimality tolerances](@ref kkt), this is due to PDLP using relative termination criteria.
12
-
13
-
If you use the HiGHS PDLP solver, in the first instance it is recommended that you increase the feasibility and optimality tolerances to `1e-4`, since this will result in the algorithm terminating much sooner. There are multiple feasibility and optimality tolerances, but all will be set to the value of the [`kkt_tolerance`](@ref option-kkt-tolerance) option (if it differs from its default value of `1e-4`) so this is recommended in the first instance.
23
+
Although the PDLP solver may report that it has terminated with an
24
+
optimal solution, HiGHS may identify that the solution returned by
25
+
PDLP is not optimal. As discussed in [HiGHS feasibility and optimality
26
+
tolerances](@ref kkt), this is due to PDLP using relative termination
27
+
criteria and (unlike interior point solvers) not satisfying
28
+
feasibility to high accuracy.
29
+
30
+
If you use the HiGHS PDLP solver, in the first instance it is
31
+
recommended that you increase the feasibility and optimality
32
+
tolerances to `1e-4`, since this will result in the algorithm
33
+
terminating much sooner. There are multiple feasibility and optimality
34
+
tolerances, but all will be set to the value of the
35
+
[`kkt_tolerance`](@ref option-kkt-tolerance) option (if it differs
36
+
from its default value of `1e-4`) so this is recommended in the first
37
+
instance.
14
38
15
39
### Requirements
16
40
17
41
CUDA Toolkit and CMake.
18
42
19
-
A [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) installation is required, along with the matching NVIDIA driver. Please install both following the instructions on NVIDIA's website.
43
+
A [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit)
44
+
installation is required, along with the matching NVIDIA
45
+
driver. Please install both following the instructions on NVIDIA's
0 commit comments