Problems with kinfu

classic Classic list List threaded Threaded
4 messages Options
heu
Reply | Threaded
Open this post in threaded view
|

Problems with kinfu

heu
This post has NOT been accepted by the mailing list yet.
Hi,

Recently I tried running kinfu on my new computer and it wouldn't work. Not sure if this is the correct mailing list for this, let me know if it's not.

First, here are my specs:

Intel i5 2500K, 8gb ram, GTX 680.
Ubuntu 12.04, CUDA 4.2, NVidia dev driver 295.41

OpenNI seems to find the kinect just fine, at least NiViewer works.

First of all, I had several errors of the kind:

"Error: invalid device function" complaining about cuda/tsdf_volume.cu:76, this line being:

cudaSafeCall ( cudaGetLastError () );

The only way I could get rid of this problem was to not use cudaSafeCall(), only then Kinfu would run without crashing.

And then the other problem appeared. When I run kinfu_app, I keep getting these messages over and over:

qnan
Reset
qnan
Reset
...

One of the windows shows some image from the kinect and the other two are blank.

Messing with the code, I printed the matrix causing the problem and sometimes it is all 0 and sometimes it has some values but several qnan's in it.

I suspect it has something to do with the GTX680, but I can't be sure. Does anyone know what the problem might be? Anyway I can fix it?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Problems with kinfu

raphael favier
Hi Heu,

I don't know about your cudaSafeCall ( cudaGetLastError () ); problem.

However, the output you see:
qnan
Reset
qnan
Reset

comes from the tracker being lost.
Are you using Kinfu in a complex non-co-planar 3D environment?

If yes, then it means something is wrong with your CUDA environment.
cudaSafeCall ( cudaGetLastError () ) is used to see if the previous CUDA call succeeded or not.
If you remove this call, then it might happen that your CUDA functions are not working properly but the cpp code of Kinfu thinks they do, as it has not way to check it anymore.


Cheers
Raph
Reply | Threaded
Open this post in threaded view
|

Re: Problems with kinfu

Radu B Rusu
Administrator

On 06/19/2012 05:22 AM, raphael favier wrote:
> Hi Heu,
>
> I don't know about your /cudaSafeCall ( cudaGetLastError () );/ problem.

GTX 680 is a Kepler device. By default we compile for Fermi architectures. You need to change CUDA_ARCH_BIN to 30
instead of 20.


Cheers,
Radu.

>
> However, the output you see:
> /qnan
> Reset
> qnan
> Reset /
> comes from the tracker being lost.
> Are you using Kinfu in a complex non-co-planar 3D environment?
>
> If yes, then it means something is wrong with your CUDA environment.
> cudaSafeCall ( cudaGetLastError () ) is used to see if the previous CUDA
> call succeeded or not.
> If you remove this call, then it might happen that your CUDA functions are
> not working properly but the cpp code of Kinfu thinks they do, as it has not
> way to check it anymore.
>
>
> Cheers
> Raph
>
> --
> View this message in context: http://www.pcl-users.org/Problems-with-kinfu-tp4019398p4019438.html
> Sent from the Point Cloud Library (PCL) Users mailing list archive at Nabble.com.
> _______________________________________________
> [hidden email] / http://pointclouds.org
> http://pointclouds.org/mailman/listinfo/pcl-users
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: Problems with kinfu

Anatoly Baksheev-2
For Cuda Toolkit 4.2 and greater PCL cmake scripts append '30' to
CUDA_ARCH_BIN parameter automatically.

'invalid device function' is most likelly GPU code version incompatibility.

Are you sure that you compile with 4.2? Might it be that cmake found
an old toolkit in your system? Check all CUDA_* variables in cmake.

Cheers,
Anatoly

On Tue, Jun 19, 2012 at 6:22 PM, Radu B. Rusu <[hidden email]> wrote:

>
> On 06/19/2012 05:22 AM, raphael favier wrote:
>>
>> Hi Heu,
>>
>> I don't know about your /cudaSafeCall ( cudaGetLastError () );/ problem.
>
>
> GTX 680 is a Kepler device. By default we compile for Fermi architectures.
> You need to change CUDA_ARCH_BIN to 30 instead of 20.
>
>
> Cheers,
> Radu.
>
>
>>
>> However, the output you see:
>> /qnan
>> Reset
>> qnan
>> Reset /
>> comes from the tracker being lost.
>> Are you using Kinfu in a complex non-co-planar 3D environment?
>>
>> If yes, then it means something is wrong with your CUDA environment.
>> cudaSafeCall ( cudaGetLastError () ) is used to see if the previous CUDA
>> call succeeded or not.
>> If you remove this call, then it might happen that your CUDA functions are
>> not working properly but the cpp code of Kinfu thinks they do, as it has
>> not
>> way to check it anymore.
>>
>>
>> Cheers
>> Raph
>>
>> --
>> View this message in context:
>> http://www.pcl-users.org/Problems-with-kinfu-tp4019398p4019438.html
>> Sent from the Point Cloud Library (PCL) Users mailing list archive at
>> Nabble.com.
>> _______________________________________________
>> [hidden email] / http://pointclouds.org
>> http://pointclouds.org/mailman/listinfo/pcl-users
>
> _______________________________________________
> [hidden email] / http://pointclouds.org
> http://pointclouds.org/mailman/listinfo/pcl-users
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users