# Ceres Solver

Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.

1. Non-linear Least Squares problems with bounds constraints.
2. General unconstrained optimization problems.

• #### Improve the polynomial solvers

The current implementation of polynomial solvers used by the dogleg and line search routines is based on a mix of analytic formulae for up to quadratic equations and then a companion matrix based solver.

The companion matrix based solver is slow, because it requires the solution of an eigenvalue problem. Since the equations we are solving only involve a quartic of lower, it should be replaced by a numerically stable analytic solver.

This should be done for the cubic equation too. Further, the implementation of the quadratic solver can be improved too. Currently it uses the rather naive quadratic formula which is known to be not particularly numerically stable.

enhancement Type-Enhancement Performance
opened by sandwichmaker 29
• #### fmin/fmax semantics are problematic when comparing Jets with scalars

cc: @sergiud

@alexsmac found an instance of this in production code. But here is a minimal reproduction. Consider the following two tests.

``````TEST(Jet, FmaxEqualRealPartLeft) {
const J x = MakeJet(1, 2, 3);
const J y = fmax(x, x.a);
EXPECT_EQ(y.a, x.a) << y << " " << x;
EXPECT_EQ(y.v, x.v) << y << " " << x;
}

TEST(Jet, FmaxEqualRealPartRight) {
const J x = MakeJet(1, 2, 3);
const J y = fmax(x.a, x);
EXPECT_EQ(y.a, x.a) << y << " " << x;
EXPECT_EQ(y.v, x.v) << y << " " << x;
}

``````
``````[ RUN      ] Jet.FmaxEqualRealPartLeft
/Users/sameeragarwal/ceres-solver/internal/ceres/jet_test.cc:1295: Failure
Expected equality of these values:
y.v
Which is: { 0, 0 }
x.v
Which is: { 2, 3 }
[1 ; 0, 0] [1 ; 2, 3]
[  FAILED  ] Jet.FmaxEqualRealPartLeft (0 ms)
[ RUN      ] Jet.FmaxEqualRealPartRight
[       OK ] Jet.FmaxEqualRealPartRight (0 ms)
[----------] 34 tests from Jet (0 ms total)
``````

`FmaxEqualPartRight` passes while `FmaxEqualPartLeft` fails. The issue is the way we do jet v/s scalar comparisons. We promote the scalar to a jet with zero derivative and compare the real parts. If both the operands are jets to begin with then what derivative is returned is ambiguous.

However if one of them is scalar, then depending on whether the scalar is first operand or second, we can end up with a completely zero derivative, which does not seem ideal. The same problem is present with `fmin`.

bug
opened by sandwichmaker 26
• #### Include ceres-solver as fetchcontent directory

Hi,

I am trying to use ceres-solver (the master branch)with the development HEAD of Eigen, both are included as FetchContent projects:

``````include(FetchContent)
function(FetchContentHelper name vc url tag)
set(mvargs CONFIG_SUBDIR)
cmake_parse_arguments(PARSE_ARGV 4 FCH "\${options}" "" "\${mvargs}")

FetchContent_Declare(
\${name}
\${vc}_REPOSITORY \${url}
\${vc}_TAG        \${tag}
GIT_PROGRESS     ON
)
FetchContent_GetProperties(\${name})
if(NOT \${name}_POPULATED)
message("Setting up \${name} from \${url}")
FetchContent_Populate(\${name})
foreach(config \${FCH_CONFIG_SUBDIR})
string(REPLACE "=" ";" configkeyval \${config})
list(LENGTH configkeyval len)
if (len GREATER_EQUAL 2)
list(GET configkeyval 0 configkey)
list(SUBLIST configkeyval 1 -1 configvals)
string(REPLACE ";" "=" configval "\${configvals}")
else()
message(FATAL_ERROR "Invalid config: \${configkeyval}")
endif()
message("Set \${configkey} = \${configval}")
set(\${configkey} \${configval} CACHE INTERNAL "" FORCE)
endforeach()
set(\${name}_SOURCE_DIR \${\${name}_SOURCE_DIR} PARENT_SCOPE)
set(\${name}_BINARY_DIR \${\${name}_BINARY_DIR} PARENT_SCOPE)
endif()
endif()
endfunction(FetchContentHelper)
FetchContentHelper(eigen HG "https://bitbucket.org/eigen/eigen" default
BUILD_TESTING=OFF
)
# !1
set(Eigen3_DIR \${eigen_BINARY_DIR})
find_package(Eigen3 REQUIRED NO_MODULE NO_DEFAULT_PATH)
# get_target_property(eigen_include_dir Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES)  # !2
FetchContentHelper(ceres GIT "https://github.com/ceres-solver/ceres-solver.git" master
EIGEN_INCLUDE_DIR=\${eigen_SOURCE_DIR}  # !3
EIGENSPARSE=ON
SUITESPARSE=ON
CXSPARSE=OFF
GFLAGS=OFF
MINIGLOG=ON
CXX11=ON
OPENMP=ON
EXPORT_BUILD_DIR=ON
)
set(Ceres_DIR \${ceres_BINARY_DIR})
find_package(Ceres REQUIRED NO_DEFAULT_PATH)  # !4
``````

In general, this works, but there are places that do not work and/or confusing to me.

• !1: This is to import Eigen3::Eigen target.
• !2: This attempts to read the include dir property of Eigen3::Eigen, which I though I could use as EIGEN_INCLUDE_DIR in configuring ceres, but it turn out that the property from get_property is a generator expression, so it causes an error in the ceres cmake file.
• !3: Since !2 does not work, I use \${eigen_SOURCE_DIR} (populated by the fetchcontent_polulate command) to instruct the cere cmake file to find eigen, and it does work. However, this breaks when exporting the ceres target, due to the fact that this EIGEN_INCLUDE_DIR is in the build tree and cannot be set as one of the directories in INTERFACE_INCLUDE_DIR property. I can work around the problem by making the following change in ceres-src/internal/ceres/CMakeLists.txt:
``````# target_include_directories(ceres SYSTEM PUBLIC \${EIGEN_INCLUDE_DIRS})
target_include_directories(ceres SYSTEM PUBLIC
\$<BUILD_INTERFACE:\${EIGEN_INCLUDE_DIRS}>
\$<INSTALL_INTERFACE:include>)
``````
• !4: Finally, I can import the ceres target, but not sure if this is the right way of doing it.

Any help is greatly appreciated. Thank you!

cmake
opened by Jerry-Ma 21
• #### check_gradients seems to improve my solver

I have a solver that is formulated such that it runs for a maximum amount of time or a complicated stop criteria is seen in a option callback. When I do this, I see the stopping criteria is seen only ~70% of the time. When the only change I make is `options.check_gradients = true;` That solve rate spikes to 97.4%. I cannot for the life of me figure out what check_gradients might be changing in the solver to make the solver actually solve differently.

opened by pbeeson 21
• #### Three subtests of small_blas_test fail in C++17/20 mode in VS2022

Hi,

With `CMAKE_CXX_STANDARD=20` on VS 2022, the three sub-tests `BLAS.MatrixTransposeMatrixMultiply_9_9_9_Dynamic`, `BLAS.MatrixTransposeMatrixMultiplyNaive_9_9_9` and `BLAS.MatrixTransposeMatrixMultiplyNaive_9_9_9_Dynamic` fail (all others pass). I'm using Eigen 3.4.0.

Here's partial log output:

``````D:\ceres\ceres-solver\out\build\x64-Release> ctest . --rerun-failed -V
UpdateCTestConfiguration  from :D:/ceres/ceres-solver/out/build/x64-Release/DartConfiguration.tcl
UpdateCTestConfiguration  from :D:/ceres/ceres-solver/out/build/x64-Release/DartConfiguration.tcl
Test project D:/ceres/ceres-solver/out/build/x64-Release
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 85
Start 85: small_blas_test

