Astaroth  2.2
astaroth.h File Reference
#include <cuda_runtime_api.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
#include "user_defines.h"
+ Include dependency graph for astaroth.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AcMatrix
 
struct  AcMeshInfo
 
struct  AcMesh
 
struct  Grid
 
struct  DeviceConfiguration
 

Macros

#define STENCIL_ORDER   (6)
 
#define NGHOST   (STENCIL_ORDER / 2)
 
#define VERBOSE_PRINTING   (1)
 
#define AC_REAL_MAX   (FLT_MAX)
 
#define AC_REAL_MIN   (FLT_MIN)
 
#define AC_REAL_EPSILON   (FLT_EPSILON)
 
#define STREAM_ALL   (NUM_STREAMS)
 
#define AC_GEN_ID(X)   X,
 
#define _UNUSED   __attribute__((unused))
 
#define AC_GEN_STR(X)   #X,
 

Typedefs

typedef float AcReal
 
typedef float3 AcReal3
 
typedef struct device_sDevice
 
typedef struct node_sNode
 

Enumerations

enum  AcResult { AC_SUCCESS = 0, AC_FAILURE = 1 }
 
enum  ReductionType {
  RTYPE_MAX, RTYPE_MIN, RTYPE_RMS, RTYPE_RMS_EXP,
  RTYPE_SUM, NUM_REDUCTION_TYPES
}
 
enum  Stream {
  STREAM_DEFAULT, STREAM_0, STREAM_1, STREAM_2,
  STREAM_3, STREAM_4, STREAM_5, STREAM_6,
  STREAM_7, STREAM_8, STREAM_9, STREAM_10,
  STREAM_11, STREAM_12, STREAM_13, STREAM_14,
  STREAM_15, STREAM_16, NUM_STREAMS
}
 
enum  AcIntParam { AC_FOR_USER_INT_PARAM_TYPES }
 
enum  AcInt3Param { AC_FOR_USER_INT3_PARAM_TYPES }
 
enum  AcRealParam { AC_FOR_USER_REAL_PARAM_TYPES }
 
enum  AcReal3Param { AC_FOR_USER_REAL3_PARAM_TYPES }
 
enum  ScalarArrayHandle { AC_FOR_SCALARARRAY_HANDLES }
 
enum  VertexBufferHandle { AC_FOR_VTXBUF_HANDLES }
 

Functions

AcResult acInit (const AcMeshInfo mesh_info)
 
AcResult acQuit (void)
 
AcResult acCheckDeviceAvailability (void)
 
AcResult acSynchronizeStream (const Stream stream)
 
AcResult acSynchronizeMesh (void)
 
AcResult acLoadDeviceConstant (const AcRealParam param, const AcReal value)
 
AcResult acLoad (const AcMesh host_mesh)
 
AcResult acStore (AcMesh *host_mesh)
 
AcResult acIntegrate (const AcReal dt)
 
AcResult acBoundcondStep (void)
 
AcReal acReduceScal (const ReductionType rtype, const VertexBufferHandle vtxbuf_handle)
 
AcReal acReduceVec (const ReductionType rtype, const VertexBufferHandle a, const VertexBufferHandle b, const VertexBufferHandle c)
 
AcResult acStoreWithOffset (const int3 dst, const size_t num_vertices, AcMesh *host_mesh)
 
AcResult acIntegrateStep (const int isubstep, const AcReal dt)
 
AcResult acIntegrateStepWithOffset (const int isubstep, const AcReal dt, const int3 start, const int3 end)
 
AcResult acSynchronize (void)
 
AcResult acLoadWithOffset (const AcMesh host_mesh, const int3 src, const int num_vertices)
 
int acGetNumDevicesPerNode (void)
 
Node acGetNode (void)
 
AcResult acNodeCreate (const int id, const AcMeshInfo node_config, Node *node)
 
AcResult acNodeDestroy (Node node)
 
AcResult acNodePrintInfo (const Node node)
 
AcResult acNodeQueryDeviceConfiguration (const Node node, DeviceConfiguration *config)
 
AcResult acNodeAutoOptimize (const Node node)
 
AcResult acNodeSynchronizeStream (const Node node, const Stream stream)
 
AcResult acNodeSynchronizeVertexBuffer (const Node node, const Stream stream, const VertexBufferHandle vtxbuf_handle)
 
AcResult acNodeSynchronizeMesh (const Node node, const Stream stream)
 
AcResult acNodeSwapBuffers (const Node node)
 
AcResult acNodeLoadConstant (const Node node, const Stream stream, const AcRealParam param, const AcReal value)
 
AcResult acNodeLoadVertexBufferWithOffset (const Node node, const Stream stream, const AcMesh host_mesh, const VertexBufferHandle vtxbuf_handle, const int3 src, const int3 dst, const int num_vertices)
 
AcResult acNodeLoadMeshWithOffset (const Node node, const Stream stream, const AcMesh host_mesh, const int3 src, const int3 dst, const int num_vertices)
 
AcResult acNodeLoadVertexBuffer (const Node node, const Stream stream, const AcMesh host_mesh, const VertexBufferHandle vtxbuf_handle)
 
AcResult acNodeLoadMesh (const Node node, const Stream stream, const AcMesh host_mesh)
 
AcResult acNodeStoreVertexBufferWithOffset (const Node node, const Stream stream, const VertexBufferHandle vtxbuf_handle, const int3 src, const int3 dst, const int num_vertices, AcMesh *host_mesh)
 
AcResult acNodeStoreMeshWithOffset (const Node node, const Stream stream, const int3 src, const int3 dst, const int num_vertices, AcMesh *host_mesh)
 
AcResult acNodeStoreVertexBuffer (const Node node, const Stream stream, const VertexBufferHandle vtxbuf_handle, AcMesh *host_mesh)
 
AcResult acNodeStoreMesh (const Node node, const Stream stream, AcMesh *host_mesh)
 
AcResult acNodeIntegrateSubstep (const Node node, const Stream stream, const int step_number, const int3 start, const int3 end, const AcReal dt)
 
AcResult acNodeIntegrate (const Node node, const AcReal dt)
 
AcResult acNodePeriodicBoundcondStep (const Node node, const Stream stream, const VertexBufferHandle vtxbuf_handle)
 
AcResult acNodePeriodicBoundconds (const Node node, const Stream stream)
 
AcResult acNodeReduceScal (const Node node, const Stream stream, const ReductionType rtype, const VertexBufferHandle vtxbuf_handle, AcReal *result)
 
AcResult acNodeReduceVec (const Node node, const Stream stream_type, const ReductionType rtype, const VertexBufferHandle vtxbuf0, const VertexBufferHandle vtxbuf1, const VertexBufferHandle vtxbuf2, AcReal *result)
 
AcResult acDeviceCreate (const int id, const AcMeshInfo device_config, Device *device)
 
AcResult acDeviceDestroy (Device device)
 
AcResult acDevicePrintInfo (const Device device)
 
AcResult acDeviceAutoOptimize (const Device device)
 
AcResult acDeviceSynchronizeStream (const Device device, const Stream stream)
 
AcResult acDeviceSwapBuffers (const Device device)
 
AcResult acDeviceLoadScalarUniform (const Device device, const Stream stream, const AcRealParam param, const AcReal value)
 
AcResult acDeviceLoadVectorUniform (const Device device, const Stream stream, const AcReal3Param param, const AcReal3 value)
 
AcResult acDeviceLoadIntUniform (const Device device, const Stream stream, const AcIntParam param, const int value)
 
AcResult acDeviceLoadInt3Uniform (const Device device, const Stream stream, const AcInt3Param param, const int3 value)
 
AcResult acDeviceLoadScalarArray (const Device device, const Stream stream, const ScalarArrayHandle handle, const size_t start, const AcReal *data, const size_t num)
 
AcResult acDeviceLoadMeshInfo (const Device device, const AcMeshInfo device_config)
 
AcResult acDeviceLoadDefaultUniforms (const Device device)
 
AcResult acDeviceLoadVertexBufferWithOffset (const Device device, const Stream stream, const AcMesh host_mesh, const VertexBufferHandle vtxbuf_handle, const int3 src, const int3 dst, const int num_vertices)
 
AcResult acDeviceLoadMeshWithOffset (const Device device, const Stream stream, const AcMesh host_mesh, const int3 src, const int3 dst, const int num_vertices)
 
AcResult acDeviceLoadVertexBuffer (const Device device, const Stream stream, const AcMesh host_mesh, const VertexBufferHandle vtxbuf_handle)
 
AcResult acDeviceLoadMesh (const Device device, const Stream stream, const AcMesh host_mesh)
 
AcResult acDeviceStoreVertexBufferWithOffset (const Device device, const Stream stream, const VertexBufferHandle vtxbuf_handle, const int3 src, const int3 dst, const int num_vertices, AcMesh *host_mesh)
 
AcResult acDeviceStoreMeshWithOffset (const Device device, const Stream stream, const int3 src, const int3 dst, const int num_vertices, AcMesh *host_mesh)
 
AcResult acDeviceStoreVertexBuffer (const Device device, const Stream stream, const VertexBufferHandle vtxbuf_handle, AcMesh *host_mesh)
 
AcResult acDeviceStoreMesh (const Device device, const Stream stream, AcMesh *host_mesh)
 
AcResult acDeviceTransferVertexBufferWithOffset (const Device src_device, const Stream stream, const VertexBufferHandle vtxbuf_handle, const int3 src, const int3 dst, const int num_vertices, Device dst_device)
 
AcResult acDeviceTransferMeshWithOffset (const Device src_device, const Stream stream, const int3 src, const int3 dst, const int num_vertices, Device *dst_device)
 
AcResult acDeviceTransferVertexBuffer (const Device src_device, const Stream stream, const VertexBufferHandle vtxbuf_handle, Device dst_device)
 
AcResult acDeviceTransferMesh (const Device src_device, const Stream stream, Device dst_device)
 
AcResult acDeviceIntegrateSubstep (const Device device, const Stream stream, const int step_number, const int3 start, const int3 end, const AcReal dt)
 
AcResult acDevicePeriodicBoundcondStep (const Device device, const Stream stream, const VertexBufferHandle vtxbuf_handle, const int3 start, const int3 end)
 
AcResult acDevicePeriodicBoundconds (const Device device, const Stream stream, const int3 start, const int3 end)
 
AcResult acDeviceReduceScal (const Device device, const Stream stream, const ReductionType rtype, const VertexBufferHandle vtxbuf_handle, AcReal *result)
 
AcResult acDeviceReduceVec (const Device device, const Stream stream_type, const ReductionType rtype, const VertexBufferHandle vtxbuf0, const VertexBufferHandle vtxbuf1, const VertexBufferHandle vtxbuf2, AcReal *result)
 
AcResult acDeviceRunMPITest (void)
 

Macro Definition Documentation

◆ _UNUSED

#define _UNUSED   __attribute__((unused))

◆ AC_GEN_ID

#define AC_GEN_ID (   X)    X,

◆ AC_GEN_STR

#define AC_GEN_STR (   X)    #X,

◆ AC_REAL_EPSILON

#define AC_REAL_EPSILON   (FLT_EPSILON)

◆ AC_REAL_MAX

#define AC_REAL_MAX   (FLT_MAX)

◆ AC_REAL_MIN

#define AC_REAL_MIN   (FLT_MIN)

◆ NGHOST

#define NGHOST   (STENCIL_ORDER / 2)

◆ STENCIL_ORDER

#define STENCIL_ORDER   (6)

◆ STREAM_ALL

#define STREAM_ALL   (NUM_STREAMS)

◆ VERBOSE_PRINTING

#define VERBOSE_PRINTING   (1)

Typedef Documentation

◆ AcReal

typedef float AcReal

◆ AcReal3

typedef float3 AcReal3

◆ Device

typedef struct device_s* Device

◆ Node

typedef struct node_s* Node

Enumeration Type Documentation

◆ AcInt3Param

Enumerator
AC_FOR_USER_INT3_PARAM_TYPES 

◆ AcIntParam

enum AcIntParam
Enumerator
AC_FOR_USER_INT_PARAM_TYPES 

◆ AcReal3Param

Enumerator
AC_FOR_USER_REAL3_PARAM_TYPES 

◆ AcRealParam

Enumerator
AC_FOR_USER_REAL_PARAM_TYPES 

◆ AcResult

enum AcResult
Enumerator
AC_SUCCESS 
AC_FAILURE 

◆ ReductionType

Enumerator
RTYPE_MAX 
RTYPE_MIN 
RTYPE_RMS 
RTYPE_RMS_EXP 
RTYPE_SUM 
NUM_REDUCTION_TYPES 

◆ ScalarArrayHandle

Enumerator
AC_FOR_SCALARARRAY_HANDLES 

◆ Stream

enum Stream
Enumerator
STREAM_DEFAULT 
STREAM_0 
STREAM_1 
STREAM_2 
STREAM_3 
STREAM_4 
STREAM_5 
STREAM_6 
STREAM_7 
STREAM_8 
STREAM_9 
STREAM_10 
STREAM_11 
STREAM_12 
STREAM_13 
STREAM_14 
STREAM_15 
STREAM_16 
NUM_STREAMS 

◆ VertexBufferHandle

Enumerator
AC_FOR_VTXBUF_HANDLES 

Function Documentation

◆ acBoundcondStep()

AcResult acBoundcondStep ( void  )

Applies periodic boundary conditions for the Mesh distributed among the devices visible to the caller

◆ acCheckDeviceAvailability()

AcResult acCheckDeviceAvailability ( void  )

Checks whether there are any CUDA devices available. Returns AC_SUCCESS if there is 1 or more, AC_FAILURE otherwise.

◆ acDeviceAutoOptimize()

AcResult acDeviceAutoOptimize ( const Device  device)

◆ acDeviceCreate()

AcResult acDeviceCreate ( const int  id,
const AcMeshInfo  device_config,
Device device 
)

◆ acDeviceDestroy()

AcResult acDeviceDestroy ( Device  device)

◆ acDeviceIntegrateSubstep()

AcResult acDeviceIntegrateSubstep ( const Device  device,
const Stream  stream,
const int  step_number,
const int3  start,
const int3  end,
const AcReal  dt 
)

◆ acDeviceLoadDefaultUniforms()

AcResult acDeviceLoadDefaultUniforms ( const Device  device)

◆ acDeviceLoadInt3Uniform()

AcResult acDeviceLoadInt3Uniform ( const Device  device,
const Stream  stream,
const AcInt3Param  param,
const int3  value 
)

◆ acDeviceLoadIntUniform()

AcResult acDeviceLoadIntUniform ( const Device  device,
const Stream  stream,
const AcIntParam  param,
const int  value 
)

◆ acDeviceLoadMesh()

AcResult acDeviceLoadMesh ( const Device  device,
const Stream  stream,
const AcMesh  host_mesh 
)

◆ acDeviceLoadMeshInfo()

AcResult acDeviceLoadMeshInfo ( const Device  device,
const AcMeshInfo  device_config 
)

◆ acDeviceLoadMeshWithOffset()

AcResult acDeviceLoadMeshWithOffset ( const Device  device,
const Stream  stream,
const AcMesh  host_mesh,
const int3  src,
const int3  dst,
const int  num_vertices 
)

Deprecated

◆ acDeviceLoadScalarArray()

AcResult acDeviceLoadScalarArray ( const Device  device,
const Stream  stream,
const ScalarArrayHandle  handle,
const size_t  start,
const AcReal data,
const size_t  num 
)

◆ acDeviceLoadScalarUniform()

AcResult acDeviceLoadScalarUniform ( const Device  device,
const Stream  stream,
const AcRealParam  param,
const AcReal  value 
)

◆ acDeviceLoadVectorUniform()

