|
From: Gaetano M. <me...@gm...> - 2011-10-03 12:17:14
|
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
|
|
From: Dmitry N. M. <mae...@gm...> - 2011-10-03 12:55:12
|
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 <me...@gm...>:
> 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
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-users
>
|