Hi Gaetano, With CUDA I often see the same output you showed: CUDA runtime has out-of-range reads and leaks some memory. But these issues should be harmless.
- D. 2011/10/3 Gaetano Mendola <[email protected]>: > Hi all, > running my program (it uses cuda) with valgrind I'm getting this warning: > > Warning: set address range perms: large range [0x800000000, > 0x1300000000) (noaccess) > > and I think even some false allarms (I will ask in CUDA forum). > > Is that warning something to worry about ? > > With CUDA 4.0 Nvidia introduced the Unified Memory Model, and even > launching the following > code: > > #include <stdlib.h> > #include <iostream> > #include <cufft.h> > > int main(int argc, char** argv) { > unsigned int myPlan; > > if(cufftPlan1d(&myPlan, 1024, CUFFT_C2C, 1) != CUFFT_SUCCESS) { > std::cout << "cufftPlan1d failed" << std::endl; > ::abort(); > } > > if(cufftDestroy(myPlan) != CUFFT_SUCCESS) { > std::cout << "cufftDestroy failed" << std::endl; > ::abort(); > } > } > > > I get from HTOP the info that my executable is using 42GB of virtual > memory (it seems this > is normal), may be this has something to do with the warning ? > > This is the output of valgrind (valgrind-3.7.0.SVN) running the above code: > > ==7011== Memcheck, a memory error detector > ==7011== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. > ==7011== Using Valgrind-3.7.0.SVN and LibVEX; rerun with -h for copyright info > ==7011== Command: ./a.out > ==7011== > ==7011== Warning: set address range perms: large range [0x800000000, > 0x1300000000) (noaccess) > ==7011== Invalid read of size 2 > ==7011== at 0xBCD267F: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBCA94B8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBD3B6C8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xB37FC35: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38BA2A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38413A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38B28B: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB391A09: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB385EF5: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB37858C: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB3A36E1: cudaFree (in > /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0x4E379DF: ??? (in /usr/local/cuda/lib64/libcufft.so.4.0.17) > ==7011== Address 0xefd0fe6 is 3,766 bytes inside a block of size 3,767 > alloc'd > ==7011== at 0x4C27B4A: malloc (vg_replace_malloc.c:263) > ==7011== by 0xBCA92C4: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBD3B6C8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xB37FC35: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38BA2A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38413A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38B28B: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB391A09: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB385EF5: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB37858C: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB3A36E1: cudaFree (in > /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0x4E379DF: ??? (in /usr/local/cuda/lib64/libcufft.so.4.0.17) > ==7011== > ==7011== Invalid read of size 1 > ==7011== at 0xBCD2923: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBCA94B8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBD3B6C8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xB37FC35: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38BA2A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38413A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38B28B: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB391A09: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB385EF5: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB37858C: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB3A36E1: cudaFree (in > /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0x4E379DF: ??? (in /usr/local/cuda/lib64/libcufft.so.4.0.17) > ==7011== Address 0xefd0fe7 is 0 bytes after a block of size 3,767 alloc'd > ==7011== at 0x4C27B4A: malloc (vg_replace_malloc.c:263) > ==7011== by 0xBCA92C4: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xBD3B6C8: ??? (in /usr/lib/libcuda.so.270.41.19) > ==7011== by 0xB37FC35: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38BA2A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38413A: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB38B28B: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB391A09: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB385EF5: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB37858C: ??? (in /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0xB3A36E1: cudaFree (in > /usr/local/cuda/lib64/libcudart.so.4.0.17) > ==7011== by 0x4E379DF: ??? (in /usr/local/cuda/lib64/libcufft.so.4.0.17) > ==7011== > ==7011== > ==7011== HEAP SUMMARY: > ==7011== in use at exit: 21,169,730 bytes in 22,932 blocks > ==7011== total heap usage: 48,617 allocs, 25,685 frees, 23,954,629 > bytes allocated > ==7011== > ==7011== LEAK SUMMARY: > ==7011== definitely lost: 16 bytes in 1 blocks > ==7011== indirectly lost: 0 bytes in 0 blocks > ==7011== possibly lost: 0 bytes in 0 blocks > ==7011== still reachable: 21,169,714 bytes in 22,931 blocks > ==7011== suppressed: 0 bytes in 0 blocks > ==7011== Rerun with --leak-check=full to see details of leaked memory > ==7011== > ==7011== For counts of detected and suppressed errors, rerun with: -v > > > > > > -- > cpp-today.blogspot.com > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Valgrind-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/valgrind-users > ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Valgrind-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/valgrind-users
