Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2a31c99
New feat: GPU precondition
LucasBoTang Nov 14, 2025
5a993cd
New feat: synchronized A/At scaling
LucasBoTang Nov 15, 2025
c2c7252
Todo: infeasible is stucked
LucasBoTang Nov 15, 2025
63b2526
New feat: preconditioner prints
LucasBoTang Nov 15, 2025
3f17100
Bug fixed: objective & bound rescale
LucasBoTang Nov 16, 2025
e2149c3
Merge branch 'main' into preconditioner-v2
LucasBoTang Nov 16, 2025
1989b6b
New feat: record precondition time
LucasBoTang Nov 16, 2025
ae49b87
Merge branch 'main' into preconditioner-v2
LucasBoTang Nov 18, 2025
32889ca
feat: add logging for precondition time
LucasBoTang Nov 21, 2025
e3fd294
Bug fixed: numerical issue
LucasBoTang Nov 26, 2025
7381654
Clean code: clang-format and align naming style
LucasBoTang Nov 27, 2025
f13f572
Clean code: rename variables
LucasBoTang Nov 27, 2025
5ec9302
Refactor: move finite-bound computation
LucasBoTang Nov 28, 2025
af67331
Merge branch 'MIT-Lu-Lab:main' into preconditioner-v2
LucasBoTang Nov 28, 2025
61e88bd
Numerical issue: back to old version
LucasBoTang Nov 29, 2025
295e2cc
Merge remote-tracking branch 'upstream/main' into preconditioner-v2
LucasBoTang Nov 29, 2025
51685be
New ver: 0.1.5
LucasBoTang Nov 29, 2025
ec8532d
Merge branch 'preconditioner-v2' of github.com:LucasBoTang/cuPDLPx in…
LucasBoTang Nov 29, 2025
7b6c1fa
Merge branch 'main' into preconditioner-v2
LucasBoTang Dec 11, 2025
ccec6e3
Code refactor: CUB DeviceReduce for bound norm
LucasBoTang Dec 12, 2025
f0e0373
Merge branch 'main' into preconditioner-v2
LucasBoTang Dec 16, 2025
004665f
Bug fixed: typo
LucasBoTang Dec 16, 2025
079b1ef
Clean code: Limit CUB headers to device_reduce to reduce compile time
LucasBoTang Dec 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ project(cupdlpx LANGUAGES C CXX CUDA)

set(CUPDLPX_VERSION_MAJOR 0)
set(CUPDLPX_VERSION_MINOR 1)
set(CUPDLPX_VERSION_PATCH 4)
set(CUPDLPX_VERSION_PATCH 5)

set(CUPDLPX_VERSION "${CUPDLPX_VERSION_MAJOR}.${CUPDLPX_VERSION_MINOR}.${CUPDLPX_VERSION_PATCH}")
add_compile_definitions(CUPDLPX_VERSION="${CUPDLPX_VERSION}")
Expand Down
4 changes: 3 additions & 1 deletion internal/internal_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ typedef struct
int num_nonzeros;
int *row_ptr;
int *col_ind;
int *row_ind;
double *val;
int *transpose_map;
} cu_sparse_matrix_csr_t;

typedef struct
Expand All @@ -46,6 +48,7 @@ typedef struct
int num_blocks_primal;
int num_blocks_dual;
int num_blocks_primal_dual;
int num_blocks_nnz;
double objective_vector_norm;
double constraint_bound_norm;
double *constraint_lower_bound_finite_val;
Expand Down Expand Up @@ -129,7 +132,6 @@ typedef struct

typedef struct
{
lp_problem_t *scaled_problem;
double *con_rescale;
double *var_rescale;
double con_bound_rescale;
Expand Down
2 changes: 1 addition & 1 deletion internal/preconditioner.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ extern "C"

rescale_info_t *rescale_problem(
const pdhg_parameters_t *params,
const lp_problem_t *original_problem);
pdhg_solver_state_t *state);

#ifdef __cplusplus
}
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"

[project]
name = "cupdlpx"
version = "0.1.3"
version = "0.1.5"
description = "Python bindings for cuPDLPx (GPU-accelerated first-order LP solver)"
readme = "README.md"
license = { text = "Apache-2.0" }
Expand All @@ -25,7 +25,7 @@ wheel.packages = ["python/cupdlpx"]
sdist.include = ["tests/**", "pyproject.toml", "README.md", "LICENSE"]

[tool.scikit-build.cmake.define]
CMAKE_CUDA_ARCHITECTURES = "60;61;70;75;80;86;89;90;90-virtual"
CMAKE_CUDA_ARCHITECTURES = "all"
CMAKE_CUDA_STANDARD = "17"
CUPDLPX_BUILD_PYTHON = "ON"
CUPDLPX_BUILD_STATIC_LIB = "ON"
Expand Down
2 changes: 2 additions & 0 deletions src/cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ void save_solver_summary(const cupdlpx_result_t *result, const char *output_dir,
}
fprintf(outfile, "Termination Reason: %s\n",
termination_reason_to_string(result->termination_reason));
fprintf(outfile, "Precondition Time (sec): %e\n", result->rescaling_time_sec);
termination_reason_to_string(result->termination_reason);
fprintf(outfile, "Runtime (sec): %e\n", result->cumulative_time_sec);
fprintf(outfile, "Iterations Count: %d\n", result->total_count);
fprintf(outfile, "Primal Objective Value: %e\n",
Expand Down
306 changes: 0 additions & 306 deletions src/preconditioner.c

This file was deleted.

Loading