KokkosKernels::Experimental::KokkosKernelsHandle::{get,create,destroy}

Defined in header KokkosKernels_Handle.hpp

KernelHandeType* get_kernel_handle();
void create_kernel_handle(Args...);
void destroy_kernel_handle();

A generic set of get, create and destroy member functions from the KokkosKernelsHandle to manage a sub-handle associated with the Kernel algorithm.

SpADD

get

SPADDHandleType *get_spadd_handle();

Returns a pointer to the spadd sub-handle owned by this KokkosKernelsHandle.

create

void create_spadd_handle(bool input_sorted = false, bool input_merged = false);

Destroy any previous spadd sub-handle and create a new owned one specifying if the associated input matrices is sorted and/or merged.

Parameters

input_sorted:

Specify if the input matrices are sorted, by default they are assumed un-sorted.

input_merged:

Specify if the input matrices are merged, by default they are assumed un-merged.

destroy

void destroy_spadd_handle();

Destroys the spadd sub-handle owned by this KokkosKernelsHandle.

SpGEMM

get

SPGEMMHandleType *get_spgemm_handle();

Returns a pointer to the spgemm sub-handle owned by this KokkosKernelsHandle.

create

void create_spgemm_handle(KokkosSparse::SPGEMMAlgorithm spgemm_algo = KokkosSparse::SPGEMM_DEFAULT);

Destroy any previous spgemm sub-handle and create a new owned one specifying which algorithm to use.

Parameters

spgemm_algo:

Specify the algorithm to be used to perform the spgemm operation.

destroy

void destroy_spgemm_handle();

Destroys the spgemm sub-handle owned by this KokkosKernelsHandle.

Graph Coloring

get

GraphColoringHandleType *get_graph_coloring_handle();

create

void create_graph_coloring_handle(KokkosGraph::ColoringAlgorithm coloring_type = KokkosGraph::COLORING_DEFAULT);

destroy

void destroy_graph_coloring_handle()

Distance 2 Graph Coloring

get

GraphColorDistance2HandleType *get_distance2_graph_coloring_handle();

create

void create_distance2_graph_coloring_handle(KokkosGraph::GraphColoringAlgorithmDistance2 coloring_type = KokkosGraph::COLORING_D2_DEFAULT);

destroy

void destroy_distance2_graph_coloring_handle();

GMRES

get

GMRESHandleType *get_gmres_handle();

create

void create_gmres_handle(const size_type m = 50, const typename GMRESHandleType::float_t tol = 1e-8, const size_type max_restart = 50);

Note

I am not sure that using GMRESHandleType::float_t in the general handle is great, might want to use one of the public type defined in the general handle and eventually cast that to the type the sub-handle expect in the implementation of the create function.

destroy

void destroy_gmres_handle();

SpILUK

get

SPILUKHandleType *get_spiluk_handle();

create

void create_spiluk_handle(KokkosSparse::Experimental::SPILUKAlgorithm algm, size_type nrows, size_type nnzL,
                          size_type nnzU, size_type block_size = 0);

destroy

void destroy_spiluk_handle();

Parallel ILUt

get

PAR_ILUTHandleType *get_par_ilut_handle();

create

void create_par_ilut_handle(const size_type max_iter                                            = 20,
                            const typename PAR_ILUTHandleType::float_t residual_norm_delta_stop = 1e-2,
                            const typename PAR_ILUTHandleType::float_t fill_in_limit            = 0.75,
                            const bool async_update = false, const bool verbose = false);

destroy

void destroy_par_ilut_handle();

SpTRSV

get

SPTRSVHandleType *get_sptrsv_handle();

create

void create_sptrsv_handle(KokkosSparse::Experimental::SPTRSVAlgorithm algm, size_type nrows, bool lower_tri,
                          size_type block_size = 0);

destroy

void destroy_sptrsv_handle();

Gauss-Seidel

get

GaussSeidelHandleType *get_gs_handle();

create

void create_gs_handle(const HandleExecSpace &handle_exec_space, int num_streams,
                      KokkosSparse::GSAlgorithm gs_algorithm            = KokkosSparse::GS_DEFAULT,
                      KokkosGraph::ColoringAlgorithm coloring_algorithm = KokkosGraph::COLORING_DEFAULT)
void create_gs_handle(KokkosSparse::GSAlgorithm gs_algorithm            = KokkosSparse::GS_DEFAULT,
                      KokkosGraph::ColoringAlgorithm coloring_algorithm = KokkosGraph::COLORING_DEFAULT);
void create_gs_handle(KokkosSparse::ClusteringAlgorithm clusterAlgo, nnz_lno_t hint_verts_per_cluster,
                      KokkosGraph::ColoringAlgorithm coloring_algorithm = KokkosGraph::COLORING_DEFAULT);

destroy

void destroy_gs_handle();