AcResult acDeviceLoadVectorUniform ( const Device  device,
const Stream  stream,
const AcReal3Param  param,
const AcReal3  value 
)

◆ acDeviceLoadVertexBuffer()

AcResult acDeviceLoadVertexBuffer ( const Device  device,
const Stream  stream,
const AcMesh  host_mesh,
const VertexBufferHandle  vtxbuf_handle 
)

◆ acDeviceLoadVertexBufferWithOffset()

AcResult acDeviceLoadVertexBufferWithOffset ( const Device  device,
const Stream  stream,
const AcMesh  host_mesh,
const VertexBufferHandle  vtxbuf_handle,
const int3  src,
const int3  dst,
const int  num_vertices 
)

◆ acDevicePeriodicBoundconds()

AcResult acDevicePeriodicBoundconds ( const Device  device,
const Stream  stream,
const int3  start,
const int3  end 
)

◆ acDevicePeriodicBoundcondStep()

AcResult acDevicePeriodicBoundcondStep ( const Device  device,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
const int3  start,
const int3  end 
)

◆ acDevicePrintInfo()

AcResult acDevicePrintInfo ( const Device  device)

! printf(" Total const mem: %ld KiB\n", props.totalConstMem / (1024)); ! printf(" Shared mem per block: %ld KiB\n", props.sharedMemPerBlock / (1024));

◆ acDeviceReduceScal()

AcResult acDeviceReduceScal ( const Device  device,
const Stream  stream,
const ReductionType  rtype,
const VertexBufferHandle  vtxbuf_handle,
AcReal result 
)

◆ acDeviceReduceVec()

AcResult acDeviceReduceVec ( const Device  device,
const Stream  stream_type,
const ReductionType  rtype,
const VertexBufferHandle  vtxbuf0,
const VertexBufferHandle  vtxbuf1,
const VertexBufferHandle  vtxbuf2,
AcReal result 
)

◆ acDeviceRunMPITest()

AcResult acDeviceRunMPITest ( void  )

◆ acDeviceStoreMesh()

AcResult acDeviceStoreMesh ( const Device  device,
const Stream  stream,
AcMesh host_mesh 
)

◆ acDeviceStoreMeshWithOffset()

AcResult acDeviceStoreMeshWithOffset ( const Device  device,
const Stream  stream,
const int3  src,
const int3  dst,
const int  num_vertices,
AcMesh host_mesh 
)

Deprecated

◆ acDeviceStoreVertexBuffer()

AcResult acDeviceStoreVertexBuffer ( const Device  device,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
AcMesh host_mesh 
)

◆ acDeviceStoreVertexBufferWithOffset()

AcResult acDeviceStoreVertexBufferWithOffset ( const Device  device,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
const int3  src,
const int3  dst,
const int  num_vertices,
AcMesh host_mesh 
)

◆ acDeviceSwapBuffers()

AcResult acDeviceSwapBuffers ( const Device  device)

◆ acDeviceSynchronizeStream()

AcResult acDeviceSynchronizeStream ( const Device  device,
const Stream  stream 
)

◆ acDeviceTransferMesh()

AcResult acDeviceTransferMesh ( const Device  src_device,
const Stream  stream,
Device  dst_device 
)

◆ acDeviceTransferMeshWithOffset()

AcResult acDeviceTransferMeshWithOffset ( const Device  src_device,
const Stream  stream,
const int3  src,
const int3  dst,
const int  num_vertices,
Device dst_device 
)

Deprecated

◆ acDeviceTransferVertexBuffer()

AcResult acDeviceTransferVertexBuffer ( const Device  src_device,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
Device  dst_device 
)

◆ acDeviceTransferVertexBufferWithOffset()

AcResult acDeviceTransferVertexBufferWithOffset ( const Device  src_device,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
const int3  src,
const int3  dst,
const int  num_vertices,
Device  dst_device 
)

◆ acGetNode()

Node acGetNode ( void  )

◆ acGetNumDevicesPerNode()

int acGetNumDevicesPerNode ( void  )

