Skip to content

Conversation

@ZedongPeng
Copy link
Collaborator

Summary

This PR implements major structural improvements to enhance maintainability and cross-platform support.
These changes are fairly extensive and may affect downstream usage.
Any comments or suggestions are very welcome. @LucasBoTang @jinwen-yang

Changes

1. Build System Migration

2. Header Separation

  • Removed redundant includes.

  • Rename interface.c/h to cupdlpx.c/h.

  • Headers are now split:

    • include/: Public API (What users see).
    • internal/: Private Implementation (What users don't see).
  • Benefit:

    • Achieves stronger encapsulation and reduces unwanted coupling when external projects include our headers.
    • Necessary for developing Julia interface (using Clang.jl to wrap the C API)
  • Related PR: [WIP] Add Julia interface for cuPDLPx cuPDLPx.jl#2

This PR has been verified to work withpip install .

$ pip install .
Processing /orcd/home/002/zdpeng/github/cuPDLPx
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.21 in /home/zdpeng/anaconda3/lib/python3.12/site-packages (from cupdlpx==0.1.2) (1.26.4)
Requirement already satisfied: scipy>=1.8 in /home/zdpeng/anaconda3/lib/python3.12/site-packages (from cupdlpx==0.1.2) (1.13.1)
Building wheels for collected packages: cupdlpx
  Building wheel for cupdlpx (pyproject.toml) ... done
  Created wheel for cupdlpx: filename=cupdlpx-0.1.2-cp312-cp312-linux_x86_64.whl size=745587 sha256=8dd3b19efe0db53a394e5656258e4d618d92d7011f579b1d443ef504130fbac7
  Stored in directory: /orcd/home/002/zdpeng/tmp/pip-ephem-wheel-cache-mhtou0t7/wheels/9d/09/77/9b7446b72da85c238bb43f7eac35c8f623b17bf9d9cb3a1452
Successfully built cupdlpx
Installing collected packages: cupdlpx
  Attempting uninstall: cupdlpx
    Found existing installation: cupdlpx 0.1.2
    Uninstalling cupdlpx-0.1.2:
      Successfully uninstalled cupdlpx-0.1.2
Successfully installed cupdlpx-0.1.2

@ZedongPeng ZedongPeng merged commit e402631 into MIT-Lu-Lab:main Nov 11, 2025
Lhongpei pushed a commit to Lhongpei/cuPDLPx that referenced this pull request Nov 12, 2025
* Refactor: Separate Public/Internal Headers

* update readme

* remove Makefile and update test.sh

* add support for all CUDA ARCH

* CI: add clang format check

* update clang-format-check.yml

* remove clang_format_check.yml

* update readme
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support automatic CUDA detection (migrate to CMake)

2 participants