Global Namespace

Overview

// namespaces

namespace std
namespace xf
    namespace xf::blas

// typedefs

typedef xf::blas::TimeStamp <BLAS_numInstr> TimeStampType

// macros

#define IDX2R( \
    i, \
    j, \
    ld \
    )

Global Functions

blasKernel

#include "xf_blas/kernel.hpp"
void blasKernel (
    DdrIntType* p_DdrRd,
    DdrIntType* p_DdrWr
    )

blasKernel is the uniform top function for blas function kernels with interfaces to DDR/HBM memories

Parameters:

p_DdrRd

the memory port for data loading

p_DdrWr

the memory port for data writing

xfblasFreeInstr

#include "xf_blas/api.hpp"
void xfblasFreeInstr (
    unsigned int kernelIndex,
    unsigned int deviceIndex
    )

This function frees instrution.

Parameters:

kernelIndex

index of kernel that is being used, default is 0

deviceIndex

index of device that is being used, default is 0

xfblasStatus_t

0 if the operation completed successfully

xfblasStatus_t

1 if the library was not initialized

xfblasDestroy

#include "xf_blas/api.hpp"
void xfblasDestroy (
    unsigned int kernelNumber,
    unsigned int deviceIndex
    )

This function releases handle used by the XFBLAS library.

Parameters:

kernelNumber

number of kernels that is being used, default is 1

deviceIndex

index of device that is being used, default is 0

xfblasStatus_t

0 if the shut down succeeded

xfblasStatus_t

1 if the library was not initialized

xfblasFree

#include "xf_blas/api.hpp"
void xfblasFree (
    void* A,
    unsigned int kernelIndex,
    unsigned int deviceIndex
    )

This function frees memory in FPGA device.

Parameters:

A

pointer to matrix A in the host memory

kernelIndex

index of kernel that is being used, default is 0

deviceIndex

index of device that is being used, default is 0

xfblasStatus_t

0 if the operation completed successfully

xfblasStatus_t

1 if the library was not initialized

xfblasStatus_t

3 if there is no FPGA device memory allocated for the matrix

xfblasGetByAddress

#include "xf_blas/api.hpp"
bool xfblasGetByAddress (
    void* A,
    unsigned long long p_bufSize,
    unsigned int offset,
    unsigned int kernelIndex,
    unsigned int deviceIndex
    )

This function copies a matrix in FPGA device memory to host memory by its address in device memory.

Parameters:

A

pointer to matrix A in the host memory

p_bufSize

size of matrix A

offset

A’s address in device memory

kernelIndex

index of kernel that is being used, default is 0

deviceIndex

index of device that is being used, default is 0

xfblasStatus_t

0 if the operation completed successfully

xfblasStatus_t

1 if the library was not initialized

xfblasStatus_t

3 if there is no FPGA device memory allocated for the matrix

xfblasExecuteAsync

#include "xf_blas/api.hpp"
void xfblasExecuteAsync (
    unsigned int numkernels,
    unsigned int deviceIndex
    )

This asynchronous function starts all kernels and wait until them finish.

Parameters:

numKernels

number of kernels that is being used, default is 1

deviceIndex

index of device that is being used, default is 0

xfblasExecute

#include "xf_blas/api.hpp"
bool xfblasExecute (
    unsigned int kernelIndex,
    unsigned int deviceIndex
    )

This function starts the kernel and wait until it finishes.

Parameters:

kernelIndex

index of kernel that is being used, default is 0

deviceIndex

index of device that is being used, default is 0

xfblasStatus_t

0 if the operation completed successfully

xfblasStatus_t

1 if the library was not initialized

xfblasStatus_t

3 if there is no FPGA device memory allocated for instrution