)]}'
{
  "commit": "829089053e261f056dd72cd8c74e4c19ac445924",
  "tree": "caba246cd62e6635b98233af2b8e14c76569d707",
  "parents": [
    "6ab435d77442f81a6dfdbda79ccde275900d02c6"
  ],
  "author": {
    "name": "Joydeep Biswas",
    "email": "joydeepb@cs.utexas.edu",
    "time": "Sun Aug 14 19:14:04 2022 -0500"
  },
  "committer": {
    "name": "Joydeep Biswas",
    "email": "joydeepb@cs.utexas.edu",
    "time": "Mon Aug 15 23:44:34 2022 -0500"
  },
  "message": "CUDA CGNR, Part 4: CudaCgnrSolver\n\n* Added CudaCgnrSolver, a new CUDA-accelerated CGNR.\n* To use CudaCgnrSolver, the user must select CGNR as the linear_solver\n  and CUDA_SPARSE as the sparse_linear_algebra_library.\n* Updated ConjugateGradientSolver to work with an array of pointers to\n  scratch to support CudaVectors as scratch.\n* Moved CUDA initialization to run in Solver::Solve as needed.\n\nSome performance comparisons on an Ubuntu 20.04 desktop with an\nIntel i9-9940X CPU @ 3.30GHz, and an nVidia Quadro RTX 6000,\nall configurations run with 24 threads, and 10 iterations.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCGNR + CUDA_SPARSE + IDENTITY Preconditioner\nproblem-1778-993923-pre.txt\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCost:\nInitial                          2.563973e+08\nFinal                            1.724755e+06\nChange                           2.546725e+08\n\nMinimizer iterations                       11\nSuccessful steps                            7\nUnsuccessful steps                          4\n\nTime (in seconds):\nPreprocessor                         4.020158\n\n  Residual only evaluation           1.567092 (10)\n  Jacobian \u0026 residual evaluation     7.847130 (7)\n  Linear solver                     31.688898 (10)\nMinimizer                           46.834987\n\nPostprocessor                        0.353974\nTotal                               51.209120\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSPARSE_SCHUR (CPU) + SUITE_SPARSE + AMD\nproblem-1778-993923-pre.txt\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCost:\nInitial                          2.563973e+08\nFinal                            1.651617e+06\nChange                           2.547457e+08\n\nMinimizer iterations                       11\nSuccessful steps                           11\nUnsuccessful steps                          0\n\nTime (in seconds):\nPreprocessor                        35.812003\n\n  Residual only evaluation           1.658980 (10)\n  Jacobian \u0026 residual evaluation    12.218799 (11)\n  Linear solver                     76.409992 (10)\nMinimizer                           98.809773\n\nPostprocessor                        0.372712\nTotal                              134.994489\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nITERATIVE_SCHUR (CPU) + JACOBI Preconditioner\nproblem-1778-993923-pre.txt\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCost:\nInitial                          2.563973e+08\nFinal                            1.684447e+06\nChange                           2.547128e+08\n\nMinimizer iterations                       11\nSuccessful steps                            8\nUnsuccessful steps                          3\n\nTime (in seconds):\nPreprocessor                        15.331614\n\n  Residual only evaluation           1.606114 (10)\n  Jacobian \u0026 residual evaluation     8.502166 (8)\n  Linear solver                    351.910080 (10)\nMinimizer                          368.797327\n\nPostprocessor                        0.363536\nTotal                              384.492478\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCGNR + CUDA_SPARSE + IDENTITY Preconditioner\nproblem-13682-4456117-pre.txt\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nCost:\nInitial                          1.126372e+09\nFinal                            2.269329e+07\nChange                           1.103678e+09\n\nMinimizer iterations                       11\nSuccessful steps                            7\nUnsuccessful steps                          4\n\nTime (in seconds):\nPreprocessor                        19.140087\n\n  Residual only evaluation           8.721920 (10)\n  Jacobian \u0026 residual evaluation    41.955923 (7)\n  Linear solver                    214.121861 (10)\nMinimizer                          296.636890\n\nPostprocessor                        1.971827\nTotal                              317.748804\n\nChange-Id: I3a09f31aa6903f661e91f595afd39d427583e856\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "27ea80e40d9df53313c5416a7bca04e1ad78dc22",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "b05c3a29dc36d192735a1ab88127d4f311bd7767",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "1b07ab37f08a7578302c8a9eabfa684b9a7ec0dd",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "0a110e2527e40b7576b9db1f696ba695e002b624",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "99d53755b1057f92a832cac3c41f4d4713696e80",
      "old_mode": 33188,
      "old_path": "internal/ceres/cgnr_solver.cc",
      "new_id": "f4f9e0fc22d1deb567bb912797a9712e5bfb2420",
      "new_mode": 33188,
      "new_path": "internal/ceres/cgnr_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "698229658f2412d6c0e23572233a8089efa4fc86",
      "old_mode": 33188,
      "old_path": "internal/ceres/cgnr_solver.h",
      "new_id": "a971c8180eb83e5c9407ce83fcad9bc14d73d531",
      "new_mode": 33188,
      "new_path": "internal/ceres/cgnr_solver.h"
    },
    {
      "type": "modify",
      "old_id": "f2eea8745ca2e891fa0b6d7272b3ba5b947440a7",
      "old_mode": 33188,
      "old_path": "internal/ceres/conjugate_gradients_solver.h",
      "new_id": "0c3581b9c4fa5ca20f13bc0fd78e9015fcf94bec",
      "new_mode": 33188,
      "new_path": "internal/ceres/conjugate_gradients_solver.h"
    },
    {
      "type": "modify",
      "old_id": "a01dfc9480684606b4b3cd1c2b3f7b159f46fcf6",
      "old_mode": 33188,
      "old_path": "internal/ceres/conjugate_gradients_solver_test.cc",
      "new_id": "e59eba70fb591b0aaf800c22729b414784807e60",
      "new_mode": 33188,
      "new_path": "internal/ceres/conjugate_gradients_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c7b11ce4f2810185fe5a0d58e8c3da7ebbbc3e5c",
      "old_mode": 33188,
      "old_path": "internal/ceres/cuda_dense_cholesky_test.cc",
      "new_id": "1483923138d244876032d761e8756e70f0066c06",
      "new_mode": 33188,
      "new_path": "internal/ceres/cuda_dense_cholesky_test.cc"
    },
    {
      "type": "modify",
      "old_id": "9eb5d4d580d97a6e88ff90ef584f8d99b916e3b5",
      "old_mode": 33188,
      "old_path": "internal/ceres/cuda_dense_qr_test.cc",
      "new_id": "cc0dbd6d02f93b3dbe1665e450e03f70185fb267",
      "new_mode": 33188,
      "new_path": "internal/ceres/cuda_dense_qr_test.cc"
    },
    {
      "type": "modify",
      "old_id": "244de7426aaa7492be8b6f6189ca4d5c3f17100e",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_cholesky.cc",
      "new_id": "af42e73bf27b34f54820780fed0f8d5072a373a0",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_cholesky.cc"
    },
    {
      "type": "modify",
      "old_id": "1c0df568d341b2e588123c36589b7a3d7fea24d4",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_cholesky_test.cc",
      "new_id": "34ff4f38f27bb2f72262abb59e6525dcb62507fe",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_cholesky_test.cc"
    },
    {
      "type": "modify",
      "old_id": "acef7507079fdb6975a104c09f73326e1f3897e7",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr_test.cc",
      "new_id": "f562d972b589a50574082ba09abf9f1248a508ff",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f44796a38850ff96e850064de395e405c910d5e5",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator.cc",
      "new_id": "91cf221041f59e09b46719678f876cf80e1f1f28",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator.cc"
    },
    {
      "type": "modify",
      "old_id": "68a4fb28a558e0fe572f3ac4e3e1edf10e027efd",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator.h",
      "new_id": "7ea523c58dc5b213fcf8cc6947bf91cf4cc4971f",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator.h"
    },
    {
      "type": "modify",
      "old_id": "607502e72f8248271092fb0a320244927659636d",
      "old_mode": 33188,
      "old_path": "internal/ceres/iterative_schur_complement_solver.cc",
      "new_id": "0463afbf34d667d30a75282e209078a457c50a6e",
      "new_mode": 33188,
      "new_path": "internal/ceres/iterative_schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "d9ef15006ce6250bab3bd269c8113e62012ece74",
      "old_mode": 33188,
      "old_path": "internal/ceres/linear_solver.cc",
      "new_id": "2e3fe4be66873a3e0bb799f28135afee8920cf9f",
      "new_mode": 33188,
      "new_path": "internal/ceres/linear_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "ba96e1cc57239941bd489420eaa4e23fb15a522d",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.cc",
      "new_id": "631862ced4c3123fab73b397e98039c482d7558e",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.cc"
    },
    {
      "type": "modify",
      "old_id": "4fde69cb5b72f7a0d8a972058275d87a304c00af",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_complement_solver.h",
      "new_id": "cac96b5ba49e4aa5c944bf7bca86fba5bd9508fa",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_complement_solver.h"
    },
    {
      "type": "modify",
      "old_id": "b772f3f15839c79c7ea968c95d9093797ac5dde2",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver.cc",
      "new_id": "0e0790e8774bf610ccd546e830f337042f618827",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver.cc"
    },
    {
      "type": "modify",
      "old_id": "b4b2d3446197f90dde29e7bdc5b211eb99202a0c",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_test.cc",
      "new_id": "92c1ddc25f7f210f2c6c97c472d25524a2b29585",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d27a472015bd82f76d3f330e67267ea8ff4a2e64",
      "old_mode": 33188,
      "old_path": "internal/ceres/trust_region_preprocessor.cc",
      "new_id": "84e783f5bd351536ab16b187b4d933fbc3074941",
      "new_mode": 33188,
      "new_path": "internal/ceres/trust_region_preprocessor.cc"
    },
    {
      "type": "modify",
      "old_id": "1d514de77d98feecbfc11f3a91e6e394f5b55ed8",
      "old_mode": 33188,
      "old_path": "internal/ceres/types.cc",
      "new_id": "3de91ed585238acb19b75b96474c8a7eb23a9d54",
      "new_mode": 33188,
      "new_path": "internal/ceres/types.cc"
    }
  ]
}
