PULSAR  2.0.0
Parallel Ultra-Light Systolic Array Runtime
 All Data Structures Files Functions Typedefs Enumerations Macros Groups
prt_callback.c File Reference

PRT callback. More...

#include "prt_callback.h"

Go to the source code of this file.

Functions

prt_callback_finish_tprt_callback_finish_new (struct prt_packet_s *src_packet, struct prt_packet_s *dst_packet, struct prt_channel_s *channel)
 Creates a new callback data structure. This is for the callback that completes a local transfer. More...
 
void prt_callback_finish_delete (prt_callback_finish_t *callback)
 Destroys a callback data structure. This is for the callback that completes a local transfer. More...
 
void CUDART_CB prt_callback_finish_handler (cudaStream_t stream, cudaError_t status, void *clbck)
 Finishes a local transfer. Puts the packet in the channel after a local transfer finishes. Services host-to-device and device-to-host transfers. More...
 
prt_callback_queue_tprt_callback_queue_new (struct prt_packet_s *old_packet, struct prt_packet_s *src_packet, struct prt_channel_s *channel, prt_direction_t direction, int agent)
 Creates a new callback data structure. This is for the callback that queues a local transfer. More...
 
void prt_callback_queue_delete (prt_callback_queue_t *callback)
 Destroys a callback data structure. This is for the callback that queues a local transfer. More...
 
void CUDART_CB prt_callback_queue_handler (cudaStream_t stream, cudaError_t status, void *clbck)
 Queues a local transfer request. Services device-to-device requensts and MPI requests from a device. More...
 
prt_callback_release_tprt_callback_release_new (struct prt_vdp_s *vdp, struct prt_packet_s *packet)
 Creates a new callback data structure. This is for the callback that releases a device packet. More...
 
void prt_callback_release_delete (prt_callback_release_t *callback)
 Destroys a callback data structure. This is for the callback that releases a device packet. More...
 
void CUDART_CB prt_callback_release_handler (cudaStream_t stream, cudaError_t status, void *clbck)
 Releases a device packet. More...
 

Detailed Description

PRT callback.

Author
Jakub Kurzak

PULSAR Runtime http://icl.utk.edu/pulsar/ Copyright (C) 2012-2015 University of Tennessee.

Definition in file prt_callback.c.

Function Documentation

void prt_callback_finish_delete ( prt_callback_finish_t callback)

Destroys a callback data structure. This is for the callback that completes a local transfer.

Parameters
callback– The callback data structure to destroy.

Definition at line 45 of file prt_callback.c.

void CUDART_CB prt_callback_finish_handler ( cudaStream_t  stream,
cudaError_t  status,
void *  clbck 
)

Finishes a local transfer. Puts the packet in the channel after a local transfer finishes. Services host-to-device and device-to-host transfers.

Parameters
stream– The callback's stream.
status– The stream's status.
clbck– The callback data.

Definition at line 60 of file prt_callback.c.

prt_callback_finish_t* prt_callback_finish_new ( struct prt_packet_s src_packet,
struct prt_packet_s dst_packet,
struct prt_channel_s channel 
)

Creates a new callback data structure. This is for the callback that completes a local transfer.

Parameters
src_packet– The packet to release when the transfer completes.
dst_packet– The packet to place in the channel when the transfer completes.
channel– The channel to insert the packet into.
Returns
A new callback data structure.

Definition at line 24 of file prt_callback.c.

void prt_callback_queue_delete ( prt_callback_queue_t callback)

Destroys a callback data structure. This is for the callback that queues a local transfer.

Parameters
callback– The callback data structure to destroy.

Definition at line 129 of file prt_callback.c.

void CUDART_CB prt_callback_queue_handler ( cudaStream_t  stream,
cudaError_t  status,
void *  clbck 
)

Queues a local transfer request. Services device-to-device requensts and MPI requests from a device.

Parameters
stream– The callback's stream.
status– The stream's status.
clbck– The callback data.

Definition at line 143 of file prt_callback.c.

prt_callback_queue_t* prt_callback_queue_new ( struct prt_packet_s old_packet,
struct prt_packet_s src_packet,
struct prt_channel_s channel,
prt_direction_t  direction,
int  agent 
)

Creates a new callback data structure. This is for the callback that queues a local transfer.

Parameters
old_packet– The packet to release when the transfer completes.
src_packet– The packet to use for the followup transfer request.
channel– The channel to use for the followup transfer request.
direction– The direction of the followup transfer request.
Returns
A new callback data structure.

Definition at line 104 of file prt_callback.c.

void prt_callback_release_delete ( prt_callback_release_t callback)

Destroys a callback data structure. This is for the callback that releases a device packet.

Parameters
callback– The callback data structure to be destroyed.

Definition at line 210 of file prt_callback.c.

void CUDART_CB prt_callback_release_handler ( cudaStream_t  stream,
cudaError_t  status,
void *  clbck 
)

Releases a device packet.

Parameters
stream– The callback's stream.
status– The stream's status.
clbck– The callback data.

Definition at line 223 of file prt_callback.c.

prt_callback_release_t* prt_callback_release_new ( struct prt_vdp_s vdp,
struct prt_packet_s packet 
)

Creates a new callback data structure. This is for the callback that releases a device packet.

Parameters
vdp– The VDP releasing the packet.
packet– The packet to release.
Returns
A new callback data structure.

Definition at line 191 of file prt_callback.c.