85: Test command: D:\ceres\ceres-solver\out\build\x64-Release\bin\small_blas_test.exe "--test_srcdir" "D:/ceres/ceres-solver/data"
85: Test timeout computed to be: 10000000
85: Running main() from gmock_main.cc
85: [==========] Running 26 tests from 1 test suite.
85: [----------] Global test environment set-up.
85: [----------] 26 tests from BLAS
85: [ RUN      ] BLAS.MatrixMatrixMultiply_5_3_7
85: [       OK ] BLAS.MatrixMatrixMultiply_5_3_7 (2 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiply_5_3_7_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiply_5_3_7_Dynamic (2 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiply_1_1_1
85: [       OK ] BLAS.MatrixMatrixMultiply_1_1_1 (0 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiply_1_1_1_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiply_1_1_1_Dynamic (0 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiply_9_9_9
85: [       OK ] BLAS.MatrixMatrixMultiply_9_9_9 (43 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiply_9_9_9_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiply_9_9_9_Dynamic (45 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_5_3_7
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_5_3_7 (2 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_5_3_7_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_5_3_7_Dynamic (3 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_1_1_1
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_1_1_1 (0 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_1_1_1_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_1_1_1_Dynamic (0 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_9_9_9
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_9_9_9 (44 ms)
85: [ RUN      ] BLAS.MatrixMatrixMultiplyNaive_9_9_9_Dynamic
85: [       OK ] BLAS.MatrixMatrixMultiplyNaive_9_9_9_Dynamic (44 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_5_3_7
85: [       OK ] BLAS.MatrixTransposeMatrixMultiply_5_3_7 (0 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_5_3_7_Dynamic
85: [       OK ] BLAS.MatrixTransposeMatrixMultiply_5_3_7_Dynamic (0 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_1_1_1
85: [       OK ] BLAS.MatrixTransposeMatrixMultiply_1_1_1 (0 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_1_1_1_Dynamic
85: [       OK ] BLAS.MatrixTransposeMatrixMultiply_1_1_1_Dynamic (0 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_9_9_9
85: [       OK ] BLAS.MatrixTransposeMatrixMultiply_9_9_9 (40 ms)
85: [ RUN      ] BLAS.MatrixTransposeMatrixMultiply_9_9_9_Dynamic
85: D:\ceres\ceres-solver\internal\ceres\small_blas_test.cc(199): error: The difference between (C_plus_ref - C_plus).norm() and 0.0 is 1251.7156226555614, which exceeds kTolerance, where
85: (C_plus_ref - C_plus).norm() evaluates to 1251.7156226555614,
85: 0.0 evaluates to 0, and
85: kTolerance evaluates to 1.1102230246251565e-15.
85: C += A' * B
85: row_stride_c : 10
85: col_stride_c : 10
85: start_row_c  : 0
85: start_col_c  : 0
85: Cref :
85:  286  331  376  421  466  511  556  601  646    1
85:  331  385  439  493  547  601  655  709  763    1
85:  376  439  502  565  628  691  754  817  880    1
85:  421  493  565  637  709  781  853  925  997    1
85:  466  547  628  709  790  871  952 1033 1114    1
85:  511  601  691  781  871  961 1051 1141 1231    1
85:  556  655  754  853  952 1051 1150 1249 1348    1
85:  601  709  817  925 1033 1141 1249 1357 1465    1
85:  646  763  880  997 1114 1231 1348 1465 1582    1
85:    1    1    1    1    1    1    1    1    1    1
85: C:
85:  286  331  326  361  466  511  466  501  646    1
85:  331  385  371  411  547  601  531  571  763    1
85:  376  439  416  461  628  691  596  641  880    1
85:  421  493  461  511  709  781  661  711  997    1
85:  466  547  506  561  790  871  726  781 1114    1
85:  511  601  551  611  871  961  791  851 1231    1
85:  556  655  596  661  952 1051  856  921 1348    1
85:  601  709  641  711 1033 1141  921  991 1465    1
85:  646  763  686  761 1114 1231  986 1061 1582    1
85:    1    1    1    1    1    1    1    1    1    1
85: D:\ceres\ceres-solver\internal\ceres\small_blas_test.cc(217): error: The difference between (C_minus_ref - C_minus).norm() and 0.0 is 1251.7156226555614, which exceeds kTolerance, where
85: (C_minus_ref - C_minus).norm() evaluates to 1251.7156226555614,
85: 0.0 evaluates to 0, and
85: kTolerance evaluates to 1.1102230246251565e-15.
85: C -= A' * B
85: row_stride_c : 10
85: col_stride_c : 10
85: start_row_c  : 0
85: start_col_c  : 0
85: Cref :
85:  -284  -329  -374  -419  -464  -509  -554  -599  -644     1
85:  -329  -383  -437  -491  -545  -599  -653  -707  -761     1
85:  -374  -437  -500  -563  -626  -689  -752  -815  -878     1
85:  -419  -491  -563  -635  -707  -779  -851  -923  -995     1
85:  -464  -545  -626  -707  -788  -869  -950 -1031 -1112     1
85:  -509  -599  -689  -779  -869  -959 -1049 -1139 -1229     1
85:  -554  -653  -752  -851  -950 -1049 -1148 -1247 -1346     1
85:  -599  -707  -815  -923 -1031 -1139 -1247 -1355 -1463     1
85:  -644  -761  -878  -995 -1112 -1229 -1346 -1463 -1580     1
85:     1     1     1     1     1     1     1     1     1     1
85: C:
85:  -284  -329  -324  -359  -464  -509  -464  -499  -644     1
85:  -329  -383  -369  -409  -545  -599  -529  -569  -761     1
85:  -374  -437  -414  -459  -626  -689  -594  -639  -878     1
85:  -419  -491  -459  -509  -707  -779  -659  -709  -995     1
85:  -464  -545  -504  -559  -788  -869  -724  -779 -1112     1
85:  -509  -599  -549  -609  -869  -959  -789  -849 -1229     1
85:  -554  -653  -594  -659  -950 -1049  -854  -919 -1346     1
85:  -599  -707  -639  -709 -1031 -1139  -919  -989 -1463     1
85:  -644  -761  -684  -759 -1112 -1229  -984 -1059 -1580     1
85:     1     1     1     1     1     1     1     1     1     1
85: D:\ceres\ceres-solver\internal\ceres\small_blas_test.cc(235): error: The difference between (C_assign_ref - C_assign).norm() and 0.0 is 1251.7156226555614, which exceeds kTolerance, where
85: (C_assign_ref - C_assign).norm() evaluates to 1251.7156226555614,
85: 0.0 evaluates to 0, and
85: kTolerance evaluates to 1.1102230246251565e-15.
85: C = A' * B
85: row_stride_c : 10
85: col_stride_c : 10
85: start_row_c  : 0
85: start_col_c  : 0
85: Cref :
85:  285  330  375  420  465  510  555  600  645    1
85:  330  384  438  492  546  600  654  708  762    1
85:  375  438  501  564  627  690  753  816  879    1
85:  420  492  564  636  708  780  852  924  996    1
85:  465  546  627  708  789  870  951 1032 1113    1
85:  510  600  690  780  870  960 1050 1140 1230    1
85:  555  654  753  852  951 1050 1149 1248 1347    1
85:  600  708  816  924 1032 1140 1248 1356 1464    1
85:  645  762  879  996 1113 1230 1347 1464 1581    1
85:    1    1    1    1    1    1    1    1    1    1
85: C:
85:  285  330  325  360  465  510  465  500  645    1
85:  330  384  370  410  546  600  530  570  762    1
85:  375  438  415  460  627  690  595  640  879    1
85:  420  492  460  510  708  780  660  710  996    1
85:  465  546  505  560  789  870  725  780 1113    1
85:  510  600  550  610  870  960  790  850 1230    1
85:  555  654  595  660  951 1050  855  920 1347    1
85:  600  708  640  710 1032 1140  920  990 1464    1
85:  645  762  685  760 1113 1230  985 1060 1581    1
85:    1    1    1    1    1    1    1    1    1    1
85: D:\ceres\ceres-solver\internal\ceres\small_blas_test.cc(199): error: The difference between (C_plus_ref - C_plus).norm() and 0.0 is 1251.7156226555614, which exceeds kTolerance, where
85: (C_plus_ref - C_plus).norm() evaluates to 1251.7156226555614,
85: 0.0 evaluates to 0, and
85: kTolerance evaluates to 1.1102230246251565e-15.
85: C += A' * B
85: row_stride_c : 10
85: col_stride_c : 11
85: start_row_c  : 0
85: start_col_c  : 0
85: Cref :
85:  286  331  376  421  466  511  556  601  646    1    1
85:  331  385  439  493  547  601  655  709  763    1    1
85:  376  439  502  565  628  691  754  817  880    1    1
85:  421  493  565  637  709  781  853  925  997    1    1
85:  466  547  628  709  790  871  952 1033 1114    1    1
85:  511  601  691  781  871  961 1051 1141 1231    1    1
85:  556  655  754  853  952 1051 1150 1249 1348    1    1
85:  601  709  817  925 1033 1141 1249 1357 1465    1    1
85:  646  763  880  997 1114 1231 1348 1465 1582    1    1
85:    1    1    1    1    1    1    1    1    1    1    1
85: C:
85:  286  331  326  361  466  511  466  501  646    1    1
85:  331  385  371  411  547  601  531  571  763    1    1
85:  376  439  416  461  628  691  596  641  880    1    1
85:  421  493  461  511  709  781  661  711  997    1    1
85:  466  547  506  561  790  871  726  781 1114    1    1
85:  511  601  551  611  871  961  791  851 1231    1    1
85:  556  655  596  661  952 1051  856  921 1348    1    1
85:  601  709  641  711 1033 1141  921  991 1465    1    1
85:  646  763  686  761 1114 1231  986 1061 1582    1    1
85:    1    1    1    1    1    1    1    1    1    1    1
85: D:\ceres\ceres-solver\internal\ceres\small_blas_test.cc(217): error: The difference between (C_minus_ref - C_minus).norm() and 0.0 is 1251.7156226555614, which exceeds kTolerance, where
85: (C_minus_ref - C_minus).norm() evaluates to 1251.7156226555614,
85: 0.0 evaluates to 0, and
85: kTolerance evaluates to 1.1102230246251565e-15.
85: C -= A' * B
85: row_stride_c : 10
85: col_stride_c : 11
85: start_row_c  : 0
85: start_col_c  : 0
85: Cref :
85:  -284  -329  -374  -419  -464  -509  -554  -599  -644     1     1
85:  -329  -383  -437  -491  -545  -599  -653  -707  -761     1     1
85:  -374  -437  -500  -563  -626  -689  -752  -815  -878     1     1
85:  -419  -491  -563  -635  -707  -779  -851  -923  -995     1     1
85:  -464  -545  -626  -707  -788  -869  -950 -1031 -1112     1     1
85:  -509  -599  -689  -779  -869  -959 -1049 -1139 -1229     1     1
85:  -554  -653  -752  -851  -950 -1049 -1148 -1247 -1346     1     1
85:  -599  -707  -815  -923 -1031 -1139 -1247 -1355 -1463     1     1
85:  -644  -761  -878  -995 -1112 -1229 -1346 -1463 -1580     1     1
85:     1     1     1     1     1     1     1     1     1     1     1
85: C:
85:  -284  -329  -324  -359  -464  -509  -464  -499  -644     1     1
85:  -329  -383  -369  -409  -545  -599  -529  -569  -761     1     1
85:  -374  -437  -414  -459  -626  -689  -594  -639  -878     1     1
85:  -419  -491  -459  -509  -707  -779  -659  -709  -995     1     1
85:  -464  -545  -504  -559  -788  -869  -724  -779 -1112     1     1
85:  -509  -599  -549  -609  -869  -959  -789  -849 -1229     1     1
85:  -554  -653  -594  -659  -950 -1049  -854  -919 -1346     1     1
85:  -599  -707  -639  -709 -1031 -1139  -919  -989 -1463     1     1
85:  -644  -761  -684  -759 -1112 -1229  -984 -1059 -1580     1     1
85:     1     1     1     1     1     1     1     1     1     1     1

[..... much more of this .....]

85: [  FAILED  ] BLAS.MatrixTransposeMatrixMultiplyNaive_9_9_9_Dynamic (136791 ms)
85: [ RUN      ] BLAS.MatrixVectorMultiply
85: [       OK ] BLAS.MatrixVectorMultiply (0 ms)
85: [ RUN      ] BLAS.MatrixTransposeVectorMultiply
85: [       OK ] BLAS.MatrixTransposeVectorMultiply (0 ms)
85: [----------] 26 tests from BLAS (411930 ms total)
85:
85: [----------] Global test environment tear-down
85: [==========] 26 tests from 1 test suite ran. (411930 ms total)
85: [  PASSED  ] 23 tests.
85: [  FAILED  ] 3 tests, listed below:
85: [  FAILED  ] BLAS.MatrixTransposeMatrixMultiply_9_9_9_Dynamic
85: [  FAILED  ] BLAS.MatrixTransposeMatrixMultiplyNaive_9_9_9
85: [  FAILED  ] BLAS.MatrixTransposeMatrixMultiplyNaive_9_9_9_Dynamic
85:
85:  3 FAILED TESTS
1/1 Test #85: small_blas_test ..................***Failed  412.24 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) = 413.93 sec

The following tests FAILED:
85 - small_blas_test (Failed)
Errors while running CTest
Output from these tests are in: D:/ceres/ceres-solver/out/build/x64-Release/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
``````

I was going to upload the full `LastTest.log`, but it's 1 GB (due to so much console output) - and I suspect it won't be needed.

/CC @sergiud

opened by patrikhuber 20
• #### gradient_problem_solver_test failing on VS2015x64 Release

"SolvesRosenbrockWithDefaultOptions" test from gradient_problem_solver_test.cc fails on VS2015x64 Release version. Here is the log:

``````[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
r: The difference between 1.0 and parameters[0] is 2.2000000000000002, which exceeds expected_tolerance, where
1.0 evaluates to 1,
parameters[0] evaluates to -1.2, and
expected_tolerance evaluates to 1.0000000000000001e-09.
r: The difference between 1.0 and parameters[1] is 1, which exceeds expected_tolerance, where
1.0 evaluates to 1,
parameters[1] evaluates to 0, and
expected_tolerance evaluates to 1.0000000000000001e-09.
[  FAILED  ] GradientProblemSolver.SolvesRosenbrockWithDefaultOptions (4 ms)
[----------] 1 test from GradientProblemSolver (4 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (5 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:

1 FAILED TEST
``````

I didn't manage to reproduce the error on VS2013x64 Release and VS2015x64 Debug.

bug
opened by Ardavel 19
• #### FAILURE (Can't use SPARSE_NORMAL_CHOLESKY with SUITESPARSE because SuiteSparse was not enabled when Ceres was built.)

Hi guys,

I'm using TheiaSfM which has ceres as a dependency and got the following exception error when running the global pipeline:

``````Termination: FAILURE (Can't use SPARSE_NORMAL_CHOLESKY with SUITESPARSE because SuiteSparse was not enabled when Ceres was built.)
``````

I'm pretty sure that I compiled ceres with a sparse solver (tried with Suitesparse, CXSparse and Eigensparse). Did you notice any similar issue in this direction?

PD: you can check the short chat I had with Theia author **** and the complete log I got.

opened by edgarriba 19
• #### cuda_memcheck_* and covariance_test tests failed on VS 2022, ceres 2.1.0rc1

Hi ceres-solver team,

I'm giving the 2.1.0rc1 a spin in the following environment: Windows 11, VS 2022, `cl`/toolset version `14.31.31103`, CUDA v11.1, no CxSparse, no SuiteSparse, and glog/gflags installed via vcpkg, as well as Eigen (v3.4.0).

So far so good, it all compiled! I've subsequently ran the tests, and I thought I'd report those three failures as you've asked for Windows testing on the mailing list (I am not sure if they are relevant or how relevant they are): `cuda_memcheck_dense_qr_test`, `cuda_memcheck_dense_cholesky_test` and `covariance_test`.

I've dug a bit into the CUDA memtests and I'm quite sure they fail because the path is wrong. The test is running:

`Test command: "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\cuda-memcheck.exe" "--leak-check" "full" "D:/ceres/build/bin/cuda_dense_qr_test"` Whereas the actual exe is in `D:\ceres\build\bin\Release` (i.e. added "/Release"). If I run the above cuda-memcheck command manually with the fixed path, the test passes. Also I ran the tests from the build directory (and from VS directly). I'm not supposed to run the INSTALL target first, right?

Full output log of the failed tests:

``````D:\ceres\build> ctest -C Release --output-on-failure --rerun-failed -VV
UpdateCTestConfiguration  from :D:/ceres/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :D:/ceres/build/DartConfiguration.tcl
Test project D:/ceres/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
Start  1: cuda_memcheck_dense_qr_test

1: Test command: "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\cuda-memcheck.exe" "--leak-check" "full" "D:/ceres/build/bin/cuda_dense_qr_test"
1: Test timeout computed to be: 10000000
1: ========= CUDA-MEMCHECK
1: ========= Error: Could not run D:/ceres/build/bin/cuda_dense_qr_test
1: ========= No CUDA-MEMCHECK results found
1/3 Test  #1: cuda_memcheck_dense_qr_test .........***Failed    0.01 sec
========= CUDA-MEMCHECK
========= Error: Could not run D:/ceres/build/bin/cuda_dense_qr_test
========= No CUDA-MEMCHECK results found

test 2
Start  2: cuda_memcheck_dense_cholesky_test

2: Test command: "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\cuda-memcheck.exe" "--leak-check" "full" "D:/ceres/build/bin/cuda_dense_cholesky_test"
2: Test timeout computed to be: 10000000
2: ========= CUDA-MEMCHECK
2: ========= Error: Could not run D:/ceres/build/bin/cuda_dense_cholesky_test
2: ========= No CUDA-MEMCHECK results found
2/3 Test  #2: cuda_memcheck_dense_cholesky_test ...***Failed    0.00 sec
========= CUDA-MEMCHECK
========= Error: Could not run D:/ceres/build/bin/cuda_dense_cholesky_test
========= No CUDA-MEMCHECK results found

test 24
Start 24: covariance_test

24: Test command: D:\ceres\build\bin\Release\covariance_test.exe "--test_srcdir" "D:/ceres/ceres-solver/data"
24: Test timeout computed to be: 10000000
24: Running main() from gmock_main.cc
24: [==========] Running 22 tests from 4 test suites.
24: [----------] Global test environment set-up.
24: [----------] 3 tests from CovarianceImpl
24: [ RUN      ] CovarianceImpl.ComputeCovarianceSparsity
24: [       OK ] CovarianceImpl.ComputeCovarianceSparsity (0 ms)
24: [ RUN      ] CovarianceImpl.ComputeCovarianceSparsityWithConstantParameterBlock
24: [       OK ] CovarianceImpl.ComputeCovarianceSparsityWithConstantParameterBlock (0 ms)
24: [ RUN      ] CovarianceImpl.ComputeCovarianceSparsityWithFreeParameterBlock
24: [       OK ] CovarianceImpl.ComputeCovarianceSparsityWithFreeParameterBlock (0 ms)
24: [----------] 3 tests from CovarianceImpl (0 ms total)
24:
24: [----------] 14 tests from CovarianceTest
24: [ RUN      ] CovarianceTest.NormalBehavior
24: [       OK ] CovarianceTest.NormalBehavior (2 ms)
24: [ RUN      ] CovarianceTest.ConstantParameterBlock
24: [       OK ] CovarianceTest.ConstantParameterBlock (1 ms)
24: [ RUN      ] CovarianceTest.LocalParameterization
24: [       OK ] CovarianceTest.LocalParameterization (2 ms)
24: [ RUN      ] CovarianceTest.LocalParameterizationInTangentSpace
24: [       OK ] CovarianceTest.LocalParameterizationInTangentSpace (2 ms)
24: [ RUN      ] CovarianceTest.LocalParameterizationInTangentSpaceWithConstantBlocks
24: [       OK ] CovarianceTest.LocalParameterizationInTangentSpaceWithConstantBlocks (1 ms)
24: [ RUN      ] CovarianceTest.Manifold
24: [       OK ] CovarianceTest.Manifold (1 ms)
24: [ RUN      ] CovarianceTest.ManifoldInTangentSpace
24: [       OK ] CovarianceTest.ManifoldInTangentSpace (1 ms)
24: [ RUN      ] CovarianceTest.ManifoldInTangentSpaceWithConstantBlocks
24: [       OK ] CovarianceTest.ManifoldInTangentSpaceWithConstantBlocks (1 ms)
24: [ RUN      ] CovarianceTest.TruncatedRank
24: [       OK ] CovarianceTest.TruncatedRank (3 ms)
24: [ RUN      ] CovarianceTest.DenseCovarianceMatrixFromSetOfParameters
24: E0312 15:50:02.777002 23032 covariance_impl.cc:529] SuiteSparse is required to use the SPARSE_QR algorithm with Covariance::Options::sparse_linear_algebra_library_type = SUITE_SPARSE.
24: F0312 15:50:02.777002 23032 covariance_impl.cc:294] Check failed: is_valid_ Covariance::GetCovarianceMatrix called when Covariance::Compute returned false.
24: *** Check failure stack trace: ***
24:     @   00007FF7BDAECDCB  (unknown)
24:     @   00007FF7BDA7F0B5  (unknown)
24:     @   00007FF7BDA8D2AC  (unknown)
24:     @   00007FF7BDA8D196  (unknown)
24:     @   00007FF7BDA8D34C  (unknown)
24:     @   00007FF7BDA8D276  (unknown)
24:     @   00007FF7BDB0CB2D  (unknown)
24:     @   00007FF7BDB0BAA0  (unknown)
3/3 Test #24: covariance_test .....................***Failed    0.08 sec
Running main() from gmock_main.cc
[==========] Running 22 tests from 4 test suites.
[----------] Global test environment set-up.
[----------] 3 tests from CovarianceImpl
[ RUN      ] CovarianceImpl.ComputeCovarianceSparsity
[       OK ] CovarianceImpl.ComputeCovarianceSparsity (0 ms)
[ RUN      ] CovarianceImpl.ComputeCovarianceSparsityWithConstantParameterBlock
[       OK ] CovarianceImpl.ComputeCovarianceSparsityWithConstantParameterBlock (0 ms)
[ RUN      ] CovarianceImpl.ComputeCovarianceSparsityWithFreeParameterBlock
[       OK ] CovarianceImpl.ComputeCovarianceSparsityWithFreeParameterBlock (0 ms)
[----------] 3 tests from CovarianceImpl (0 ms total)

[----------] 14 tests from CovarianceTest
[ RUN      ] CovarianceTest.NormalBehavior
[       OK ] CovarianceTest.NormalBehavior (2 ms)
[ RUN      ] CovarianceTest.ConstantParameterBlock
[       OK ] CovarianceTest.ConstantParameterBlock (1 ms)
[ RUN      ] CovarianceTest.LocalParameterization
[       OK ] CovarianceTest.LocalParameterization (2 ms)
[ RUN      ] CovarianceTest.LocalParameterizationInTangentSpace
[       OK ] CovarianceTest.LocalParameterizationInTangentSpace (2 ms)
[ RUN      ] CovarianceTest.LocalParameterizationInTangentSpaceWithConstantBlocks
[       OK ] CovarianceTest.LocalParameterizationInTangentSpaceWithConstantBlocks (1 ms)
[ RUN      ] CovarianceTest.Manifold
[       OK ] CovarianceTest.Manifold (1 ms)
[ RUN      ] CovarianceTest.ManifoldInTangentSpace
[       OK ] CovarianceTest.ManifoldInTangentSpace (1 ms)
[ RUN      ] CovarianceTest.ManifoldInTangentSpaceWithConstantBlocks
[       OK ] CovarianceTest.ManifoldInTangentSpaceWithConstantBlocks (1 ms)
[ RUN      ] CovarianceTest.TruncatedRank
[       OK ] CovarianceTest.TruncatedRank (3 ms)
[ RUN      ] CovarianceTest.DenseCovarianceMatrixFromSetOfParameters
E0312 15:50:02.777002 23032 covariance_impl.cc:529] SuiteSparse is required to use the SPARSE_QR algorithm with Covariance::Options::sparse_linear_algebra_library_type = SUITE_SPARSE.
F0312 15:50:02.777002 23032 covariance_impl.cc:294] Check failed: is_valid_ Covariance::GetCovarianceMatrix called when Covariance::Compute returned false.
*** Check failure stack trace: ***
@   00007FF7BDAECDCB  (unknown)
@   00007FF7BDA7F0B5  (unknown)
@   00007FF7BDA8D2AC  (unknown)
@   00007FF7BDA8D196  (unknown)
@   00007FF7BDA8D34C  (unknown)
@   00007FF7BDA8D276  (unknown)
@   00007FF7BDB0CB2D  (unknown)
@   00007FF7BDB0BAA0  (unknown)

0% tests passed, 3 tests failed out of 3

Total Test time (real) =   0.11 sec

The following tests FAILED:
1 - cuda_memcheck_dense_qr_test (Failed)
2 - cuda_memcheck_dense_cholesky_test (Failed)
24 - covariance_test (Failed)
Errors while running CTest
``````
opened by patrikhuber 18
• #### FindTBB.cmake doesn't find newer TBB versions

For the intel provided linux binary installers, `FindTBB.cmake` has an outdated path, for gcc4.4 only:

https://github.com/ceres-solver/ceres-solver/blob/e39d9ed1d60dfeb58dd2a0df4622c683f87b28e3/cmake/FindTBB.cmake#L145-L157

Up to TBB 2020.2 it seems the possible versions of intel provided binary packages are: 4.1, 4.4, 4.7, 4.8

``````\$ find /opt/intel/ -type d -name compilers_and_libraries* | grep 20........ -o | sort | uniq | tr '\n' ' '
2018.0.128 2018.2.199 2018.3.222 2018.5.274 2019.0.117 2019.1.144 2019.2.187 2019.3.199 2019.4.243 2019.5.281 2020.0.166 2020.1.217
\$ find /opt/intel/ -type d -name gcc* | grep gcc... -o | sort | uniq | tr '\n' ' '
gcc4.1 gcc4.4 gcc4.7 gcc4.8
``````

I can provide a patch adding all 4 possible paths. Of course that would break again in the future when newer TBB versions use newer paths... Not sure if there is a better solution. I don't think `PATH_SUFFIXES` can contain wildcards or something like that.

opened by NikolausDemmel 18
• #### invert_psd_matrix_test fails on Debian Sid, amd64

Trying to package 1.13.0 RC1 for Debian, I encounter one failing unit test:

36/75 Test #39: invert_psd_matrix_test .......................***Exception: Other 0.12 sec Running main() from gmock_main.cc [==========] Running 3 tests from 1 test case. [----------] Global test environment set-up. [----------] 3 tests from InvertPSDMatrix [ RUN ] InvertPSDMatrix.Identity3x3 [ OK ] InvertPSDMatrix.Identity3x3 (0 ms) [ RUN ] InvertPSDMatrix.FullRank5x5 [ OK ] InvertPSDMatrix.FullRank5x5 (0 ms) [ RUN ] InvertPSDMatrix.RankDeficient5x5 invert_psd_matrix_test: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h:637: void Eigen::JacobiSVD<MatrixType, QRPreconditioner>::allocate(Eigen::Index, Eigen::Index, unsigned int) [with _MatrixType = Eigen::Matrix<double, 5, 5, 1, 5, 5>; int QRPreconditioner = 2; Eigen::Index = long int]: Assertion `(!(m_computeThinU || m_computeThinV) || (MatrixType::ColsAtCompileTime==Dynamic)) && "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns."' failed.

Debian unstable currently has Eigen 3.3.4.

opened by debalance 16
• #### Unable to successfully build Ceres-Solver on Windows 10

I have been struggling to build the Ceres-Solver for some time. In need it to work as a x64 library. Has anyone successfully built and released a compiled version Using Microsoft Visual Studio version 2017 and/or 2019?

Any help is appreciated!

Thanks,

Robert

opened by rhoffman-gpsw 15
• #### Turn off housekeeping in optimization code.

This is a feature request. It would be nice to have a flag that turns off all data collection into summary structure. For optimization routines that work quite fast most of the time is spent in iteration info collection and housekeeping. When the code is double checked and works just fine I would like to improve performance by not collecting the data inside `summary` structure.

opened by nemeshnorbert 3
• #### cuda-related tests failed when make test

Thank you for your fantastic work.

I'm on Ubuntu 18.04, cuda-10.0 but got some cuda-related tests that failed while 'make test'. Could you please give some advice on that? Thanks in advance.

``````96% tests passed, 8 tests failed out of 183

Total Test time (real) = 244.35 sec

The following tests FAILED:
1 - cuda_memcheck_dense_qr_test (Failed)
2 - cuda_memcheck_dense_cholesky_test (Failed)
26 - cuda_dense_cholesky_test (Failed)
27 - cuda_dense_qr_test (Failed)
102 - ba_denseschur_cuda_auto_test (Subprocess aborted)
144 - ba_denseschur_cuda_user_test (Subprocess aborted)
Errors while running CTest
Output from these tests are in: /home/ubuntu/catkin_wss/ceres-bin/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
Makefile:70: recipe for target 'test' failed
make: *** [test] Error 8

Here's the part of the log:
1/183 Testing: cuda_memcheck_dense_qr_test
1/183 Test: cuda_memcheck_dense_qr_test
Command: "/usr/local/cuda-10.0/bin/cuda-memcheck" "--leak-check" "full" "/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test"
Directory: /home/ubuntu/catkin_wss/ceres-bin/internal/ceres
"cuda_memcheck_dense_qr_test" start time: Nov 18 07:37 UTC
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 5 tests from 1 test suite.
[----------] Global test environment set-up.
[       OK ] CUDADenseQR.InvalidOptionOnCreate (0 ms)
========= CUDA-MEMCHECK
========= Program hit cudaErrorInvalidDeviceFunction (error 8) due to "invalid device function" on CUDA API call to cudaFuncSetAttribute.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x4545f6]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x79a03c]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c2ab]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c610]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 (cublasCreate_v2 + 0x1ce7) [0x14b337]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x53762]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x54abb]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x110de]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x5290a]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d7f3]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d9b8]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3dc31]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x4489c]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x44be1]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0xffea]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xe7) [0x21c87]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x1011a]
=========
========= Program hit cudaErrorInvalidDeviceFunction (error 8) due to "invalid device function" on CUDA API call to cudaGetLastError.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x4545f6]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x79deb3]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c2b8]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c610]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 (cublasCreate_v2 + 0x1ce7) [0x14b337]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x53762]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x54abb]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x110de]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x5290a]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d7f3]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d9b8]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3dc31]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x4489c]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x44be1]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0xffea]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xe7) [0x21c87]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x1011a]
=========
========= Program hit cudaErrorInvalidDeviceFunction (error 8) due to "invalid device function" on CUDA API call to cudaFuncSetAttribute.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x4545f6]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x79a03c]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c2ab]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c610]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 (cublasCreate_v2 + 0x1ce7) [0x14b337]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x53762]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x54abb]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x110de]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x5290a]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d7f3]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3d9b8]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x3dc31]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x4489c]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x44be1]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0xffea]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xe7) [0x21c87]
=========     Host Frame:/home/ubuntu/catkin_wss/ceres-bin/bin/cuda_dense_qr_test [0x1011a]
=========
========= Program hit cudaErrorInvalidDeviceFunction (error 8) due to "invalid device function" on CUDA API call to cudaGetLastError.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x4545f6]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x79deb3]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c2b8]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 [0x72c610]
=========     Host Frame:/usr/local/cuda-10.0/lib64/libcublas.so.10.0 (cublasCreate_v2 + 0x1ce7)

"ba_denseschur_cuda_auto_threads_test" start time: Nov 18 07:40 UTC
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
E20221118 07:40:32.381206 16256 trust_region_minimizer.cc:93] Terminating: Linear solver failed due to unrecoverable non-numeric causes. Please see the error log for clues.
F20221118 07:40:32.390861 16256 test_util.h:121] Check failed: summary.termination_type != ceres::FAILURE (2 vs. 2)
*** Check failure stack trace: ***
@     0x557800e5b3ca  testing::internal::HandleExceptionsInMethodIfSupported<>()
@     0x557800e46323  testing::Test::Run()
@     0x557800e464e8  testing::TestInfo::Run()
@     0x557800e46761  testing::TestSuite::Run()
@     0x557800e4d3cc  testing::internal::UnitTestImpl::RunAllTests()
@     0x557800e4d711  testing::UnitTest::Run()
@     0x557800e1b63a  main
@     0x7f52e1198c87  __libc_start_main
@     0x557800e1b7fa  _start
@              (nil)  (unknown)
<end of output>
Test time =   1.53 sec
----------------------------------------------------------
Test Failed.
"ba_denseschur_cuda_auto_threads_test" end time: Nov 18 07:40 UTC
----------------------------------------------------------

144/183 Testing: ba_denseschur_cuda_user_test
144/183 Test: ba_denseschur_cuda_user_test
Command: "/home/ubuntu/catkin_wss/ceres-bin/bin/ba_denseschur_cuda_user_test" "--test_srcdir" "/home/ubuntu/catkin_wss/ceres-solver-2.1.0/data"
"ba_denseschur_cuda_user_test" start time: Nov 18 07:41 UTC
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
E20221118 07:41:03.800753 16337 trust_region_minimizer.cc:93] Terminating: Linear solver failed due to unrecoverable non-numeric causes. Please see the error log for clues.
F20221118 07:41:03.807525 16337 test_util.h:121] Check failed: summary.termination_type != ceres::FAILURE (2 vs. 2)
*** Check failure stack trace: ***
@     0x5654f5c5b28a  testing::internal::HandleExceptionsInMethodIfSupported<>()
@     0x5654f5c461e3  testing::Test::Run()
@     0x5654f5c463a8  testing::TestInfo::Run()
@     0x5654f5c46621  testing::TestSuite::Run()
@     0x5654f5c4d28c  testing::internal::UnitTestImpl::RunAllTests()
@     0x5654f5c4d5d1  testing::UnitTest::Run()
@     0x5654f5c1b62a  main
@     0x7f98beeedc87  __libc_start_main
@     0x5654f5c1b7ea  _start
@              (nil)  (unknown)
<end of output>
Test time =   1.50 sec
----------------------------------------------------------
Test Failed.
"ba_denseschur_cuda_user_test" end time: Nov 18 07:41 UTC
"ba_denseschur_cuda_user_test" time elapsed: 00:00:01
----------------------------------------------------------

"ba_denseschur_cuda_user_threads_test" start time: Nov 18 07:41 UTC
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
E20221118 07:41:36.848340 16378 trust_region_minimizer.cc:93] Terminating: Linear solver failed due to unrecoverable non-numeric causes. Please see the error log for clues.
F20221118 07:41:36.855412 16378 test_util.h:121] Check failed: summary.termination_type != ceres::FAILURE (2 vs. 2)
*** Check failure stack trace: ***
@     0x556ca205b29a  testing::internal::HandleExceptionsInMethodIfSupported<>()
@     0x556ca20461f3  testing::Test::Run()
@     0x556ca20463b8  testing::TestInfo::Run()
@     0x556ca2046631  testing::TestSuite::Run()
@     0x556ca204d29c  testing::internal::UnitTestImpl::RunAllTests()
@     0x556ca204d5e1  testing::UnitTest::Run()
@     0x556ca201b63a  main
@     0x7f36fd155c87  __libc_start_main
@     0x556ca201b7fa  _start
@              (nil)  (unknown)
<end of output>
Test time =   1.48 sec
----------------------------------------------------------
Test Failed.
"ba_denseschur_cuda_user_threads_test" end time: Nov 18 07:41 UTC
``````
NVIDIA CUDA
opened by QuantumY-CHN 6
• #### Autodiff and gradient check problem!

Hi，when i use autodiff built my cost function , and use gradient check , encountered a problem . My problem : use gradient check , Worst relative error was 0.202196 , is it a normal ? This problem use quaternion,will it have an impact?

By the way, I didn't define jacobin by myself , and when i write the jacobin , the problem is worse！ I hope you can provide guidance and suggestions，thanks！

Here is my cost function and problem build.

opened by gp1998-star 1
• #### cuda_kernels.cu.cc(33): error: qualified name is not allowed

when I run `cmake ..`,the followering detail occured

-- Found CUDA version 10.1 installed in: /usr via legacy (< 3.17) CMake module. Using the legacy CMake module means that any installation of Ceres will require that the CUDA libraries be installed in a location included in the LD_LIBRARY_PATH. -- The CUDA compiler identification is NVIDIA 10.1.243 -- Check for working CUDA compiler: /usr/bin/nvcc -- Check for working CUDA compiler: /usr/bin/nvcc -- works -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Looking for sgemm_ -- Looking for sgemm_ - not found -- Looking for dgemm_ -- Looking for dgemm_ - found -- Found BLAS: /usr/lib/x86_64-linux-gnu/libf77blas.so;/usr/lib/x86_64-linux-gnu/libatlas.so
-- Found LAPACK library: /usr/lib/x86_64-linux-gnu/liblapack.so;/usr/lib/x86_64-linux-gnu/libf77blas.so;/usr/lib/x86_64-linux-gnu/libatlas.so -- Found CHOLMOD headers in: /usr/include/suitesparse -- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so -- Found SPQR headers in: /usr/include/suitesparse -- Found SPQR library: /usr/lib/x86_64-linux-gnu/libspqr.so -- Found Config headers in: /usr/include/suitesparse -- Found Config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so -- Found AMD headers in: /usr/include/suitesparse -- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so -- Found CAMD headers in: /usr/include/suitesparse -- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so -- Found CCOLAMD headers in: /usr/include/suitesparse -- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so -- Found COLAMD headers in: /usr/include/suitesparse -- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so -- Found Intel Thread Building Blocks (TBB) library (2020.1 / 11101) include location: /usr/include. Assuming SuiteSparseQR was compiled with TBB. -- Looking for shm_open in rt -- Looking for shm_open in rt - found -- Adding librt to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing). -- Could NOT find METIS (missing: METIS_INCLUDE_DIR METIS_LIBRARY) -- Found SuiteSparse: /usr/include/suitesparse (found suitable version "5.7.1", minimum required is "4.5.6") found components: CHOLMOD SPQR Config AMD CAMD CCOLAMD COLAMD missing components: Partition -- Found SuiteSparse 5.7.1, building with SuiteSparse. -- Could NOT find METIS (missing: METIS_INCLUDE_DIR METIS_LIBRARY) -- Did not find METIS, disabling Eigen METIS support. -- Building without Apple's Accelerate sparse support. -- Found Google Flags (gflags) version 2.2.2: /usr/lib/x86_64-linux-gnu/cmake/gflags -- No preference for use of exported glog CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported glog CMake configuration if available. -- Failed to find installed glog CMake configuration, searching for glog build directories exported with CMake. -- Failed to find an installed/exported CMake configuration for glog, will perform search for installed glog components. -- Found Glog: /usr/include
-- Found Google Log (glog). Assuming glog was built with gflags support as gflags was found. This will make gflags a public dependency of Ceres. -- Using Ceres threading model: CXX_THREADS -- Failed to find Google benchmark library, disabling build of benchmarks. -- Building Ceres as a static library. -- No build type specified; defaulting to CMAKE_BUILD_TYPE=Release. -- Performing Test CHECK_CXX_FLAG_Wmissing_declarations -- Performing Test CHECK_CXX_FLAG_Wmissing_declarations - Success -- Performing Test CHECK_CXX_FLAG_Wno_unknown_pragmas -- Performing Test CHECK_CXX_FLAG_Wno_unknown_pragmas - Success -- Performing Test CHECK_CXX_FLAG_Wno_sign_compare -- Performing Test CHECK_CXX_FLAG_Wno_sign_compare - Success -- Performing Test CHECK_CXX_FLAG_Wno_unused_parameter -- Performing Test CHECK_CXX_FLAG_Wno_unused_parameter - Success -- Performing Test CHECK_CXX_FLAG_Wno_missing_field_initializers -- Performing Test CHECK_CXX_FLAG_Wno_missing_field_initializers - Success -- Creating configured Ceres config.h output directory: /home/luofan/Downloads/ceres-solver-master/build/include/ceres/internal -- Enabling CERES_USE_EIGEN_SPARSE in Ceres config.h -- Enabling CERES_NO_ACCELERATE_SPARSE in Ceres config.h -- Enabling CERES_USE_CXX_THREADS in Ceres config.h -- Enabling CERES_NO_CHOLMOD_PARTITION in Ceres config.h -- Enabling CERES_NO_EIGEN_METIS in Ceres config.h -- Performing Test CHECK_CXX_FLAG_Wno_missing_declarations -- Performing Test CHECK_CXX_FLAG_Wno_missing_declarations - Success -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success -- Performing Test COMPILER_HAS_DEPRECATED_ATTR -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success -- Build the examples. -- Configuring done -- Generating done -- Build files have been written to: /home/luofan/Downloads/ceres-solver-master/build

