Skip to content

[BUG] Building cuOpt on pre-Volta infra produces unrelated error message(s) #166

@bbozkaya

Description

@bbozkaya

When cuOpt is built from scratch on a pre-Volta GPU infrastructure, the build process produces an error where compile fails first, and this is not quite relevant to the root cause of the error (ie. pre-Volta systems not being supported in the first place).

It would be better if the build process checks for the underlying GPU infra and bail out right away with a suitable error message that says pre-Volta GPUs are not supported.

See below for an example error when cuOpt was built on a Pascal-based system.

`/home/mjs/git/cuopt/cpp/src/mip/feasibility_jump/load_balancing.cuh(
453): error: identifier "__match_any_sync" is undefined
uint32_t mask = __match_any_sync(__activemask(), delta);
^
detected during instantiation of "void
cuopt::linear_programming::detail::load_balancing_mtm_compute_candid
ates<i_t,f_t>(cuopt::linear_programming::detail::fj_t<i_t,
f_t>::climber_data_t::view_t) [with i_t=int, f_t=double]" at line
1540 of
/home/mjs/git/cuopt/cpp/src/mip/feasibility_jump/feasibility_jump_ke
rnels.cu

1 error detected in the compilation of
"/home/mjs/git/cuopt/cpp/src/mip/feasibility_jump/feasibility_jump_k
ernels.cu".
[59/209] Building CUDA object
CMakeFiles/cuopt.dir/src/routing/local_search/compute_insertions.cu.
o
ninja: build stopped: subcommand failed.`

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions