记录一次Segmentation fault (core dumped) 段错误(cuda编程)

现象

使用makefile编译成功编译,但是在运行时出现

Segmentation fault (core dumped) 段错误,如下图所示:

尝试办法

1.让copilot找bug:

没有找到具体的问题,只指出了是指针访问越界以及未定义行为。指出了一个大概的方向

2.使用GBD查找问题:

每次都停在compared函数上,

或者我想打印输出的数组时stdio报错,

当我把它注释掉后没有出现问题。推测问题出现在输出的cpu或者gpu数组上。

3.自查代码逻辑,重点看输出的cpu或者gpu数组:

发现将dref的空间错误的申请在了gpu上,那么当cpu想去读取dref时就会出错。因为cpu无法直接去读取gpu内的数据。

修改方法

修改dref在cpu空间申请内存,然后重新编译运行:

成功输出正确的前缀和,问题解决!

相关推荐
Albart57516 小时前
vLLM多卡部署终极踩坑:CUDA error worker进程异常退出 完整定位&生产根治方案
cuda·nccl·vllm·大模型部署·多卡推理·大模型踩坑
帅气的小峰3 天前
pybind11与nanobind可以共存吗?如何迁移?
c++·python·cuda·推理引擎
(initial)6 天前
C-05. Kernel Fusion 代价边界:少写回 vs 寄存器压力与 occupancy
c语言·开发语言·cuda
June`9 天前
并发内核执行
c++·人工智能·算法·cuda
Olafur_zbj10 天前
【AI】CUDA的新编程模型:tile编程模型
人工智能·cuda·tile
(initial)12 天前
C-02. Cooperative Groups:安全分组、tile 集体与 coalesced 聚合
cuda
June`15 天前
warp shuffle指令
c++·人工智能·算法·cuda
June`16 天前
常量内存和只读缓存
c++·人工智能·算法·cuda
胖大和尚18 天前
在C++的类中,是否可以把函数声明成__device__
c++·cuda
(initial)20 天前
B-09. 数据布局(AoS/SoA/Transpose):一次布局调整带来的事务变化
cuda