Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -492,18 +492,23 @@ rapids_cpm_find(

add_executable(cuopt_cli cuopt_cli.cpp)

# PIE executable: auditwheel/patchelf expands .dynstr/RPATH when repairing wheels; non-PIE
# (ET_EXEC) binaries are prone to corrupt segment layout. PIE (ET_DYN) survives RPATH edits.
set_target_properties(cuopt_cli
PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED ON
CXX_SCAN_FOR_MODULES OFF
POSITION_INDEPENDENT_CODE ON
)

target_compile_options(cuopt_cli
PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${CUOPT_CXX_FLAGS}>"
"$<$<COMPILE_LANGUAGE:CUDA>:${CUOPT_CUDA_FLAGS}>"
)

target_link_options(cuopt_cli PRIVATE -pie)

target_include_directories(cuopt_cli
PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/src"
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/barrier/barrier.cu
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@
#include <raft/linalg/dot.cuh>

#include <thrust/iterator/permutation_iterator.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/transform_output_iterator.h>
#include <thrust/iterator/zip_iterator.h>

namespace cuopt::linear_programming::dual_simplex {

Expand Down
1 change: 1 addition & 0 deletions cpp/src/barrier/iterative_refinement.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include <dual_simplex/vector_math.hpp>

#include <thrust/execution_policy.h>
#include <thrust/extrema.h>
#include <thrust/fill.h>
#include <thrust/inner_product.h>
#include <thrust/reduce.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include <thrust/copy.h>
#include <thrust/count.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/logical.h>
#include <thrust/sort.h>
#include <cub/cub.cuh>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

#include <raft/random/rng.cuh>

#include <thrust/iterator/transform_iterator.h>

#include <cooperative_groups.h>

#include "feasibility_jump_impl_common.cuh"
Expand Down
3 changes: 3 additions & 0 deletions cpp/src/mip_heuristics/feasibility_jump/fj_cpu.cu
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

#include <raft/core/nvtx.hpp>

#include <thrust/iterator/transform_iterator.h>
#include <thrust/tuple.h>

#include <chrono>
#include <iomanip>
#include <mutex>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
#include "bounds_repair.cuh"

#include <thrust/copy.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/partition.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>
#include <cuda/std/functional>
#include <mip_heuristics/logger.cuh>
#include <mip_heuristics/mip_constants.hpp>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
#include <utilities/copy_helpers.hpp>
#include <utilities/timer.hpp>

#include <thrust/iterator/zip_iterator.h>
#include <thrust/tuple.h>

namespace cuopt::linear_programming::detail {

// from the paper, probability of choosing random candidate= noise parameter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
#include <thrust/copy.h>
#include <thrust/gather.h>
#include <thrust/iterator/transform_output_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/partition.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>

namespace cuopt::linear_programming::detail {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
#include "lb_bounds_repair.cuh"

#include <thrust/copy.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/partition.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>
#include <mip_heuristics/logger.cuh>
#include <mip_heuristics/mip_constants.hpp>
#include <utilities/seed_generator.cuh>
Expand Down
1 change: 1 addition & 0 deletions cpp/src/mip_heuristics/presolve/bounds_presolve.cu
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/functional.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/transform_reduce.h>
#include <thrust/tuple.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
#include "cusparse.h"

#include <cub/cub.cuh>

#include <thrust/extrema.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/transform_reduce.h>
#include <thrust/tuple.h>

#include "conditional_bound_strengthening.cuh"

#include <unordered_set>
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/mip_heuristics/presolve/lb_probing_cache.cu
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
#include <mip_heuristics/mip_constants.hpp>
#include <mip_heuristics/utils.cuh>

#include <thrust/iterator/zip_iterator.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>
#include <utilities/copy_helpers.hpp>
#include <utilities/timer.hpp>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/iterator/transform_input_output_iterator.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/partition.h>
#include <thrust/reduce.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand All @@ -10,6 +10,7 @@
#include "load_balanced_bounds_presolve_kernels.cuh"
#include "load_balanced_partition_helpers.cuh"

#include <thrust/extrema.h>
#include <thrust/iterator/constant_iterator.h>
#include <thrust/iterator/counting_iterator.h>
#include <thrust/iterator/transform_iterator.h>
Expand Down
1 change: 1 addition & 0 deletions cpp/src/mip_heuristics/presolve/multi_probe.cu
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/tuple.h>
#include <utilities/copy_helpers.hpp>
Expand Down
3 changes: 3 additions & 0 deletions cpp/src/mip_heuristics/presolve/probing_cache.cu
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@

#include <omp.h>
#include <thrust/binary_search.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>
#include <utilities/copy_helpers.hpp>
#include <utilities/timer.hpp>

Expand Down
2 changes: 2 additions & 0 deletions cpp/src/mip_heuristics/presolve/trivial_presolve.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
#include <utilities/copy_helpers.hpp>

#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/for_each.h>
#include <thrust/iterator/constant_iterator.h>
#include <thrust/iterator/counting_iterator.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/transform_output_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/partition.h>
Expand Down
3 changes: 3 additions & 0 deletions cpp/src/mip_heuristics/problem/problem.cu
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@
#include <thrust/count.h>
#include <thrust/gather.h>
#include <thrust/iterator/counting_iterator.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/set_operations.h>
#include <thrust/sort.h>
#include <thrust/tabulate.h>
#include <thrust/transform_reduce.h>
#include <thrust/tuple.h>
#include <cuda/std/functional>

Expand Down
2 changes: 2 additions & 0 deletions cpp/src/mip_heuristics/problem/problem_helpers.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@
#include <thrust/count.h>
#include <thrust/functional.h>
#include <thrust/gather.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/logical.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>

namespace cuopt::linear_programming::detail {
template <typename f_t>
Expand Down
1 change: 1 addition & 0 deletions cpp/src/mip_heuristics/solution/solution.cu
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <raft/sparse/detail/cusparse_wrappers.h>

#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/transform_reduce.h>
#include <cuda/functional>
#include <raft/linalg/binary_op.cuh>
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pdlp/initial_scaling_strategy/initial_scaling.cu
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#include <raft/util/cudart_utils.hpp>

#include <thrust/iterator/constant_iterator.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/scatter.h>

namespace cuopt::linear_programming::detail {
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pdlp/pdhg.cu
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@

#include <cub/cub.cuh>

#include <thrust/iterator/zip_iterator.h>

#include <cusparse_v2.h>

namespace cuopt::linear_programming::detail {
Expand Down
1 change: 1 addition & 0 deletions cpp/src/pdlp/pdlp.cu
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

#include <thrust/count.h>
#include <thrust/extrema.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/logical.h>

#include <cmath>
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pdlp/restart_strategy/pdlp_restart_strategy.cu
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <raft/linalg/unary_op.cuh>
#include <raft/util/cuda_utils.cuh>

#include <thrust/device_ptr.h>
#include <thrust/device_vector.h>
#include <thrust/extrema.h>
#include <thrust/for_each.h>
Expand All @@ -39,6 +40,7 @@
#include <thrust/iterator/zip_iterator.h>
#include <thrust/logical.h>
#include <thrust/sort.h>
#include <thrust/tuple.h>

#include <cub/cub.cuh>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@

#include <cub/cub.cuh>

#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>

#include <limits>

namespace cuopt::linear_programming::detail {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <raft/util/cuda_utils.cuh>

#include <thrust/device_ptr.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>

#include <cub/cub.cuh>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@
#include <raft/linalg/unary_op.cuh>
#include <raft/util/cuda_utils.cuh>

#include <thrust/device_ptr.h>
#include <thrust/extrema.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/transform_output_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/transform_reduce.h>
#include <thrust/tuple.h>

namespace cuopt::linear_programming::detail {
template <typename i_t, typename f_t>
infeasibility_information_t<i_t, f_t>::infeasibility_information_t(
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pdlp/utils.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

#include <thrust/execution_policy.h>
#include <thrust/functional.h>
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/transform_reduce.h>
#include <thrust/tuple.h>

Expand Down
4 changes: 3 additions & 1 deletion cpp/src/routing/local_search/compute_compatible.cu
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand All @@ -9,6 +9,8 @@
#include "compute_compatible.cuh"
#include "local_search.cuh"

#include <thrust/extrema.h>
#include <thrust/iterator/zip_iterator.h>
#include <thrust/reduce.h>

#include <raft/util/cudart_utils.hpp>
Expand Down
4 changes: 3 additions & 1 deletion cpp/src/routing/route/break_route.cuh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand All @@ -17,6 +17,8 @@

#include <rmm/device_uvector.hpp>

#include <thrust/tuple.h>

namespace cuopt {
namespace routing {
namespace detail {
Expand Down
5 changes: 4 additions & 1 deletion cpp/src/routing/route/capacity_route.cuh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2021-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand All @@ -17,6 +17,9 @@
#include <raft/core/nvtx.hpp>

#include <rmm/device_uvector.hpp>

#include <thrust/tuple.h>

namespace cuopt {
namespace routing {
namespace detail {
Expand Down
4 changes: 3 additions & 1 deletion cpp/src/routing/route/dimensions_route.cuh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2021-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand Down Expand Up @@ -30,6 +30,8 @@
#include <rmm/device_scalar.hpp>
#include <rmm/device_uvector.hpp>

#include <thrust/tuple.h>

namespace cuopt {
namespace routing {
namespace detail {
Expand Down
4 changes: 3 additions & 1 deletion cpp/src/routing/route/distance_route.cuh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* clang-format off */
/*
* SPDX-FileCopyrightText: Copyright (c) 2021-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
/* clang-format on */
Expand All @@ -17,6 +17,8 @@

#include <rmm/device_uvector.hpp>

#include <thrust/tuple.h>

namespace cuopt {
namespace routing {
namespace detail {
Expand Down
Loading
Loading