在CUDA编程中,尽管我们知道有统一内存管理:
分配 UM 时,它最初可能并未驻留在 CPU 或 GPU 上
当某些工作首次请求内存时,将会发生分页错误
分页错误将触发所请求的内存发生迁移
只要在系统中并未驻留内存的位置请求内存,此过程便会重复
但是依旧遇到了这个问题,大前提是,你得用这个 cudaMalloc 去申请内存/显存,然后用cudaFree去释放内存/显存,如果你用了malloc/calloc操作申请的内存,然后丢到kernel函数里跑,大概率会报这个错,同样,cudaMalloc申请的内存/显存,用free释放,应该会报段错误的错(具体老铁们可以试试)
另外,顺便看看kernel函数里边有没有数组越界的问题? 不过大概率不是,因为CUDA的编程范式,基本是固定的:

记住那个大红框,改一下4个小红框,就OK
6573

被折叠的 条评论
为什么被折叠?



