DPU C++ Host API  2025.1.0
dpu::DpuSetOps Class Reference

Operations on a DPU set that can be run synchronously or asynchronously. More...

#include <dpu.hpp>

Inheritance diagram for dpu::DpuSetOps:
[legend]

Public Member Functions

template<typename T >
void copy (const std::string &DstSymbol, unsigned Offset, const std::vector< T > &SrcBuffer, unsigned Size)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, unsigned Offset, const std::vector< T > &SrcBuffer)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, const std::vector< T > &SrcBuffer, unsigned Size)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, const std::vector< T > &SrcBuffer)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, unsigned Offset, const std::vector< T > &SrcBuffer, unsigned Size)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, unsigned Offset, const std::vector< T > &SrcBuffer)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, const std::vector< T > &SrcBuffer, unsigned Size)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, const std::vector< T > &SrcBuffer)
 Copy the same data to all the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, unsigned Offset, const std::vector< std::vector< T >> &SrcBuffers, unsigned Size)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, unsigned Offset, const std::vector< std::vector< T >> &SrcBuffers)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, const std::vector< std::vector< T >> &SrcBuffers, unsigned Size)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (const std::string &DstSymbol, const std::vector< std::vector< T >> &SrcBuffers)
 Copy the different buffers to the DPUs in the set. More...
 
void copyScatterGather (const std::string &DstSymbol, unsigned Offset, get_block_t &get_block_info, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
void copyScatterGather (const std::string &DstSymbol, get_block_t &get_block_info, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<class F >
void copyScatterGather (const std::string &DstSymbol, unsigned Offset, F f, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<class F >
void copyScatterGather (const std::string &DstSymbol, F f, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, unsigned Offset, const std::vector< std::vector< T >> &SrcBuffers, unsigned Size)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, unsigned Offset, const std::vector< std::vector< T >> &SrcBuffers)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, const std::vector< std::vector< T >> &SrcBuffers, unsigned Size)
 Copy the different buffers to the DPUs in the set. More...
 
template<typename T >
void copy (DpuSymbol &DstSymbol, const std::vector< std::vector< T >> &SrcBuffers)
 Copy the different buffers to the DPUs in the set. More...
 
void copyScatterGather (DpuSymbol &DstSymbol, unsigned Offset, get_block_t &get_block_info, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
void copyScatterGather (DpuSymbol &DstSymbol, get_block_t &get_block_info, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<class F >
void copyScatterGather (DpuSymbol &DstSymbol, unsigned Offset, F f, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<class F >
void copyScatterGather (DpuSymbol &DstSymbol, F f, unsigned Size, bool length_check=true)
 Copy the different buffers to the DPUs in the set with a scatter/gather transfer. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, unsigned Size, const std::string &SrcSymbol, unsigned Offset)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, unsigned Size, const std::string &SrcSymbol)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, const std::string &SrcSymbol, unsigned Offset)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, const std::string &SrcSymbol)
 Copy data from the DPUs in the set. More...
 