`

then, I run `make -j3`

1 error detected in the compilation of "/tmp/tmpxft_00016f6a_00000000-6_cuda_kernels.cu.cpp1.ii". make[2]: *** [internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/build.make:63: internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/cuda_kernels.cu.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:3139: internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 0%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_2_3.cc.o [ 0%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_2_2.cc.o [ 0%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_2_4.cc.o [ 0%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_2_d.cc.o [ 0%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_3_3.cc.o [ 1%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_3_4.cc.o [ 1%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_3_6.cc.o [ 1%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_3_9.cc.o [ 1%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_3_d.cc.o [ 1%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_3.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_4.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_6.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_8.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_9.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_4_d.cc.o [ 2%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_2_d_d.cc.o [ 3%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_3_3_3.cc.o [ 3%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_4_4_2.cc.o [ 3%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_4_4_3.cc.o [ 3%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_4_4_4.cc.o [ 3%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_4_4_d.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/partitioned_matrix_view_d_d_d.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_2_2.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_2_3.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_2_4.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_2_d.cc.o [ 4%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_3_3.cc.o [ 5%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_3_4.cc.o [ 5%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_3_6.cc.o [ 5%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_3_9.cc.o [ 5%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_3_d.cc.o [ 5%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_3.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_4.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_6.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_8.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_9.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_4_d.cc.o [ 6%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_2_d_d.cc.o [ 7%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_3_3_3.cc.o [ 7%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_4_4_2.cc.o [ 7%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_4_4_3.cc.o [ 7%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_4_4_4.cc.o [ 7%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_4_4_d.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/generated/schur_eliminator_d_d_d.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/parallel_for_cxx.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/thread_pool.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/accelerate_sparse.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/array_utils.cc.o [ 8%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_evaluate_preparer.cc.o [ 9%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_jacobi_preconditioner.cc.o [ 9%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_jacobian_writer.cc.o [ 9%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_random_access_dense_matrix.cc.o [ 9%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_random_access_diagonal_matrix.cc.o [ 9%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_random_access_matrix.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_random_access_sparse_matrix.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_sparse_matrix.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/block_structure.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/callbacks.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/canonical_views_clustering.cc.o [ 10%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/cgnr_solver.cc.o [ 11%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/compressed_col_sparse_matrix_utils.cc.o [ 11%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/compressed_row_jacobian_writer.cc.o [ 11%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/compressed_row_sparse_matrix.cc.o [ 11%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/conditioned_cost_function.cc.o [ 11%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/context.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/context_impl.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/coordinate_descent_minimizer.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/corrector.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/cost_function.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/covariance.cc.o [ 12%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/covariance_impl.cc.o [ 13%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/cuda_sparse_matrix.cc.o [ 13%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/cuda_vector.cc.o [ 13%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dense_cholesky.cc.o [ 13%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dense_normal_cholesky_solver.cc.o [ 13%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dense_qr.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dense_qr_solver.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dense_sparse_matrix.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/detect_structure.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dogleg_strategy.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dynamic_compressed_row_jacobian_writer.cc.o [ 14%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dynamic_compressed_row_sparse_matrix.cc.o [ 15%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/dynamic_sparse_normal_cholesky_solver.cc.o [ 15%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/eigensparse.cc.o [ 15%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/evaluation_callback.cc.o [ 15%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/evaluator.cc.o [ 15%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/fake_bundle_adjustment_jacobian.cc.o [ 16%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/file.cc.o [ 16%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/first_order_function.cc.o [ 16%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/float_suitesparse.cc.o [ 16%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/function_sample.cc.o [ 16%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/gradient_checking_cost_function.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/gradient_problem_solver.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/implicit_schur_complement.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/inner_product_computer.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/is_close.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/iteration_callback.cc.o [ 17%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/iterative_refiner.cc.o ^[[A[ 18%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/iterative_schur_complement_solver.cc.o [ 18%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/levenberg_marquardt_strategy.cc.o [ 18%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/line_search.cc.o [ 18%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/line_search_direction.cc.o [ 18%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/line_search_minimizer.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/line_search_preprocessor.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/linear_least_squares_problems.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/linear_operator.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/linear_solver.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/low_rank_inverse_hessian.cc.o [ 19%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/minimizer.cc.o [ 20%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/parallel_utils.cc.o [ 20%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/parameter_block_ordering.cc.o [ 20%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/partitioned_matrix_view.cc.o [ 20%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/polynomial.cc.o [ 20%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/power_series_expansion_preconditioner.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/preconditioner.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/preprocessor.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/problem_impl.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/program.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/reorder_program.cc.o [ 21%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/residual_block.cc.o [ 22%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/residual_block_utils.cc.o [ 22%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/schur_complement_solver.cc.o [ 22%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/schur_eliminator.cc.o [ 22%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/schur_jacobi_preconditioner.cc.o [ 22%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/schur_templates.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/scratch_evaluate_preparer.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/single_linkage_clustering.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/solver_utils.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/sparse_cholesky.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/sparse_matrix.cc.o [ 23%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/sparse_normal_cholesky_solver.cc.o [ 24%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/stringprintf.cc.o [ 24%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/subset_preconditioner.cc.o [ 24%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/suitesparse.cc.o [ 24%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/thread_token_provider.cc.o [ 24%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/triplet_sparse_matrix.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/trust_region_minimizer.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/trust_region_preprocessor.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/trust_region_step_evaluator.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/trust_region_strategy.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/visibility.cc.o [ 25%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/visibility_based_preconditioner.cc.o [ 26%] Building CXX object internal/ceres/CMakeFiles/ceres_internal.dir/wall_time.cc.o [ 26%] Built target ceres_internal make: *** [Makefile:141: all] Error 2

`

could you please tell me how to solve this problem?thank you very much

bug
opened by yunfan258 11
• #### make test fail on NVidea Jetson Nano 4Gb board

Hello, I am trying to build Ceres 2.1.0 on a NVidea Jetson Nano 4Gb. This is the setup of my installation:

``````NVIDIA NVIDIA Jetson Nano Developer Kit
L4T 32.7.2 [ JetPack 4.6.2 ]
Ubuntu 18.04.6 LTS
Kernel Version: 4.9.253-tegra
CUDA 10.2.300
CUDA Architecture: 5.3
OpenCV version: 4.1.1
OpenCV Cuda: NO
CUDNN: 8.2.1.32
TensorRT: 8.2.1.8
Vision Works: 1.6.0.501
VPI: 1.2.3
Vulcan: 1.2.70
``````

I have already put the cuda path in .bashrc file as the NVidea guide explain:

