cudaError_t cudaMemcpy (void *p1, const void *p2, size_t p3, enum cudaMemcpyKind p4)
{
	cudaError_t res;

#if defined(DEBUG)
	fprintf (stderr, PACKAGE_NAME": THREAD %d cudaMemcpy is at %p\n", THREADID, real_cudaMemcpy);
	fprintf (stderr, PACKAGE_NAME": THREAD %d cudaMemcpy params %p %p %d %d\n", THREADID, p1, p2, p3, p4);
#endif

	if (real_cudaMemcpy != NULL && mpitrace_on && Extrae_get_trace_CUDA())
	{
		Extrae_cudaMemcpy_Enter (p1, p2, p3, p4);
		res = real_cudaMemcpy (p1, p2, p3, p4);
		Extrae_cudaMemcpy_Exit ();
	}
	else if (real_cudaMemcpy != NULL && !(mpitrace_on && Extrae_get_trace_CUDA()))
	{
		res = real_cudaMemcpy (p1, p2, p3, p4);
	}
	else
	{
		fprintf (stderr, "Unable to find cudaMemcpy in DSOs!! Dying...\n");
		exit (0);
	}
	return res;
}
Exemple #2
0
cudaError_t cudaMemcpy (void *dst, const void *src,
                        size_t count, enum cudaMemcpyKind kind)
{
    cudaError_t retcode = real_cudaMemcpy(dst, src, count, kind);

    handle_cudaMemcpy(dst, src, count, kind, (void *) -1);

    return retcode;
}
Exemple #3
0
cudaError_t cudaMemcpy(
    void *dst,
    void *src,
    size_t size,
    enum cudaMemcpyKind kind)
{
  CUDATRACE_INTERPOSE(cudaMemcpy);
  fprintf(stderr, "TRACE: cudaMemcpy %p %p %lu %d\n",
      dst, src, size, kind);
  return real_cudaMemcpy(
      dst, src, size, kind);
}
Exemple #4
0
int cuda_getBufferContent (struct ld_mem_s *ldBuffer, void *buffer,
                           size_t offset, size_t size)
{
    cudaError_t err = cudaSuccess;

    if (offset != 0) {
        /* need to use the type to multiply correctly the buffer handle.  */
        warning("offset == %zu != 0, not handled yet in Cuda's ldChecker\n",
                offset);
    }

    err = real_cudaMemcpy (buffer,
                           ldBuffer->handle,
                           size,
                           cudaMemcpyDeviceToHost);

    return err == cudaSuccess;
}