)]}'
{
  "commit": "7d2e4152ec3da4a7f866f6030e1a2ae6a9bb5a04",
  "tree": "a242128f10529a8d64e500fb98eea450873a9bb1",
  "parents": [
    "f90833f5fac832b39ccb22a20567a9ad035cb71a"
  ],
  "author": {
    "name": "Joydeep Biswas",
    "email": "joydeepb@cs.utexas.edu",
    "time": "Sat Feb 12 12:09:26 2022 -0600"
  },
  "committer": {
    "name": "Joydeep Biswas",
    "email": "joydeepb@cs.utexas.edu",
    "time": "Mon Feb 14 15:22:39 2022 -0600"
  },
  "message": "Add support for dense CUDA solvers #2\n\n1. Add CUDADenseQR \u0026 tests.\n   CUDADenseQR uses the cuSolverDN LAPACK implementation\n   of QR factorization. A key limitation, however, is that\n   this solver does not perform singularity checking --\n   this is because cuSolverDN does not have a trtrs\n   implementation; we instead use cuBLAS\u0027 trsv for\n   backsubstitution.\n2. All CPU -\u003e GPU memory transfers are now async, and both\n   CUDADenseQR and CUDADenseCholesky explicitly manage their\n   own streams for async operations.\n3. Simplified CUDADenseCholesky to only use the legacy 32-bit\n   cuSolverDN API.\n\nChange-Id: I2a9b7b65469658ddfe33b5b2a3892c8744d6e437\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "48ba201cac51ff123317a9aec3ad9ceb79f26840",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "69432f7d33c49fa649bf2762c621674e89a74cb3",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "a3430caa6ec42a2141b499c1b9d589ee98e28a65",
      "old_mode": 33188,
      "old_path": "examples/nist.cc",
      "new_id": "cb0d1aa0b1212806776fb8cb96040618da1a0fdb",
      "new_mode": 33188,
      "new_path": "examples/nist.cc"
    },
    {
      "type": "modify",
      "old_id": "166eb195d32759bdc3b9f304970c759fd2fe4535",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "6c6c3c1ee99399c47585e3db46dae69f87789999",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "44e7de3e8fe5c9bc8e07de7e88cb96577072fda1",
      "old_mode": 33188,
      "old_path": "internal/ceres/cuda_buffer.h",
      "new_id": "61f9752b74d664dd5a09493fa4a52fef5098df75",
      "new_mode": 33188,
      "new_path": "internal/ceres/cuda_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "7d39b0e300e8dcfb2f3751e6c223c74b2f98a063",
      "old_mode": 33188,
      "old_path": "internal/ceres/cuda_dense_cholesky_test.cc",
      "new_id": "6c4dcc3a37ffc051fda0d854b9d3fdfe08df9a55",
      "new_mode": 33188,
      "new_path": "internal/ceres/cuda_dense_cholesky_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15ba00a5676ea33ea5bcf9f5a17406036e1ca101",
      "new_mode": 33188,
      "new_path": "internal/ceres/cuda_dense_qr_test.cc"
    },
    {
      "type": "modify",
      "old_id": "af555e7a938e47263764c232ae295a6965ccab50",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_cholesky.cc",
      "new_id": "2d8c2daf800e0f9957672a50c59ddcd27b3f83d5",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_cholesky.cc"
    },
    {
      "type": "modify",
      "old_id": "f7e48d40922fe23106fec20fab6195bdf82a097c",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_cholesky.h",
      "new_id": "49d780c07508281f6fef20b35a6ac205f3475502",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_cholesky.h"
    },
    {
      "type": "modify",
      "old_id": "2af9fa8839234fc45099b52034d4af8aa1f05946",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_linear_solver_benchmark.cc",
      "new_id": "ba171bf144131fb64beeaf3220441fcbd14f8993",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_linear_solver_benchmark.cc"
    },
    {
      "type": "modify",
      "old_id": "33a7cbd82b5b748dcb12aef25c9aae69c5e810d4",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr.cc",
      "new_id": "77f04ada3371499ecdc4017e9471deb9ddc72b98",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr.cc"
    },
    {
      "type": "modify",
      "old_id": "aafb067be79cccf98f990f63b66bb1f0631e463f",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr.h",
      "new_id": "8bcccf0cb7b7aaa013e078f28b62d1b86177faf5",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr.h"
    },
    {
      "type": "modify",
      "old_id": "ac1258da83b7441d311f4934d7d138d775189ac1",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_qr_test.cc",
      "new_id": "d9d307e40e274d533b71e27e4f03dd689b9016e0",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_qr_test.cc"
    }
  ]
}