``````export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/NsightCompute-2019.1\${PATH:+:\${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}
``````

And if I launch the command `nvcc --version` it returns:

``````Cuda compilation tools, release 10.2.300, V10.2.300
Build cuda_10.2_r400.TC440_70.29663091_0
``````

The compilation instruction Cmake and Make runs well, no warning and no error. But as previously say, if I launch `make test` some tests fail, this are the outputs:

``````[email protected]:~/ceres-bin/ceres-solver\$ make test
Running tests...
Test project /home/ctrazzi/ceres-bin/ceres-solver
Start   1: cuda_memcheck_dense_qr_test
1/183 Test   #1: cuda_memcheck_dense_qr_test ...................................***Failed    0.78 sec
Start   2: cuda_memcheck_dense_cholesky_test
2/183 Test   #2: cuda_memcheck_dense_cholesky_test .............................***Failed    4.71 sec
Start   3: array_utils_test
3/183 Test   #3: array_utils_test ..............................................   Passed    0.01 sec
Start   4: array_selector_test
4/183 Test   #4: array_selector_test ...........................................   Passed    0.01 sec
Start   5: autodiff_test
5/183 Test   #5: autodiff_test .................................................   Passed    0.01 sec
Start   6: autodiff_first_order_function_test
6/183 Test   #6: autodiff_first_order_function_test ............................   Passed    0.01 sec
Start   7: autodiff_cost_function_test
7/183 Test   #7: autodiff_cost_function_test ...................................   Passed    0.01 sec
Start   8: autodiff_local_parameterization_test
8/183 Test   #8: autodiff_local_parameterization_test ..........................   Passed    0.01 sec
Start   9: autodiff_manifold_test
9/183 Test   #9: autodiff_manifold_test ........................................   Passed    0.27 sec
Start  10: block_jacobi_preconditioner_test
10/183 Test  #10: block_jacobi_preconditioner_test ..............................   Passed    0.01 sec
Start  11: block_random_access_dense_matrix_test
11/183 Test  #11: block_random_access_dense_matrix_test .........................   Passed    0.01 sec
Start  12: block_random_access_diagonal_matrix_test
12/183 Test  #12: block_random_access_diagonal_matrix_test ......................   Passed    0.01 sec
Start  13: block_random_access_sparse_matrix_test
13/183 Test  #13: block_random_access_sparse_matrix_test ........................   Passed    0.01 sec
Start  14: block_sparse_matrix_test
14/183 Test  #14: block_sparse_matrix_test ......................................   Passed    0.01 sec
Start  15: c_api_test
15/183 Test  #15: c_api_test ....................................................   Passed    0.03 sec
Start  16: canonical_views_clustering_test
16/183 Test  #16: canonical_views_clustering_test ...............................   Passed    0.01 sec
Start  17: compressed_col_sparse_matrix_utils_test
17/183 Test  #17: compressed_col_sparse_matrix_utils_test .......................   Passed    0.01 sec
Start  18: compressed_row_sparse_matrix_test
18/183 Test  #18: compressed_row_sparse_matrix_test .............................   Passed    0.13 sec
Start  19: concurrent_queue_test
19/183 Test  #19: concurrent_queue_test .........................................   Passed    1.52 sec
Start  20: conditioned_cost_function_test
20/183 Test  #20: conditioned_cost_function_test ................................   Passed    0.02 sec
21/183 Test  #21: conjugate_gradients_solver_test ...............................   Passed    0.03 sec
Start  22: corrector_test
22/183 Test  #22: corrector_test ................................................   Passed    1.04 sec
Start  23: cost_function_to_functor_test
23/183 Test  #23: cost_function_to_functor_test .................................   Passed    0.01 sec
Start  24: covariance_test
24/183 Test  #24: covariance_test ...............................................   Passed    1.17 sec
Start  25: cubic_interpolation_test
25/183 Test  #25: cubic_interpolation_test ......................................   Passed    0.14 sec
Start  26: cuda_dense_cholesky_test
26/183 Test  #26: cuda_dense_cholesky_test ......................................   Passed   93.00 sec
Start  27: cuda_dense_qr_test
27/183 Test  #27: cuda_dense_qr_test ............................................   Passed    8.78 sec
Start  28: dense_linear_solver_test
28/183 Test  #28: dense_linear_solver_test ......................................   Passed    0.03 sec
Start  29: dense_cholesky_test
29/183 Test  #29: dense_cholesky_test ...........................................   Passed    2.54 sec
Start  30: dense_qr_test
30/183 Test  #30: dense_qr_test .................................................   Passed    2.84 sec
Start  31: dense_sparse_matrix_test
31/183 Test  #31: dense_sparse_matrix_test ......................................   Passed    0.01 sec
Start  32: detect_structure_test
32/183 Test  #32: detect_structure_test .........................................   Passed    0.01 sec
Start  33: dogleg_strategy_test
33/183 Test  #33: dogleg_strategy_test ..........................................   Passed    0.03 sec
Start  34: dynamic_autodiff_cost_function_test
34/183 Test  #34: dynamic_autodiff_cost_function_test ...........................   Passed    0.01 sec
Start  35: dynamic_compressed_row_sparse_matrix_test
35/183 Test  #35: dynamic_compressed_row_sparse_matrix_test .....................   Passed    0.01 sec
Start  36: dynamic_numeric_diff_cost_function_test
36/183 Test  #36: dynamic_numeric_diff_cost_function_test .......................   Passed    0.01 sec
Start  37: dynamic_sparse_normal_cholesky_solver_test
37/183 Test  #37: dynamic_sparse_normal_cholesky_solver_test ....................   Passed    0.03 sec
Start  38: dynamic_sparsity_test
38/183 Test  #38: dynamic_sparsity_test .........................................   Passed    5.14 sec
Start  39: evaluation_callback_test
39/183 Test  #39: evaluation_callback_test ......................................   Passed    0.04 sec
Start  40: evaluator_test
40/183 Test  #40: evaluator_test ................................................   Passed    0.04 sec
Start  41: fixed_array_test
41/183 Test  #41: fixed_array_test ..............................................   Passed    0.42 sec
42/183 Test  #42: gradient_checker_test .........................................   Passed    0.03 sec
43/183 Test  #43: gradient_checking_cost_function_test ..........................   Passed    0.02 sec
44/183 Test  #44: gradient_problem_test .........................................   Passed    0.01 sec
45/183 Test  #45: gradient_problem_solver_test ..................................   Passed    0.03 sec
Start  46: graph_test
46/183 Test  #46: graph_test ....................................................   Passed    1.49 sec
Start  47: graph_algorithms_test
47/183 Test  #47: graph_algorithms_test .........................................   Passed    0.02 sec
Start  48: householder_vector_test
48/183 Test  #48: householder_vector_test .......................................   Passed    0.01 sec
Start  49: implicit_schur_complement_test
49/183 Test  #49: implicit_schur_complement_test ................................   Passed    0.02 sec
Start  50: inner_product_computer_test
50/183 Test  #50: inner_product_computer_test ...................................   Passed    0.38 sec
Start  51: invert_psd_matrix_test
51/183 Test  #51: invert_psd_matrix_test ........................................   Passed    0.01 sec
Start  52: integer_sequence_algorithm_test
52/183 Test  #52: integer_sequence_algorithm_test ...............................   Passed    0.01 sec
Start  53: is_close_test
53/183 Test  #53: is_close_test .................................................   Passed    0.01 sec
Start  54: iterative_refiner_test
54/183 Test  #54: iterative_refiner_test ........................................   Passed    0.01 sec
Start  55: iterative_schur_complement_solver_test
55/183 Test  #55: iterative_schur_complement_solver_test ........................   Passed    0.03 sec
Start  56: jet_test
56/183 Test  #56: jet_test ......................................................   Passed    0.01 sec
Start  57: jet_traits_test
57/183 Test  #57: jet_traits_test ...............................................   Passed    0.01 sec
Start  58: levenberg_marquardt_strategy_test
58/183 Test  #58: levenberg_marquardt_strategy_test .............................   Passed    0.03 sec
Start  59: line_search_minimizer_test
59/183 Test  #59: line_search_minimizer_test ....................................   Passed    0.03 sec
Start  60: line_search_preprocessor_test
60/183 Test  #60: line_search_preprocessor_test .................................   Passed    0.03 sec
Start  61: local_parameterization_test
61/183 Test  #61: local_parameterization_test ...................................   Passed    1.99 sec
Start  62: loss_function_test
62/183 Test  #62: loss_function_test ............................................   Passed    0.03 sec
Start  63: manifold_test
63/183 Test  #63: manifold_test .................................................   Passed    3.06 sec
Start  64: minimizer_test
64/183 Test  #64: minimizer_test ................................................   Passed    0.08 sec
Start  65: normal_prior_test
65/183 Test  #65: normal_prior_test .............................................   Passed    0.02 sec
Start  66: numeric_diff_cost_function_test
66/183 Test  #66: numeric_diff_cost_function_test ...............................   Passed    0.02 sec
Start  67: numeric_diff_first_order_function_test
67/183 Test  #67: numeric_diff_first_order_function_test ........................   Passed    0.02 sec
Start  68: ordered_groups_test
68/183 Test  #68: ordered_groups_test ...........................................   Passed    0.52 sec
Start  69: parallel_for_test
69/183 Test  #69: parallel_for_test .............................................   Passed    0.06 sec
Start  70: parallel_utils_test
70/183 Test  #70: parallel_utils_test ...........................................   Passed    0.07 sec
Start  71: parameter_block_test
71/183 Test  #71: parameter_block_test ..........................................   Passed    0.52 sec
Start  72: parameter_block_ordering_test
72/183 Test  #72: parameter_block_ordering_test .................................   Passed    0.06 sec
Start  73: parameter_dims_test
73/183 Test  #73: parameter_dims_test ...........................................   Passed    0.02 sec
Start  74: partitioned_matrix_view_test
74/183 Test  #74: partitioned_matrix_view_test ..................................   Passed    0.02 sec
Start  75: polynomial_test
75/183 Test  #75: polynomial_test ...............................................   Passed    0.02 sec
Start  76: problem_test
76/183 Test  #76: problem_test ..................................................   Passed   14.55 sec
Start  77: program_test
77/183 Test  #77: program_test ..................................................   Passed    0.05 sec
Start  78: reorder_program_test
78/183 Test  #78: reorder_program_test ..........................................   Passed    0.05 sec
Start  79: residual_block_test
79/183 Test  #79: residual_block_test ...........................................   Passed    0.02 sec
Start  80: residual_block_utils_test
80/183 Test  #80: residual_block_utils_test .....................................   Passed    0.02 sec
Start  81: rotation_test
81/183 Test  #81: rotation_test .................................................   Passed    4.66 sec
Start  82: schur_complement_solver_test
82/183 Test  #82: schur_complement_solver_test ..................................   Passed    0.07 sec
Start  83: schur_eliminator_test
83/183 Test  #83: schur_eliminator_test .........................................   Passed    0.06 sec
84/183 Test  #84: single_linkage_clustering_test ................................   Passed    0.02 sec
Start  85: small_blas_test
85/183 Test  #85: small_blas_test ...............................................   Passed    1.93 sec
Start  86: solver_test
86/183 Test  #86: solver_test ...................................................   Passed    0.09 sec
Start  87: sparse_cholesky_test
87/183 Test  #87: sparse_cholesky_test ..........................................   Passed    0.27 sec
Start  88: sparse_normal_cholesky_solver_test
88/183 Test  #88: sparse_normal_cholesky_solver_test ............................   Passed    0.07 sec
Start  89: subset_preconditioner_test
89/183 Test  #89: subset_preconditioner_test ....................................   Passed    0.01 sec
Start  90: system_test
90/183 Test  #90: system_test ...................................................   Passed    0.08 sec
Start  91: tiny_solver_test
91/183 Test  #91: tiny_solver_test ..............................................   Passed    0.01 sec
Start  92: tiny_solver_autodiff_function_test
92/183 Test  #92: tiny_solver_autodiff_function_test ............................   Passed    0.01 sec
93/183 Test  #93: tiny_solver_cost_function_adapter_test ........................   Passed    0.01 sec
94/183 Test  #94: thread_pool_test ..............................................   Passed    0.53 sec
Start  95: triplet_sparse_matrix_test
95/183 Test  #95: triplet_sparse_matrix_test ....................................   Passed    0.52 sec
Start  96: trust_region_minimizer_test
96/183 Test  #96: trust_region_minimizer_test ...................................   Passed    0.11 sec
Start  97: trust_region_preprocessor_test
97/183 Test  #97: trust_region_preprocessor_test ................................   Passed    0.08 sec
Start  98: visibility_test
98/183 Test  #98: visibility_test ...............................................   Passed    0.02 sec
Start  99: visibility_based_preconditioner_test
99/183 Test  #99: visibility_based_preconditioner_test ..........................   Passed    0.02 sec
Start 100: ba_denseschur_eigen_auto_test
100/183 Test #100: ba_denseschur_eigen_auto_test .................................   Passed   12.35 sec
Start 101: ba_denseschur_lapack_auto_test
101/183 Test #101: ba_denseschur_lapack_auto_test ................................   Passed   12.37 sec
Start 102: ba_denseschur_cuda_auto_test
102/183 Test #102: ba_denseschur_cuda_auto_test ..................................   Passed   15.77 sec
Start 103: ba_sparsecholesky_suitesparse_auto_test
103/183 Test #103: ba_sparsecholesky_suitesparse_auto_test .......................   Passed   17.14 sec
Start 104: ba_sparsecholesky_eigensparse_auto_test
104/183 Test #104: ba_sparsecholesky_eigensparse_auto_test .......................   Passed   17.99 sec
Start 105: ba_sparsecholesky_cxsparse_auto_test
105/183 Test #105: ba_sparsecholesky_cxsparse_auto_test ..........................   Passed   17.45 sec
Start 106: ba_sparsecholesky_acceleratesparse_auto_test
106/183 Test #106: ba_sparsecholesky_acceleratesparse_auto_test ..................   Passed    0.01 sec
Start 107: ba_sparseschur_suitesparse_auto_test
107/183 Test #107: ba_sparseschur_suitesparse_auto_test ..........................   Passed   12.65 sec
Start 108: ba_sparseschur_eigensparse_auto_test
108/183 Test #108: ba_sparseschur_eigensparse_auto_test ..........................   Passed   12.63 sec
Start 109: ba_sparseschur_cxsparse_auto_test
109/183 Test #109: ba_sparseschur_cxsparse_auto_test .............................   Passed   12.42 sec
Start 110: ba_sparseschur_acceleratesparse_auto_test
110/183 Test #110: ba_sparseschur_acceleratesparse_auto_test .....................   Passed    0.01 sec
Start 111: ba_iterschur_jacobi_auto_test
111/183 Test #111: ba_iterschur_jacobi_auto_test .................................   Passed   15.55 sec
Start 112: ba_iterschur_schurjacobi_auto_test
112/183 Test #112: ba_iterschur_schurjacobi_auto_test ............................   Passed   14.43 sec
Start 113: ba_iterschur_suitesparse_clustjacobi_auto_test
113/183 Test #113: ba_iterschur_suitesparse_clustjacobi_auto_test ................   Passed   15.22 sec
Start 114: ba_iterschur_eigensparse_clustjacobi_auto_test
114/183 Test #114: ba_iterschur_eigensparse_clustjacobi_auto_test ................   Passed   15.28 sec
Start 115: ba_iterschur_cxsparse_clustjacobi_auto_test
115/183 Test #115: ba_iterschur_cxsparse_clustjacobi_auto_test ...................   Passed   15.22 sec
Start 116: ba_iterschur_acceleratesparse_clustjacobi_auto_test
116/183 Test #116: ba_iterschur_acceleratesparse_clustjacobi_auto_test ...........   Passed    0.01 sec
Start 117: ba_iterschur_suitesparse_clusttri_auto_test
117/183 Test #117: ba_iterschur_suitesparse_clusttri_auto_test ...................   Passed   16.16 sec
Start 118: ba_iterschur_eigensparse_clusttri_auto_test
118/183 Test #118: ba_iterschur_eigensparse_clusttri_auto_test ...................   Passed   15.40 sec
Start 119: ba_iterschur_cxsparse_clusttri_auto_test
119/183 Test #119: ba_iterschur_cxsparse_clusttri_auto_test ......................   Passed   16.12 sec
Start 120: ba_iterschur_acceleratesparse_clusttri_auto_test
120/183 Test #120: ba_iterschur_acceleratesparse_clusttri_auto_test ..............   Passed    0.01 sec
121/183 Test #121: ba_denseschur_eigen_auto_threads_test .........................   Passed    9.66 sec
122/183 Test #122: ba_denseschur_lapack_auto_threads_test ........................   Passed    9.67 sec
123/183 Test #123: ba_denseschur_cuda_auto_threads_test ..........................   Passed   12.93 sec
124/183 Test #124: ba_sparsecholesky_suitesparse_auto_threads_test ...............   Passed   15.56 sec
125/183 Test #125: ba_sparsecholesky_eigensparse_auto_threads_test ...............   Passed   16.07 sec
126/183 Test #126: ba_sparsecholesky_cxsparse_auto_threads_test ..................   Passed   15.81 sec
127/183 Test #127: ba_sparsecholesky_acceleratesparse_auto_threads_test ..........   Passed    0.01 sec
128/183 Test #128: ba_sparseschur_suitesparse_auto_threads_test ..................   Passed    9.75 sec
129/183 Test #129: ba_sparseschur_eigensparse_auto_threads_test ..................   Passed    9.83 sec
130/183 Test #130: ba_sparseschur_cxsparse_auto_threads_test .....................   Passed    9.81 sec
131/183 Test #131: ba_sparseschur_acceleratesparse_auto_threads_test .............   Passed    0.01 sec
132/183 Test #132: ba_iterschur_jacobi_auto_threads_test .........................   Passed   13.02 sec
133/183 Test #133: ba_iterschur_schurjacobi_auto_threads_test ....................   Passed   11.89 sec
134/183 Test #134: ba_iterschur_suitesparse_clustjacobi_auto_threads_test ........   Passed   12.17 sec
135/183 Test #135: ba_iterschur_eigensparse_clustjacobi_auto_threads_test ........   Passed   12.09 sec
136/183 Test #136: ba_iterschur_cxsparse_clustjacobi_auto_threads_test ...........   Passed   12.11 sec
137/183 Test #137: ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test ...   Passed    0.01 sec
138/183 Test #138: ba_iterschur_suitesparse_clusttri_auto_threads_test ...........   Passed   12.39 sec
139/183 Test #139: ba_iterschur_eigensparse_clusttri_auto_threads_test ...........   Passed   11.91 sec
140/183 Test #140: ba_iterschur_cxsparse_clusttri_auto_threads_test ..............   Passed   12.36 sec
141/183 Test #141: ba_iterschur_acceleratesparse_clusttri_auto_threads_test ......   Passed    0.01 sec
Start 142: ba_denseschur_eigen_user_test
142/183 Test #142: ba_denseschur_eigen_user_test .................................   Passed   11.98 sec
Start 143: ba_denseschur_lapack_user_test
143/183 Test #143: ba_denseschur_lapack_user_test ................................   Passed   12.09 sec
Start 144: ba_denseschur_cuda_user_test
144/183 Test #144: ba_denseschur_cuda_user_test ..................................   Passed   15.38 sec
Start 145: ba_sparsecholesky_suitesparse_user_test
145/183 Test #145: ba_sparsecholesky_suitesparse_user_test .......................   Passed   16.97 sec
Start 146: ba_sparsecholesky_eigensparse_user_test
146/183 Test #146: ba_sparsecholesky_eigensparse_user_test .......................   Passed   17.88 sec
Start 147: ba_sparsecholesky_cxsparse_user_test
147/183 Test #147: ba_sparsecholesky_cxsparse_user_test ..........................   Passed   17.51 sec
Start 148: ba_sparsecholesky_acceleratesparse_user_test
148/183 Test #148: ba_sparsecholesky_acceleratesparse_user_test ..................   Passed    0.01 sec
Start 149: ba_sparseschur_suitesparse_user_test
149/183 Test #149: ba_sparseschur_suitesparse_user_test ..........................   Passed   12.30 sec
Start 150: ba_sparseschur_eigensparse_user_test
150/183 Test #150: ba_sparseschur_eigensparse_user_test ..........................   Passed   12.26 sec
Start 151: ba_sparseschur_cxsparse_user_test
151/183 Test #151: ba_sparseschur_cxsparse_user_test .............................   Passed   12.19 sec
Start 152: ba_sparseschur_acceleratesparse_user_test
152/183 Test #152: ba_sparseschur_acceleratesparse_user_test .....................   Passed    0.01 sec
Start 153: ba_iterschur_jacobi_user_test
153/183 Test #153: ba_iterschur_jacobi_user_test .................................   Passed   15.05 sec
Start 154: ba_iterschur_schurjacobi_user_test
154/183 Test #154: ba_iterschur_schurjacobi_user_test ............................   Passed   14.11 sec
Start 155: ba_iterschur_suitesparse_clustjacobi_user_test
155/183 Test #155: ba_iterschur_suitesparse_clustjacobi_user_test ................   Passed   14.87 sec
Start 156: ba_iterschur_eigensparse_clustjacobi_user_test
156/183 Test #156: ba_iterschur_eigensparse_clustjacobi_user_test ................   Passed   14.77 sec
Start 157: ba_iterschur_cxsparse_clustjacobi_user_test
157/183 Test #157: ba_iterschur_cxsparse_clustjacobi_user_test ...................   Passed   14.78 sec
Start 158: ba_iterschur_acceleratesparse_clustjacobi_user_test
158/183 Test #158: ba_iterschur_acceleratesparse_clustjacobi_user_test ...........   Passed    0.01 sec
Start 159: ba_iterschur_suitesparse_clusttri_user_test
159/183 Test #159: ba_iterschur_suitesparse_clusttri_user_test ...................   Passed   15.83 sec
Start 160: ba_iterschur_eigensparse_clusttri_user_test
160/183 Test #160: ba_iterschur_eigensparse_clusttri_user_test ...................   Passed   15.13 sec
Start 161: ba_iterschur_cxsparse_clusttri_user_test
161/183 Test #161: ba_iterschur_cxsparse_clusttri_user_test ......................   Passed   15.94 sec
Start 162: ba_iterschur_acceleratesparse_clusttri_user_test
162/183 Test #162: ba_iterschur_acceleratesparse_clusttri_user_test ..............   Passed    0.01 sec
163/183 Test #163: ba_denseschur_eigen_user_threads_test .........................   Passed    9.30 sec
164/183 Test #164: ba_denseschur_lapack_user_threads_test ........................   Passed    9.38 sec
165/183 Test #165: ba_denseschur_cuda_user_threads_test ..........................   Passed   12.64 sec
166/183 Test #166: ba_sparsecholesky_suitesparse_user_threads_test ...............   Passed   15.37 sec
167/183 Test #167: ba_sparsecholesky_eigensparse_user_threads_test ...............   Passed   16.24 sec
168/183 Test #168: ba_sparsecholesky_cxsparse_user_threads_test ..................   Passed   15.74 sec
169/183 Test #169: ba_sparsecholesky_acceleratesparse_user_threads_test ..........   Passed    0.01 sec
170/183 Test #170: ba_sparseschur_suitesparse_user_threads_test ..................   Passed    9.34 sec
171/183 Test #171: ba_sparseschur_eigensparse_user_threads_test ..................   Passed    9.54 sec
172/183 Test #172: ba_sparseschur_cxsparse_user_threads_test .....................   Passed    9.28 sec
173/183 Test #173: ba_sparseschur_acceleratesparse_user_threads_test .............   Passed    0.01 sec
174/183 Test #174: ba_iterschur_jacobi_user_threads_test .........................   Passed   12.62 sec
175/183 Test #175: ba_iterschur_schurjacobi_user_threads_test ....................   Passed   11.59 sec
176/183 Test #176: ba_iterschur_suitesparse_clustjacobi_user_threads_test ........   Passed   11.72 sec
177/183 Test #177: ba_iterschur_eigensparse_clustjacobi_user_threads_test ........   Passed   11.69 sec
178/183 Test #178: ba_iterschur_cxsparse_clustjacobi_user_threads_test ...........   Passed   11.80 sec
179/183 Test #179: ba_iterschur_acceleratesparse_clustjacobi_user_threads_test ...   Passed    0.01 sec
180/183 Test #180: ba_iterschur_suitesparse_clusttri_user_threads_test ...........   Passed   11.97 sec
181/183 Test #181: ba_iterschur_eigensparse_clusttri_user_threads_test ...........   Passed   11.53 sec
182/183 Test #182: ba_iterschur_cxsparse_clusttri_user_threads_test ..............   Passed   11.98 sec
183/183 Test #183: ba_iterschur_acceleratesparse_clusttri_user_threads_test ......   Passed    0.01 sec

99% tests passed, 2 tests failed out of 183

Total Test time (real) = 1066.98 sec

The following tests FAILED:
1 - cuda_memcheck_dense_qr_test (Failed)
2 - cuda_memcheck_dense_cholesky_test (Failed)
Errors while running CTest
Output from these tests are in: /home/ctrazzi/ceres-bin/ceres-solver/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
Makefile:135: recipe for target 'test' failed
make: *** [test] Error 8
``````

This is the output of LastTest.log, regarding the two tests failed:

``````[email protected]:~/ceres-bin/ceres-solver\$ cat /home/ctrazzi/ceres-bin/ceres-solver/Testing/Temporary/LastTest.log
Start testing: Nov 08 09:39 CET
----------------------------------------------------------
1/183 Testing: cuda_memcheck_dense_qr_test
1/183 Test: cuda_memcheck_dense_qr_test
Command: "/usr/local/cuda-10.2/bin/cuda-memcheck" "--leak-check" "full" "/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test"
Directory: /home/ctrazzi/ceres-bin/ceres-solver/internal/ceres
"cuda_memcheck_dense_qr_test" start time: Nov 08 09:39 CET
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 5 tests from 1 test suite.
[----------] Global test environment set-up.
[       OK ] CUDADenseQR.InvalidOptionOnCreate (0 ms)
E1108 09:39:13.672349 19351 dense_qr.cc:472] CUDADenseQR::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_qr_test.cc:63: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseQR.QR4x4Matrix (87 ms)
E1108 09:39:13.721727 19351 dense_qr.cc:472] CUDADenseQR::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_qr_test.cc:94: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseQR.QR4x2Matrix (48 ms)
========= CUDA-MEMCHECK
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x61568]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64c80]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64eac]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x131f8]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x6098c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f25c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f3e0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4fb50]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x50304]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f494]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12000]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12258]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x61568]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64c80]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64eac]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x13ef4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x6098c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f25c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f3e0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4fb50]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x50304]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f494]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12000]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12258]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x61568]
=========     Host Frame:/home/ctraE1108 09:39:13.770776 19351 dense_qr.cc:472] CUDADenseQR::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_qr_test.cc:118: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseQR.MustFactorizeBeforeSolve (49 ms)
E1108 09:39:13.818823 19351 dense_qr.cc:472] CUDADenseQR::Init failed: cuBLAS::cublasCreate failed.
zzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64c80]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64eac]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x14ac0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x6098c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f25c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f3e0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4fb50]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x50304]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f494]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12000]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12258]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x61568]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64c80]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x64eac]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x15300]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x6098c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f25c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f3e0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4fb50]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x50304]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x4f494]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12000]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_qr_test [0x12258]
=========
========= Error: process didn't terminate successfully
=========        The application may have hit an error when dereferencing Unified Memory from the host. Please rerun the application under cuda-gdb or Nsight Eclipse Edition to catch host side errors.
========= No CUDA-MEMCHECK results found
<end of output>
Test time =   0.78 sec
----------------------------------------------------------
Test Failed.
"cuda_memcheck_dense_qr_test" end time: Nov 08 09:39 CET
"cuda_memcheck_dense_qr_test" time elapsed: 00:00:00
----------------------------------------------------------