◆ acInit()

AcResult acInit ( const AcMeshInfo  mesh_info)

Allocates all memory and initializes the devices visible to the caller. Should be called before any other function in this interface.

◆ acIntegrate()

AcResult acIntegrate ( const AcReal  dt)

Performs Runge-Kutta 3 integration. Note: Boundary conditions are not applied after the final substep and the user is responsible for calling acBoundcondStep before reading the data.

◆ acIntegrateStep()

AcResult acIntegrateStep ( const int  isubstep,
const AcReal  dt 
)

Will potentially be deprecated in later versions. Added only to fix backwards compatibility with PC for now.

◆ acIntegrateStepWithOffset()

AcResult acIntegrateStepWithOffset ( const int  isubstep,
const AcReal  dt,
const int3  start,
const int3  end 
)

◆ acLoad()

AcResult acLoad ( const AcMesh  host_mesh)

Loads an AcMesh to the devices visible to the caller

◆ acLoadDeviceConstant()

AcResult acLoadDeviceConstant ( const AcRealParam  param,
const AcReal  value 
)

Loads a constant to the memories of the devices visible to the caller

◆ acLoadWithOffset()

AcResult acLoadWithOffset ( const AcMesh  host_mesh,
const int3  src,
const int  num_vertices 
)

◆ acNodeAutoOptimize()

AcResult acNodeAutoOptimize ( const Node  node)

◆ acNodeCreate()

AcResult acNodeCreate ( const int  id,
const AcMeshInfo  node_config,
Node node 
)

Initializes all devices on the current node.

Devices on the node are configured based on the contents of AcMesh.

Returns
Exit status. Places the newly created handle in the output parameter.
See also
AcMeshInfo

Usage example:

acLoadConfig(AC_DEFAULT_CONFIG, &info);
Node node;
acNodeCreate(0, info, &node);

◆ acNodeDestroy()

AcResult acNodeDestroy ( Node  node)

Resets all devices on the current node.

See also
acNodeCreate()

◆ acNodeIntegrate()

AcResult acNodeIntegrate ( const Node  node,
const AcReal  dt 
)

◆ acNodeIntegrateSubstep()

AcResult acNodeIntegrateSubstep ( const Node  node,
const Stream  stream,
const int  step_number,
const int3  start,
const int3  end,
const AcReal  dt 
)

◆ acNodeLoadConstant()

AcResult acNodeLoadConstant ( const Node  node,
const Stream  stream,
const AcRealParam  param,
const AcReal  value 
)

◆ acNodeLoadMesh()

AcResult acNodeLoadMesh ( const Node  node,
const Stream  stream,
const AcMesh  host_mesh 
)

◆ acNodeLoadMeshWithOffset()

AcResult acNodeLoadMeshWithOffset ( const Node  node,
const Stream  stream,
const AcMesh  host_mesh,
const int3  src,
const int3  dst,
const int  num_vertices 
)

◆ acNodeLoadVertexBuffer()

AcResult acNodeLoadVertexBuffer ( const Node  node,
const Stream  stream,
const AcMesh  host_mesh,
const VertexBufferHandle  vtxbuf_handle 
)

Deprecated ?

◆ acNodeLoadVertexBufferWithOffset()

AcResult acNodeLoadVertexBufferWithOffset ( const Node  node,
const Stream  stream,
const AcMesh  host_mesh,
const VertexBufferHandle  vtxbuf_handle,
const int3  src,
const int3  dst,
const int  num_vertices 
)

Deprecated ? Might be useful though if the user wants to load only one vtxbuf. But in this case the user should supply a AcReal* instead of vtxbuf_handle

◆ acNodePeriodicBoundconds()

AcResult acNodePeriodicBoundconds ( const Node  node,
const Stream  stream 
)

◆ acNodePeriodicBoundcondStep()

AcResult acNodePeriodicBoundcondStep ( const Node  node,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle 
)

◆ acNodePrintInfo()

AcResult acNodePrintInfo ( const Node  node)

Prints information about the devices available on the current node.

