a segmentation fault and CUDA_ERROR_ILLEGAL_ADDRESS are not the same and the similarity is not really relevant here. One is an error in host code, the other is an error in device code.
Segmentation faults are errors in host code, which are generally not things that indicate CUDA as the “cause” of the issue.
Device code is code running on the GPU. Host code is code running on the CPU.
You should be able to identify the root cause of the segmentation fault by using standard debugging techniques. If you are unfamiliar with standard debugging techniques, consider investing in a few books covering them. There probably are also tutorials on “how to debug software” online, but I am not familiar with those, as I learned debugging by doing it (no books or online tutorials back then).
An error in device code most likely means the person who wrote the code made a mistake, such as an out-of-bounds memory access leading to CUDA_ERROR_ILLEGAL_ADDRESS.
A segfault (segmentation fault; Windows: general protection fault) is something that occurs in host code running on the CPU and most likely means the person who wrote that code made a mistake, such as an out-of-bounds memory access.
It is rare, but possible, that out-of-bounds memory accesses are caused by bugs in the toolchain (compiler, linker, etc). I have never seen out-of-bounds accesses caused by faulty hardware, and while it is theoretically possible it seems highly improbable.