Graphite  0.5.0
GPU-accelerated graph optimization framework
Loading...
Searching...
No Matches
graphite Namespace Reference

The top-level namespace for Graphite. More...

Namespaces

namespace  ops
 Operations for Graphite.
 
namespace  optimizer
 Optimization algorithms for Graphite.
 

Classes

class  BaseFactorDescriptor
 Base class for factor descriptors. More...
 
class  BaseVertexDescriptor
 
struct  BlockCoordColMajorLess
 
class  BlockCoordinates
 
class  BlockJacobiPreconditioner
 
class  BlockJacobiSchurPreconditioner
 Block Jacobi preconditioner for PCG with the Schur complement. More...
 
struct  CameraTraits
 
struct  CircleFactorTraits
 
class  CSCMatrix
 
class  cudssSchurSolver
 
class  cudssSolver
 
class  cudssSolverOptions
 
class  Decomp
 
class  DefaultLoss
 
struct  DifferentiationMode
 
struct  Dual
 
class  EigenLDLTSolver
 
class  EigenLDLTSolverImpl
 
class  EigenLDLTWrapper
 
class  EigenSchurLDLTSolver
 
struct  Empty
 
class  FactorDescriptor
 Represents a group of factors which will be processed together on the GPU. More...
 
struct  get_State_or
 
struct  get_State_or< T, Fallback, std::void_t< typename T::State > >
 
struct  get_vertex_pointer_pointer_type
 
struct  get_vertex_pointer_type
 
struct  get_vertex_type
 
struct  GlobalToLocalEntry
 
class  Graph
 Graph class which stores references to vertex and factor descriptors, and provides methods for optimization. More...
 
class  HandleManager
 
struct  has_type_alias_State
 
struct  has_type_alias_State< T, std::void_t< typename T::State > >
 
class  Hessian
 
class  HessianBlocks
 
class  HuberLoss
 
class  IdentityPreconditioner
 
struct  is_half_or_bfloat16
 
struct  is_half_or_bfloat16< __half >
 
struct  is_half_or_bfloat16< __nv_bfloat16 >
 
class  JacobianStorage
 Storage class for Jacobians of a factor. More...
 
class  Loss
 
class  managed_vector
 
struct  PairCountFromPoseCount
 
class  PCGSchurSolver
 PCG solver using the Schur complement. More...
 
class  PCGSolver
 Preconditioned Conjugate Gradient (PCG) solver. More...
 
struct  PointTraits
 
class  Preconditioner
 
struct  ProductDim
 
struct  ReprojectionErrorTraits
 
class  SchurComplement
 Class for computing the explicit Schur complement. More...
 
class  SchurPreconditioner
 Base class for Schur complement preconditioners. More...
 
class  Solver
 Linear solver interface. Implement this for your own linear solvers. More...
 
class  StreamPool
 
struct  transform_tuple
 
struct  transform_tuple< std::tuple< Ts... >, MetaFunc >
 
struct  uninitialized_allocator
 
struct  vec2_type
 
struct  vec2_type< __half >
 
struct  vec2_type< __nv_bfloat16 >
 
struct  vec2_type< double >
 
struct  vec2_type< float >
 
class  VertexDescriptor
 Represents a collection of optimizable variables to be processed together on the GPU. More...
 

Typedefs

using BlockDimension = BlockCoordinates
 
template<typename T , typename Fallback >
using get_State_or_t = typename get_State_or< T, Fallback >::type
 
using MatVecDim = BlockDimension
 
template<typename T >
using VecMap = Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >
 
template<typename T >
using is_low_precision = is_half_or_bfloat16< T >
 
template<typename T , typename S >
using InvP = std::conditional_t< is_low_precision< S >::value, T, S >
 
template<typename T >
using Point = Eigen::Matrix< T, 3, 1 >
 
template<typename T >
using Camera = Eigen::Matrix< T, 9, 1 >
 
template<typename T , typename S >
using PointDescriptor = VertexDescriptor< T, S, PointTraits< T > >
 
template<typename T , typename S >
using CameraDescriptor = VertexDescriptor< T, S, CameraTraits< T > >
 
