# Sanitizer Memory API

## Functions
SanitizerResult SANITIZERAPI | sanitizerAlloc (CUcontext ctx, void **devPtr, size_t size)
| Allocate memory on the device.
SanitizerResult SANITIZERAPI | sanitizerFree (CUcontext ctx, void *devPtr)
| Frees memory on the device.
SanitizerResult SANITIZERAPI | sanitizerMemcpyDeviceToHost (void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
| Copies data from device to host.
SanitizerResult SANITIZERAPI | sanitizerMemcpyHostToDeviceAsync (void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
| Copies data from host to device.
SanitizerResult SANITIZERAPI | sanitizerMemset (void *devPtr, int value, size_t count, Sanitizer_StreamHandle stream)
| Initializes or sets device memory to a value.

## Detailed Description

Functions, types, and enums that implement the Sanitizer Memory API.

## Function Documentation

SanitizerResult SANITIZERAPI sanitizerAlloc | ( | CUcontext | ctx,
|  | void ** | devPtr,
|  | size_t | size |
| ) |  |  |

Equivalent of cudaMalloc that can be called within a callback function.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | ctx | Context for the allocation. If NULL, the current context will be used.
  | devPtr | Pointer to allocated device memory
  | size | Allocation size in bytes

SanitizerResult SANITIZERAPI sanitizerFree | ( | CUcontext | ctx,
|  | void * | devPtr |
| ) |  |  |

Equivalent of cudaFree that can be called within a callback function.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | ctx | Context for the allocation. If NULL, the current context will be used.
  | devPtr | Device pointer to memory to free

SanitizerResult SANITIZERAPI sanitizerMemcpyDeviceToHost | ( | void * | dst,
|  | void * | src,
|  | size_t | count,
|  | Sanitizer_StreamHandle | stream |
| ) |  |  |

Equivalent of cudaMemcpy that can be called within a callback function. The function will return once the copy has completed. If the function is called from a SANITIZER_CB_DOMAIN_LAUNCH callback, only pinned host memory may be used as destination.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | dst | Destination memory address
  | src | Source memory address
  | count | Size in bytes to copy
  | stream | Stream handle. If NULL, the NULL stream will be used.

SanitizerResult SANITIZERAPI sanitizerMemcpyHostToDeviceAsync | ( | void * | dst,
|  | void * | src,
|  | size_t | count,
|  | Sanitizer_StreamHandle | stream |
| ) |  |  |

Equivalent of cudaMemcpyAsync that can be called within a callback function. The function will return once the pageable buffer has been copied to the staging memory for DMA transfer to device memory, but the DMA to final destination may not have completed.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | dst | Destination memory address
  | src | Source memory address
  | count | Size in bytes to copy
  | stream | Stream handle. If NULL, the NULL stream will be used.

SanitizerResult SANITIZERAPI sanitizerMemset | ( | void * | devPtr,
|  | int | value,
|  | size_t | count,
|  | Sanitizer_StreamHandle | stream |
| ) |  |  |

Equivalent of cudaMemset that can be called within a callback function.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | devPtr | Pointer to device memory
  | value | value to set for each byte of specified memory
  | count | Size in bytes to set
  | stream | Stream handle. If NULL, the NULL stream will be used.