2/183 Testing: cuda_memcheck_dense_cholesky_test
2/183 Test: cuda_memcheck_dense_cholesky_test
Command: "/usr/local/cuda-10.2/bin/cuda-memcheck" "--leak-check" "full" "/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test"
Directory: /home/ctrazzi/ceres-bin/ceres-solver/internal/ceres
"cuda_memcheck_dense_cholesky_test" start time: Nov 08 09:39 CET
Output:
----------------------------------------------------------
Running main() from gmock_main.cc
[==========] Running 6 tests from 1 test suite.
[----------] Global test environment set-up.
[       OK ] CUDADenseCholesky.InvalidOptionOnCreate (0 ms)
E1108 09:39:14.447407 19359 dense_cholesky.cc:320] CUDADenseCholesky::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_cholesky_test.cc:66: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseCholesky.Cholesky4x4Matrix (83 ms)
E1108 09:39:14.497035 19359 dense_cholesky.cc:320] CUDADenseCholesky::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_cholesky_test.cc:92: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseCholesky.SingularMatrix (48 ms)
========= CUDA-MEMCHECK
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x62b28]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64b7c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64d90]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x151c8]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x61f4c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x5181c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x519a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x52110]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x528c4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x51a54]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x121d0]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x12428]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x62b28]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64b7c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64d90]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x15dec]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x61f4c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x5181c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x519a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x52110]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x528c4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x51a54]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x121d0]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x12428]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2E1108 09:39:14.545812 19359 dense_cholesky.cc:320] CUDADenseCholesky::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_cholesky_test.cc:111: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseCholesky.NegativeMatrix (48 ms)
E1108 09:39:14.594383 19359 dense_cholesky.cc:320] CUDADenseCholesky::Init failed: cuBLAS::cublasCreate failed.
/home/ctrazzi/ceres-bin/ceres-solver/internal/ceres/cuda_dense_cholesky_test.cc:126: Failure
Expected: (dense_cuda_solver) != (nullptr), actual: (nullptr) vs (nullptr)
[  FAILED  ] CUDADenseCholesky.MustFactorizeBeforeSolve (48 ms)
c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x62b28]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64b7c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64d90]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x1657c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x61f4c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x5181c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x519a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x52110]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x528c4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x51a54]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x121d0]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x12428]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x62b28]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64b7c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64d90]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x16cf0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x61f4c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x5181c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x519a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x52110]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x528c4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x51a54]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x121d0]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x12428]
=========
========= Program hit cudaErrorDevicesUnavailable (error 46) due to "all CUDA-capable devices are busy or unavailable" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 [0x2fdb04]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 [0xaf0804]
=========     Host Frame:/usr/local/cuda-10.2/lib64/libcublas.so.10 (cublasCreate_v2 + 0x2c) [0x1a3804]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x62b28]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64b7c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x64d90]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x17474]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_denseE1108 09:39:14.642648 19359 dense_cholesky.cc:320] CUDADenseCholesky::Init failed: cuBLAS::cublasCreate failed.
_cholesky_test [0x61f4c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x5181c]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x519a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x52110]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x528c4]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x51a54]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x121d0]
=========     Host Frame:/lib/aarch64-linux-gnu/libc.so.6 (__libc_start_main + 0xe0) [0x207a0]
=========     Host Frame:/home/ctrazzi/ceres-bin/ceres-solver/bin/cuda_dense_cholesky_test [0x12428]
=========
========= Error: process didn't terminate successfully
=========        The application may have hit an error when dereferencing Unified Memory from the host. Please rerun the application under cuda-gdb or Nsight Eclipse Edition to catch host side errors.
========= No CUDA-MEMCHECK results found
<end of output>
Test time =   4.71 sec
----------------------------------------------------------
Test Failed.
"cuda_memcheck_dense_cholesky_test" end time: Nov 08 09:39 CET
"cuda_memcheck_dense_cholesky_test" time elapsed: 00:00:04
----------------------------------------------------------
``````

