I'm trying Valgrind on a simple CUDA program for CPU memory check (It worked for GPU memcheck when using cuda-memcheck): 
#include <stdlib.h>
int main()
{
  void *dp = NULL;
  cudaMalloc(&dp, 1024);
  cudaFree(dp);
  void *p = NULL;
  p = malloc(1024);
  free(p);
  cudaDeviceReset();
  return 0;
}
The program hangs with many noted but unhandled ioctl with no size/direction hints warnings.
$ nvcc prog.cu
$ valgrind ./a.out
==61517== Memcheck, a memory error detector
==61517== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==61517== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==61517== Command: ./a.out
==61517== 
==61517== Warning: noted but unhandled ioctl 0x30000001 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x27 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x7ff with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x25 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x37 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x17 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: set address range perms: large range [0x200000000, 0x300200000) (noaccess)
==61517== Warning: set address range perms: large range [0x7798000, 0x27797000) (noaccess)
==61517== Warning: set address range perms: large range [0x10006000000, 0x10106000000) (noaccess)
==61517== Warning: noted but unhandled ioctl 0x19 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: set address range perms: large range [0x10106000000, 0x10206000000) (noaccess)
==61517== Warning: noted but unhandled ioctl 0x21 with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==61517== Warning: noted but unhandled ioctl 0x1b with no size/direction hints.
==61517==    This could cause spurious value errors to appear.
==61517==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
I'm also follwing this question to generate Valgrind suppressions, the program hangs again with same warnings. How can I use Valgrind with CUDA correctly?
I'm using Ubuntu 18.04 + CUDA 9.1 + Valgrind 3.13.0.
 zingdle
 zingdleUser contributions licensed under CC BY-SA 3.0