template<typename T , typename S >
using ReprojectionError = FactorDescriptor< T, S, ReprojectionErrorTraits< T, S > >
 
template<typename T , typename S >
using CircleFactor = FactorDescriptor< T, S, CircleFactorTraits< T, S > >
 

Functions

template<>
EigenLDLTSolverImpl< double, int32_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int32_t > > ()
 
template<>
EigenLDLTSolverImpl< float, int32_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int32_t > > ()
 
template<>
EigenLDLTSolverImpl< double, int64_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int64_t > > ()
 
template<>
EigenLDLTSolverImpl< float, int64_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int64_t > > ()
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int32_t > > (EigenLDLTSolverImpl< double, int32_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int32_t > > (EigenLDLTSolverImpl< float, int32_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int64_t > > (EigenLDLTSolverImpl< double, int64_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int64_t > > (EigenLDLTSolverImpl< float, int64_t > *solver)
 
__host__ __device__ __forceinline__ bool is_factor_active (const uint8_t active_val, const uint8_t level)
 
__host__ __device__ __forceinline__ bool is_vertex_active (const uint8_t *active_state, const size_t vertex_id)
 
size_t build_active_indices (const thrust::device_vector< uint8_t > &active, thrust::device_vector< size_t > &active_indices, const size_t count, const uint8_t level)
 
template<typename DiffMode >
constexpr bool use_autodiff_impl ()
 
template<typename F >
constexpr bool is_analytical ()
 
template<>
constexpr bool use_autodiff_impl< DifferentiationMode::Auto > ()
 
__device__ __forceinline__ size_t get_thread_id ()
 
template<typename T , size_t I, size_t N, typename M , size_t E, typename F , typename VT , std::size_t... Is>
__device__ void compute_Jblock (T *jacobian, const size_t factor_id, const size_t vertex_id, const M *obs, const typename F::ConstraintDataType *constraint_data, const size_t *ids, const size_t *hessian_ids, VT args, std::index_sequence< Is... >)
 
template<typename T >
cudaDataType_t get_cuda_data_type ()
 
template<>
cudaDataType_t get_cuda_data_type< double > ()
 
template<>
cudaDataType_t get_cuda_data_type< float > ()
 
template<typename Index >
cudaDataType_t get_cuda_index_type ()
 
template<typename Solver >
Solvercreate_eigen_ldlt_solver ()
 
template<typename Solver >
void destroy_eigen_ldlt_solver (Solver *solver)
 
template<>
EigenLDLTSolverImpl< double, int32_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int32_t > > ()
 
template<>
EigenLDLTSolverImpl< float, int32_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int32_t > > ()
 
template<>
EigenLDLTSolverImpl< double, int64_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int64_t > > ()
 
template<>
EigenLDLTSolverImpl< float, int64_t > * create_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int64_t > > ()
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int32_t > > (EigenLDLTSolverImpl< double, int32_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int32_t > > (EigenLDLTSolverImpl< float, int32_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< double, int64_t > > (EigenLDLTSolverImpl< double, int64_t > *solver)
 
template<>
void destroy_eigen_ldlt_solver< EigenLDLTSolverImpl< float, int64_t > > (EigenLDLTSolverImpl< float, int64_t > *solver)
 
template<typename hp , typename lp >
__device__ lp convert_to_low_precision (const hp &value)
 
template<typename T >
void prefetch_vector_on_device_async (const thrust::universal_vector< T > &vec, int device_id, cudaStream_t stream)
 
template<typename T >
void prefetch_vector_on_device_async (const managed_vector< T > &vec, int device_id, cudaStream_t stream)
 
template<typename T >
void prefetch_vector_on_host (const thrust::universal_vector< T > &vec, cudaStream_t stream)
 
template<typename T >
void prefetch_vector_on_host (const managed_vector< T > &vec, cudaStream_t stream)
 
template<typename T >
void print_device_vector (const thrust::device_vector< T > &vec)
 
template<typename T >
void print_device_vector (const T *vec, size_t size)
 

Detailed Description

The top-level namespace for Graphite.