My os is ubuntu 16.04
CUDA is 8.0.44
GPU is gtx1050 ti
When I use cuda-gdb debug programs, which is written with CUDA 8.0.44. the program terminated with the following information:
Thread 1 “FriedLiver” received signal CUDA_EXCEPTION_6, Warp Misaligned Address.
[Switching focus to CUDA kernel 3, grid 162, block (28,2,0), thread (0,0,0), device 0, sm 0, warp 36, lane 0]
0x00007fff9637ae28 in HashEntry::operator= (this=0x7fffedfffa98, e=0x10275a076ec)
at /home/manifold/CUDA_SLAM/BundleFusion_Ubuntu/FriedLiver/Source/DepthSensing/VoxelUtilHashSDF.h:70
70 ((long long*)this)[0] = ((const long long*)&e)[0];
I cann’t understand this message.
the part of program with problem is as following:
align(16)
struct HashEntry
{
int3 pos; //hash position (lower left corner of SDFBlock))
int ptr; //pointer into heap to SDFBlock
uint offset; //offset for collisions
__device__ void operator=(const struct HashEntry& e) {
//((int*)this)[0] = ((const int*)&e)[0];
//((int*)this)[1] = ((const int*)&e)[1];
//((int*)this)[2] = ((const int*)&e)[2];
//((int*)this)[3] = ((const int*)&e)[3];
//((int*)this)[4] = ((const int*)&e)[4];
((long long*)this)[0] = ((const long long*)&e)[0];
((long long*)this)[1] = ((const long long*)&e)[1];
((int*)this)[4] = ((const int*)&e)[4];
}
};
Could you someone give me suggestions and let me modify my program. Thanks a lot!