change CUDA_SAFE_CALL to CUDA_CALL_OR_RET_X
remove cudaDeviceSynchronize after cudaMemcpy
remove cudaStreamSynchronize or change to cudaDeviceSynchronize