I have try to rerun the test with the following command, but it did not work:

``````[email protected]:~/ceres-bin/ceres-solver\$ make test --rerun-failed --output-on-failure
make: unrecognized option '--rerun-failed'
make: unrecognized option '--output-on-failure'
Usage: make [options] [target] ...
Options:
-b, -m                      Ignored for compatibility.
-B, --always-make           Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d                          Print lots of debugging information.
--debug[=FLAGS]             Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
--eval=STRING               Evaluate STRING as a makefile statement.
-f FILE, --file=FILE, --makefile=FILE
-h, --help                  Print this message and exit.
-i, --ignore-errors         Ignore errors from recipes.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no arg.
-k, --keep-going            Keep going when some targets can't be made.
Don't start multiple jobs unless load is below N.
-n, --just-print, --dry-run, --recon
Don't actually run any recipe; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-O[TYPE], --output-sync[=TYPE]
Synchronize output of parallel jobs by TYPE.
-p, --print-data-base       Print make's internal database.
-q, --question              Run no recipe; exit status says if up to date.
-r, --no-builtin-rules      Disable the built-in implicit rules.
-R, --no-builtin-variables  Disable the built-in variable settings.
-s, --silent, --quiet       Don't echo recipes.
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch                 Touch targets instead of remaking them.
--trace                     Print tracing information.
-v, --version               Print the version number of make and exit.
-w, --print-directory       Print the current directory.
--no-print-directory        Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables  Warn when an undefined variable is referenced.

This program built for aarch64-unknown-linux-gnu
Report bugs to <[email protected]>

``````

I have already check the package with: dpkg -L cuda-memcheck-10-2

``````[email protected]:~/ceres-bin/ceres-solver\$ dpkg -L cuda-memcheck-10-2
/.
/usr
/usr/local
/usr/local/cuda-10.2
/usr/local/cuda-10.2/bin
/usr/local/cuda-10.2/bin/cuda-memcheck
/usr/share
/usr/share/doc
/usr/share/doc/cuda-memcheck-10-2
/usr/share/doc/cuda-memcheck-10-2/changelog.Debian.gz
``````

Can someone help me to solve this problem please? Thank you in advance.

opened by Cristian-wp 12
• #### Active set method for BVLS

Hi @sandwichmaker! Thanks for open-sourcing ceras.

Please excuse my limited experience. I was wondering if you have considered putting in an active set method for Bounded-Variable Least-Squares as done in scipy? This might be helpful in some problems with nonsmooth constraints as it can take larger steps, which can speed up the process.

opened by s-a-n-d-y 6
###### C++ library for solving large sparse linear systems with algebraic multigrid method

AMGCL AMGCL is a header-only C++ library for solving large sparse linear systems with algebraic multigrid (AMG) method. AMG is one of the most effecti

574 Nov 30, 2022
###### A header-only C++ library for large scale eigenvalue problems

NOTE: Spectra 1.0.0 is released, with a lot of API-breaking changes. Please see the migration guide for a smooth transition to the new version. NOTE:

600 Nov 26, 2022
###### Seidel's Algorithm: Linear-Complexity Linear Programming for Small-Dimensional Variables

SDLP Seidel's Algorithm: Linear-Complexity Linear Programming (LP) for Small-Dimensions About This solver is super efficient for small-dimensional LP

42 Dec 1, 2022
###### a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions

linmath.h -- A small library for linear math as required for computer graphics linmath.h provides the most used types required for programming compute

717 Nov 23, 2022
###### nml is a simple matrix and linear algebra library written in standard C.

nml is a simple matrix and linear algebra library written in standard C.

44 Nov 23, 2022
###### Library for nonconvex constrained optimization using the augmented Lagrangian method and the matrix-free PANOC algorithm.

alpaqa Alpaqa is an efficient implementation of the Augmented Lagrangian method for general nonlinear programming problems, which uses the first-order

19 Nov 16, 2022
###### Linear Algebra in C

Linear Algebra in C Quick Start Grab la.h and use it as an stb-style header-only library. For more info on such libraries see: https://github.com/noth

74 Nov 26, 2022
517 Nov 22, 2022
###### A C library for statistical and scientific computing

Apophenia is an open statistical library for working with data sets and statistical or simulation models. It provides functions on the same level as t

186 Sep 11, 2022
###### P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library

Klein ?? ?? Project Site ?? ?? Description Do you need to do any of the following? Quickly? Really quickly even? Projecting points onto lines, lines t

628 Nov 18, 2022
###### linalg.h is a single header, public domain, short vector math library for C++

linalg.h linalg.h is a single header, public domain, short vector math library for C++. It is inspired by the syntax of popular shading and compute la

754 Nov 24, 2022
###### LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C.

libtommath This is the git repository for LibTomMath, a free open source portable number theoretic multiple-precision integer (MPI) library written en

540 Nov 23, 2022
###### OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

OpenBLAS Travis CI: AppVeyor: Drone CI: Introduction OpenBLAS is an optimized BLAS (Basic Linear Algebra Subprograms) library based on GotoBLAS2 1.13

4.9k Nov 23, 2022
###### The QuantLib C++ library

QuantLib: the free/open-source library for quantitative finance The QuantLib project (http://quantlib.org) is aimed at providing a comprehensive softw

3.5k Nov 29, 2022
###### A C++ header-only library of statistical distribution functions.

StatsLib StatsLib is a templated C++ library of statistical distribution functions, featuring unique compile-time computing capabilities and seamless

418 Nov 23, 2022
###### SymEngine is a fast symbolic manipulation library, written in C++

SymEngine SymEngine is a standalone fast C++ symbolic manipulation library. Optional thin wrappers allow usage of the library from other languages, e.

912 Nov 24, 2022
###### RcppFastFloat: Rcpp Bindings for the fastfloat C++ Header-Only Library

Converting ascii text into (floating-point) numeric values is a very common problem. The fast_float header-only C++ library by Daniel Lemire does this very well, and very fast at up to or over to 1 gigabyte per second as described in more detail in a recent arXiv paper.

18 Nov 15, 2022
###### 📽 Highly optimized 2D|3D math library, also known as OpenGL Mathematics (glm) for `C

Highly optimized 2D|3D math library, also known as OpenGL Mathematics (glm) for `C`. cglm provides lot of utils to help math operations to be fast and quick to write. It is community friendly, feel free to bring any issues, bugs you faced.

1.5k Nov 30, 2022
###### ✨sigmatch - Modern C++ 20 Signature Match / Search Library

sigmatch Modern C++ 20 Signature Match / Search Library ✨ Features ?? Header-only, no dependencies, no exceptions. ☕ Compile-time literal signature st

52 Oct 23, 2022