6#include <boost/utility/in_place_factory.hpp>
7#include <boost/utility/typed_in_place_factory.hpp>
8#include <gtsam/nonlinear/NonlinearFactor.h>
9#include <gtsam_points/util/gtsam_migration.hpp>
11namespace gtsam_points {
39 using shared_ptr = gtsam_points::shared_ptr<NonlinearFactorGPU>;
41 template <
typename CONTAINER>
82 virtual void issue_linearize(
const void* lin_input_cpu,
const void* lin_input_gpu,
void* lin_output_gpu) = 0;
106 const void* lin_input_cpu,
107 const void* eval_input_cpu,
108 const void* lin_input_gpu,
109 const void* eval_input_gpu,
110 void* eval_output_gpu) = 0;
Base class for GPU-based nonlinear factors.
Definition nonlinear_factor_gpu.hpp:37
virtual size_t evaluation_input_size() const =0
Size of data to be uploaded to the GPU before cost evaluation.
virtual size_t linearization_input_size() const =0
Size of data to be uploaded to the GPU before linearization.
virtual void store_computed_error(const void *eval_output_cpu)=0
Read cost evaluation output data from the download buffer.
virtual void set_linearization_point(const gtsam::Values &values, void *lin_input_cpu)=0
Write linearization input data to the upload buffer.
virtual void set_evaluation_point(const gtsam::Values &values, void *eval_input_cpu)=0
Write cost evaluation input data to the upload buffer.
virtual size_t linearization_output_size() const =0
Size of data to be downloaded from the GPU after linearization.
virtual size_t evaluation_output_size() const =0
Size of data to be downloaded from the GPU after cost evaluation.
virtual void sync()=0
Perform CPU-GPU synchronization and wait for the task.
virtual void issue_linearize(const void *lin_input_cpu, const void *lin_input_gpu, void *lin_output_gpu)=0
Issue linearization task.
virtual void issue_compute_error(const void *lin_input_cpu, const void *eval_input_cpu, const void *lin_input_gpu, const void *eval_input_gpu, void *eval_output_gpu)=0
Issue cost evaluation task.
virtual void store_linearized(const void *lin_output_cpu)=0
Read linearization output data from the download buffer.