L3 APIs

class FPGA

#include "fpga_xrt.hpp"

class FPGA is used to manage FPGA info

// fields

xclDeviceHandle m_handle
uuid_t m_xclbinId

template class BackwardKernel

#include "fpga_xrt.hpp"

Overview

class BackwardKernel is used to manage and run backward kernel on FPGA

template <
    typename t_DataType,
    unsigned int t_Order,
    unsigned int t_PE
    >
class BackwardKernel

// typedefs

typedef WideData <t_DataType, t_PE> t_WideType
typedef WideData <t_WideType, 2> t_PairType

// fields

static const unsigned int _4k

Methods

loadData

void loadData (const string filePath)

loadData load parameters for RTM backward kernel from given path

Parameters:

filePath the path where parameters are stored

run

double run (
    unsigned int p_shot,
    const AlignMem <t_PairType>& p_snaps,
    const AlignMem <t_DataType>& p_upb,
    AlignMem <t_PairType>& p_p,
    AlignMem <t_PairType>& p_r,
    AlignMem <t_DataType>& p_i
    )

run launch the RTM backward kernel with given input parameters

Parameters:

p_shot the shot id
p_upb the upper boundary data
p_snaps input seismic snapshot
p_p output seismic source wavefiled
p_r output seismic receiver wavefiled
p_i output seismic image

before_run

void before_run (
    unsigned int p_shot,
    const AlignMem <t_PairType>& p_snaps,
    const AlignMem <t_DataType>& p_upb,
    AlignMem <t_PairType>& p_p,
    AlignMem <t_PairType>& p_r,
    AlignMem <t_DataType>& p_i,
    AlignMem <t_PairType>& l_p0,
    AlignMem <t_PairType>& l_r0,
    AlignMem <t_DataType>& l_i0
    )

run launch the RTM backward kernel with given input parameters (in order to support multi-kernel, run function is split to before run and after_run)

after_run

void after_run (
    AlignMem <t_PairType>& p_p,
    AlignMem <t_PairType>& p_r,
    AlignMem <t_DataType>& p_i,
    AlignMem <t_PairType>& l_p0,
    AlignMem <t_PairType>& l_r0,
    AlignMem <t_DataType>& l_i0
    )

run launch the RTM backward kernel with given input parameters (in order to support multi-kernel, run function is split to before run and after_run)

template class ForwardKernel

#include "fpga_xrt.hpp"

Overview

class ForwardKernel is used to manage and run forward kernel on FPGA

template <
    typename t_DataType,
    unsigned int t_Order,
    unsigned int t_PE
    >
class ForwardKernel

// typedefs

typedef WideData <t_DataType, t_PE> t_WideType
typedef WideData <t_WideType, 2> t_PairType

// fields

static const unsigned int _4k

Methods

loadData

void loadData (const string filePath)

loadData load parameters for RTM forward kernel from given path

Parameters:

filePath the path where parameters are stored

run

double run (
    unsigned int p_shot,
    unsigned int p_sx,
    AlignMem <t_PairType>& p_p,
    AlignMem <t_DataType>& p_upb
    )

run launch the RTM forward kernel with given input parameters

Parameters:

p_shot the shot id
p_sx the shot coordinate
p_p seismic snapshot
p_upb the upper boundary data

before_run

void before_run (
    unsigned int p_shot,
    unsigned int p_sx,
    AlignMem <t_PairType>& l_p0,
    AlignMem <t_DataType>& l_upb
    )

run launch the RTM forward kernel with given input parameters (in order to support multi-kernel, run function is split to before run and after_run)

after_run

void after_run (
    AlignMem <t_PairType>& p_p,
    AlignMem <t_DataType>& p_upb,
    AlignMem <t_PairType>& l_p0,
    AlignMem <t_DataType>& l_upb
    )

run launch the RTM forward kernel with given input parameters (in order to support multi-kernel, run function is split to before run and after_run)