Requires that Node has been initialized with @See acNodeCreate().

◆ acNodeQueryDeviceConfiguration()

AcResult acNodeQueryDeviceConfiguration ( const Node  node,
DeviceConfiguration config 
)

◆ acNodeReduceScal()

AcResult acNodeReduceScal ( const Node  node,
const Stream  stream,
const ReductionType  rtype,
const VertexBufferHandle  vtxbuf_handle,
AcReal result 
)

◆ acNodeReduceVec()

AcResult acNodeReduceVec ( const Node  node,
const Stream  stream_type,
const ReductionType  rtype,
const VertexBufferHandle  vtxbuf0,
const VertexBufferHandle  vtxbuf1,
const VertexBufferHandle  vtxbuf2,
AcReal result 
)

◆ acNodeStoreMesh()

AcResult acNodeStoreMesh ( const Node  node,
const Stream  stream,
AcMesh host_mesh 
)

◆ acNodeStoreMeshWithOffset()

AcResult acNodeStoreMeshWithOffset ( const Node  node,
const Stream  stream,
const int3  src,
const int3  dst,
const int  num_vertices,
AcMesh host_mesh 
)

◆ acNodeStoreVertexBuffer()

AcResult acNodeStoreVertexBuffer ( const Node  node,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
AcMesh host_mesh 
)

Deprecated ?

◆ acNodeStoreVertexBufferWithOffset()

AcResult acNodeStoreVertexBufferWithOffset ( const Node  node,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle,
const int3  src,
const int3  dst,
const int  num_vertices,
AcMesh host_mesh 
)

Deprecated ?

◆ acNodeSwapBuffers()

AcResult acNodeSwapBuffers ( const Node  node)

◆ acNodeSynchronizeMesh()

AcResult acNodeSynchronizeMesh ( const Node  node,
const Stream  stream 
)

◆ acNodeSynchronizeStream()

AcResult acNodeSynchronizeStream ( const Node  node,
const Stream  stream 
)

◆ acNodeSynchronizeVertexBuffer()

AcResult acNodeSynchronizeVertexBuffer ( const Node  node,
const Stream  stream,
const VertexBufferHandle  vtxbuf_handle 
)

Deprecated ?

◆ acQuit()

AcResult acQuit ( void  )

Frees all GPU allocations and resets all devices in the node. Should be called at exit.

◆ acReduceScal()

AcReal acReduceScal ( const ReductionType  rtype,
const VertexBufferHandle  vtxbuf_handle 
)

Does a scalar reduction with the data stored in some vertex buffer

◆ acReduceVec()

AcReal acReduceVec ( const ReductionType  rtype,
const VertexBufferHandle  a,
const VertexBufferHandle  b,
const VertexBufferHandle  c 
)

Does a vector reduction with vertex buffers where the vector components are (a, b, c)

◆ acStore()

AcResult acStore ( AcMesh host_mesh)

Stores the AcMesh distributed among the devices visible to the caller back to the host

◆ acStoreWithOffset()

AcResult acStoreWithOffset ( const int3  dst,
const size_t  num_vertices,
AcMesh host_mesh 
)

Stores a subset of the mesh stored across the devices visible to the caller back to host memory.

◆ acSynchronize()

AcResult acSynchronize ( void  )

◆ acSynchronizeMesh()

AcResult acSynchronizeMesh ( void  )

◆ acSynchronizeStream()

AcResult acSynchronizeStream ( const Stream  stream)

Synchronizes a specific stream. All streams are synchronized if STREAM_ALL is passed as a parameter

node_s
Definition: node.cc:133
acNodeDestroy
AcResult acNodeDestroy(Node node)
Definition: node.cc:309
AcMeshInfo
Definition: astaroth.h:128
acNodeCreate
AcResult acNodeCreate(const int id, const AcMeshInfo node_config, Node *node)
Definition: node.cc:210
acLoadConfig
AcResult acLoadConfig(const char *config_path, AcMeshInfo *config)
Loads data from astaroth.conf into a config struct.
Definition: config_loader.c:118