You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This error is in the kernel call extract_normals_kernel<<<grid, block>>>(en, output); in kfusion::device::extractNormals method in tsdf_volume.cu. This occurs because value of grid dimensions in arguments is (0,1,1). The first value is set to 0 after the divup because the argument const PtrSz<Point>& points to the extractNormals function is being passed as empty(i.e. points.size is 0). So, I tracked from beginning, i.e. demo.cpp to see where the problem is.
demo.cpp calls has_image = dynamic_fusion(depth_device_); which later calls volume_->compute_points(); and volume_->compute_normals();here. The latter one will subsequently call the extractNormals method using value of cuda::DeviceArray<Point> *cloud_; which was set to empty in the former one here, being the cause of the problem. So, I think that the problem is that volume_->compute_points(); sets the cloud as empty by calling the function fetchCloud(*cloud_buffer_);.
Moving ahead, in fetchCloud() method, there is a check which checks if the cloud is empty, else it creates a new cloud. That is fine, I checked it and new cloud is being created which is not empty. But when this function returns, it returns DeviceArray<Point>((Point*)cloud_buffer.ptr(), size);, this is itself empty because it uses a size variable which is set to 0 in linesize_t size = extractCloud(volume, aff, b);.
Further, in kfusion::device::extractCloud, there is a kernel call extract_kernel<<<grid, block>>>(fs, output); which goes successful but this is the culprit that returns size as 0. The line cudaMemcpyFromSymbol (&size, output_count, sizeof(size)) sets the value of size as 0. I think this is where the problem is.
I'm not completely sure whether the problem is where I'm pointing it out to be, but that's all that I could infer. How should I go about solving this problems? Any help is appreciated. Thanks.
Edit: Does it have something to do with the __CUDA_ARCH__ checks here? OR, checks on this line.
The text was updated successfully, but these errors were encountered:
Hello, I've recently cloned this project and unfortunately I encountered the same issue. Did you figure it out?? I would really appreciate any help or guidance.
This error is in the kernel call
extract_normals_kernel<<<grid, block>>>(en, output);
inkfusion::device::extractNormals
method intsdf_volume.cu
. This occurs because value of grid dimensions in arguments is(0,1,1)
. The first value is set to 0 after the divup because the argumentconst PtrSz<Point>& points
to theextractNormals
function is being passed as empty(i.e.points.size
is0
). So, I tracked from beginning, i.e.demo.cpp
to see where the problem is.demo.cpp
callshas_image = dynamic_fusion(depth_device_);
which later callsvolume_->compute_points();
andvolume_->compute_normals();
here. The latter one will subsequently call theextractNormals
method using value ofcuda::DeviceArray<Point> *cloud_;
which was set to empty in the former one here, being the cause of the problem. So, I think that the problem is thatvolume_->compute_points();
sets the cloud as empty by calling the functionfetchCloud(*cloud_buffer_);
.Moving ahead, in
fetchCloud()
method, there is a check which checks if the cloud is empty, else it creates a new cloud. That is fine, I checked it and new cloud is being created which is not empty. But when this function returns, it returnsDeviceArray<Point>((Point*)cloud_buffer.ptr(), size);
, this is itself empty because it uses asize
variable which is set to 0 in linesize_t size = extractCloud(volume, aff, b);
.Further, in
kfusion::device::extractCloud
, there is a kernel callextract_kernel<<<grid, block>>>(fs, output);
which goes successful but this is the culprit that returns size as0
. The linecudaMemcpyFromSymbol (&size, output_count, sizeof(size))
sets the value of size as0
. I think this is where the problem is.I'm not completely sure whether the problem is where I'm pointing it out to be, but that's all that I could infer. How should I go about solving this problems? Any help is appreciated. Thanks.
Edit: Does it have something to do with the
__CUDA_ARCH__
checks here? OR, checks on this line.The text was updated successfully, but these errors were encountered: