Context

Typedefs

typedef void *SplaContext

Context handle.

Functions

SplaError spla_ctx_create(SplaContext *ctx, SplaProcessingUnit pu)

Create Context with default configuration for given processing unit.

Parameters:
  • ctx[out] Context handle.

  • pu[in] Processing unit to be used for computations.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_destroy(SplaContext *ctx)

Destroy context.

Parameters:

ctx[in] Context handle.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_processing_unit(SplaContext ctx, SplaProcessingUnit *pu)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • pu[out] Procesing unit used for computations.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_num_tiles(SplaContext ctx, int *numTiles)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • numTiles[out] Number of tiles used to overlap computation and communication.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_tile_size_host(SplaContext ctx, int *tileSizeHost)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • tileSizeHost[out] Size of tiles for host compuations and partitioning of communication.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_tile_size_gpu(SplaContext ctx, int *tileSizeGPU)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • tileSizeGPU[out] Size of tiles on GPU.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_op_threshold_gpu(SplaContext ctx, int *opThresholdGPU)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • opThresholdGPU[out] Operations threshold, below which computation may be done on Host, even if processing unit is set to GPU. For GEMM, the number of operations is estimatex as 2mnk.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_gpu_device_id(SplaContext ctx, int *deviceId)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • deviceId[out] Id of GPU used for computations. This is set as fixed parameter by query of device id at context creation.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_allocated_memory_host(SplaContext ctx, uint_least64_t *size)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • size[in] Total allocated memory on host in bytes used for internal buffers. Does not include allocations through standard C++ allocators. May change with with use of context.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_allocated_memory_pinned(SplaContext ctx, uint_least64_t *size)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • size[in] Total allocated pinned memory on host in bytes used for internal buffers. Does not include allocations through standard C++ allocators. May change with with use of context.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_allocated_memory_gpu(SplaContext ctx, uint_least64_t *size)

Access a Context parameter.

Parameters:
  • ctx[in] Context handle.

  • size[in] Total allocated memory on gpu in bytes used for internal buffers. Does not include allocations by device libraries like cuBLAS / rocBLAS. May change with with use of context.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_num_tiles(SplaContext ctx, int numTiles)

Set the number of tiles.

Parameters:
  • ctx[in] Context handle.

  • numTiles[in] Number of tiles.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_tile_size_host(SplaContext ctx, int tileSizeHost)

Set the tile size used for computations on host and partitioning communication.

Parameters:
  • ctx[in] Context handle.

  • tileSizeHost[in] Size of tiles on host.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_op_threshold_gpu(SplaContext ctx, int opThresholdGPU)

Set the operations threshold, below which computation may be done on Host, even if processing unit is set to GPU.

For GEMM, the number of operations is estimatex as 2mnk.

Parameters:
  • ctx[in] Context handle.

  • opThresholdGPU[in] Threshold in number of operations.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_tile_size_gpu(SplaContext ctx, int tileSizeGPU)

Set tile size for GPU computations.

Parameters:
  • ctx[in] Context handle.

  • tileSizeGPU[in] Size of tiles on GPU.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_alloc_host(SplaContext ctx, void *(*allocateFunc)(size_t), void (*deallocateFunc)(void*))

Set the allocation and deallocation functions for host memory.

Internal default uses a memory pool for better performance. Not available in Fortran module.

Parameters:
  • ctx[in] Context handle.

  • allocateFunc[in] Function allocating given size in bytes.

  • deallocateFunc[in] Function to deallocate memory allocated using allocateFunc.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_alloc_pinned(SplaContext ctx, void *(*allocateFunc)(size_t), void (*deallocateFunc)(void*))

Set the allocation and deallocation functions for pinned host memory.

Internal default uses a memory pool for better performance. Not available in Fortran module.

Parameters:
  • ctx[in] Context handle.

  • allocateFunc[in] Function allocating given size in bytes.

  • deallocateFunc[in] Function to deallocate memory allocated using allocateFunc.

Returns:

Error code or SPLA_SUCCESS.

SplaError spla_ctx_set_alloc_gpu(SplaContext ctx, void *(*allocateFunc)(size_t), void (*deallocateFunc)(void*))

Set the allocation and deallocation functions for gpu memory.

Internal default uses a memory pool for better performance. Not available in Fortran module.

Parameters:
  • ctx[in] Context handle.

  • allocateFunc[in] Function allocating given size in bytes.

  • deallocateFunc[in] Function to deallocate memory allocated using allocateFunc.

Returns:

Error code or SPLA_SUCCESS.