Permalink
Browse files

documented splatt_mttkrp_ws

  • Loading branch information...
ShadenSmith committed Feb 25, 2017
1 parent 618d9e5 commit e88dc099ed4079a2ba527cd461a08e3d2d05fa2f
Showing with 39 additions and 4 deletions.
  1. +39 −4 include/splatt/api_kernels.h
@@ -15,20 +15,55 @@
/**
* @brief Workspace used during MTTKRP. This is allocated outside of MTTKRP
* kernels in order to avoid repeated overheads.
*/
typedef struct
{
splatt_idx_t num_csf;
splatt_idx_t num_threads;
/*
* CSF mapping information. We can have up to #modes CSF representations,
* so we need to map each mode of MTTKRP to the best option.
*/
/** @brief How many CSF representations are available. */
splatt_idx_t num_csf;
/** @brief Mapping of modes -> CSF representations (which CSF to use). */
splatt_idx_t mode_csf_map[SPLATT_MAX_NMODES];
/** @brief The number of threads which will be used. */
splatt_idx_t num_threads;
/*
* Partitioning information. If the CSF is tiled, we distribute tiles to
* threads. If the CSF is untiled, we distribute slices to threads.
* Partitioning is performed on a per-CSF basis, so we have one for each
* mode (the maximum number of CSF).
*
* In all cases, we rely on static partitioning via chains-on-chains
* partitioning.
*/
/** @brief A thread partitioning of the tiles in each CSF. NULL if untiled.*/
splatt_idx_t * tile_partition[SPLATT_MAX_NMODES];
/** @brief A thread partitioning of the slices in each CSF. NULL if tiled. */
splatt_idx_t * tree_partition[SPLATT_MAX_NMODES];
/* Mode privatization to avoid synchronization */
double reduction_time;
/*
* Privatization information. Privatizing a mode replicates the output matrix
* by each thread in order to avoid lock contention. This is useful when
* the tensor mode is short.
*/
/** @brief Marks if a tensor mode is privatized. */
bool is_privatized[SPLATT_MAX_NMODES];
/** @brief The buffer used by each thread for privatization.
* privatize_buffer[thread_id] is large enough to process the largest
* privatized mode.
*/
splatt_val_t * * privatize_buffer;
/** @brief The time spent on the latest privatized reduction.*/
double reduction_time;
} splatt_mttkrp_ws;

0 comments on commit e88dc09

Please sign in to comment.