void copyScatterGather (get_block_t &get_block_info, unsigned Size, const std::string &SrcSymbol, unsigned Offset, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
void copyScatterGather (get_block_t &get_block_info, unsigned Size, const std::string &SrcSymbol, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
template<class F >
void copyScatterGather (F f, unsigned Size, const std::string &SrcSymbol, unsigned Offset, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
template<class F >
void copyScatterGather (F f, unsigned Size, const std::string &SrcSymbol, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, unsigned Size, DpuSymbol &SrcSymbol, unsigned Offset)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, unsigned Size, DpuSymbol &SrcSymbol)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, DpuSymbol &SrcSymbol, unsigned Offset)
 Copy data from the DPUs in the set. More...
 
template<typename T >
void copy (std::vector< std::vector< T >> &DstBuffers, DpuSymbol &SrcSymbol)
 Copy data from the DPUs in the set. More...
 
void copyScatterGather (get_block_t &get_block_info, unsigned Size, DpuSymbol &SrcSymbol, unsigned Offset, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
void copyScatterGather (get_block_t &get_block_info, unsigned Size, DpuSymbol &SrcSymbol, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
template<class F >
void copyScatterGather (F f, unsigned Size, DpuSymbol &SrcSymbol, unsigned Offset, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
template<class F >
void copyScatterGather (F f, unsigned Size, DpuSymbol &SrcSymbol, bool length_check=true)
 Copy data from the DPUs in the set with a scatter-gather transfer. More...
 
void exec ()
 Execute a DPU program. More...
 

Friends

class DpuSet
 
class DpuSetAsync
 

Detailed Description

Operations on a DPU set that can be run synchronously or asynchronously.

Member Function Documentation

◆ copy() [1/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
unsigned  Offset,
const std::vector< T > &  SrcBuffer,
unsigned  Size 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBufferthe source host buffer
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol does not exist or if the symbol is not big enough for the data

◆ copy() [2/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
unsigned  Offset,
const std::vector< T > &  SrcBuffer 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBufferthe source host buffer
Exceptions
DpuErrorwhen the symbol does not exist or if the symbol is not big enough for the data

◆ copy() [3/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
const std::vector< T > &  SrcBuffer,
unsigned  Size 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
SrcBufferthe source host buffer
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol does not exist or if the symbol is not big enough for the data

◆ copy() [4/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
const std::vector< T > &  SrcBuffer 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
SrcBufferthe source host buffer
Exceptions
DpuErrorwhen the symbol does not exist or if the symbol is not big enough for the data

◆ copy() [5/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
unsigned  Offset,
const std::vector< T > &  SrcBuffer,
unsigned  Size 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBufferthe source host buffer
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [6/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
unsigned  Offset,
const std::vector< T > &  SrcBuffer 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBufferthe source host buffer
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [7/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
const std::vector< T > &  SrcBuffer,
unsigned  Size 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
SrcBufferthe source host buffer
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [8/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
const std::vector< T > &  SrcBuffer 
)
inline

Copy the same data to all the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
SrcBufferthe source host buffer
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [9/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
unsigned  Offset,
const std::vector< std::vector< T >> &  SrcBuffers,
unsigned  Size 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBuffersthe source host buffers (one per DPU in the set)
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [10/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
unsigned  Offset,
const std::vector< std::vector< T >> &  SrcBuffers 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBuffersthe source host buffers (one per DPU in the set)
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [11/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
const std::vector< std::vector< T >> &  SrcBuffers,
unsigned  Size 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
SrcBuffersthe source host buffers (one per DPU in the set)
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [12/24]

template<typename T >
void dpu::DpuSetOps::copy ( const std::string &  DstSymbol,
const std::vector< std::vector< T >> &  SrcBuffers 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe name of the destination DPU symbol
SrcBuffersthe source host buffers (one per DPU in the set)
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [13/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
unsigned  Offset,
const std::vector< std::vector< T >> &  SrcBuffers,
unsigned  Size 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBuffersthe source host buffers (one per DPU in the set)
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [14/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
unsigned  Offset,
const std::vector< std::vector< T >> &  SrcBuffers 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
SrcBuffersthe source host buffers (one per DPU in the set)
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [15/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
const std::vector< std::vector< T >> &  SrcBuffers,
unsigned  Size 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
SrcBuffersthe source host buffers (one per DPU in the set)
Sizethe number of bytes to copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [16/24]

template<typename T >
void dpu::DpuSetOps::copy ( DpuSymbol DstSymbol,
const std::vector< std::vector< T >> &  SrcBuffers 
)
inline

Copy the different buffers to the DPUs in the set.

Parameters
DstSymbolthe destination DPU symbol
SrcBuffersthe source host buffers (one per DPU in the set)
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [17/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
unsigned  Size,
const std::string &  SrcSymbol,
unsigned  Offset 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [18/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
unsigned  Size,
const std::string &  SrcSymbol 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [19/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
const std::string &  SrcSymbol,
unsigned  Offset 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [20/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
const std::string &  SrcSymbol 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
SrcSymbolthe name of the source DPU symbol
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [21/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
unsigned  Size,
DpuSymbol SrcSymbol,
unsigned  Offset 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
Sizethe number of bytes to copy
SrcSymbolthe source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [22/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
unsigned  Size,
DpuSymbol SrcSymbol 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
Sizethe number of bytes to copy
SrcSymbolthe source DPU symbol
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [23/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
DpuSymbol SrcSymbol,
unsigned  Offset 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
SrcSymbolthe source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copy() [24/24]

template<typename T >
void dpu::DpuSetOps::copy ( std::vector< std::vector< T >> &  DstBuffers,
DpuSymbol SrcSymbol 
)
inline

Copy data from the DPUs in the set.

Parameters
DstBuffersthe destination host buffers (one per DPU in the set)
SrcSymbolthe source DPU symbol
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [1/16]

void dpu::DpuSetOps::copyScatterGather ( const std::string &  DstSymbol,
unsigned  Offset,
get_block_t &  get_block_info,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
get_block_infothe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [2/16]

void dpu::DpuSetOps::copyScatterGather ( const std::string &  DstSymbol,
get_block_t &  get_block_info,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe name of the destination DPU symbol
get_block_infothe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffer
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [3/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( const std::string &  DstSymbol,
unsigned  Offset,
f,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe name of the destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
fthe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [4/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( const std::string &  DstSymbol,
f,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe name of the destination DPU symbol
fthe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [5/16]

void dpu::DpuSetOps::copyScatterGather ( DpuSymbol DstSymbol,
unsigned  Offset,
get_block_t &  get_block_info,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
get_block_infothe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers

◆ copyScatterGather() [6/16]

void dpu::DpuSetOps::copyScatterGather ( DpuSymbol DstSymbol,
get_block_t &  get_block_info,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe name of the destination DPU symbol
get_block_infothe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffer

◆ copyScatterGather() [7/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( DpuSymbol DstSymbol,
unsigned  Offset,
f,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe destination DPU symbol
Offsetoffset from the start of the symbol where to start the copy
fthe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers

◆ copyScatterGather() [8/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( DpuSymbol DstSymbol,
f,
unsigned  Size,
bool  length_check = true 
)
inline

Copy the different buffers to the DPUs in the set with a scatter/gather transfer.

Parameters
DstSymbolthe destination DPU symbol
fthe function to get the block information
Sizethe number of bytes to copy
length_checkcheck the length of the buffers

◆ copyScatterGather() [9/16]

void dpu::DpuSetOps::copyScatterGather ( get_block_t &  get_block_info,
unsigned  Size,
const std::string &  SrcSymbol,
unsigned  Offset,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
get_block_infothe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [10/16]

void dpu::DpuSetOps::copyScatterGather ( get_block_t &  get_block_info,
unsigned  Size,
const std::string &  SrcSymbol,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
get_block_infothe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [11/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( f,
unsigned  Size,
const std::string &  SrcSymbol,
unsigned  Offset,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
fthe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [12/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( f,
unsigned  Size,
const std::string &  SrcSymbol,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
fthe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [13/16]

void dpu::DpuSetOps::copyScatterGather ( get_block_t &  get_block_info,
unsigned  Size,
DpuSymbol SrcSymbol,
unsigned  Offset,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
get_block_infothe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [14/16]

void dpu::DpuSetOps::copyScatterGather ( get_block_t &  get_block_info,
unsigned  Size,
DpuSymbol SrcSymbol,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
get_block_infothe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [15/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( f,
unsigned  Size,
DpuSymbol SrcSymbol,
unsigned  Offset,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
fthe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
Offsetoffset from the start of the symbol where to start the copy
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ copyScatterGather() [16/16]

template<class F >
void dpu::DpuSetOps::copyScatterGather ( f,
unsigned  Size,
DpuSymbol SrcSymbol,
bool  length_check = true 
)
inline

Copy data from the DPUs in the set with a scatter-gather transfer.

Parameters
fthe callback function to get the destination buffers
Sizethe number of bytes to copy
SrcSymbolthe name of the source DPU symbol
length_checkcheck the length of the buffers
Exceptions
DpuErrorwhen the symbol is not big enough for the data

◆ exec()

void dpu::DpuSetOps::exec ( )
inline

Execute a DPU program.

Precondition
The DPU program must be previously loaded with DpuSet::load.
Exceptions
DpuErrorwhen the DPU execution triggers a fault.

The documentation for this class was generated from the following file: