darknet: ./src/utils.c:256: error: Assertion `0' failed.

本文详细介绍了如何在Darknet中启用GPU加速,包括修改makefile配置、解决GPU计算力不匹配问题,以及展示GPU加速前后的性能对比。通过调整batch和subdivisions参数,配合CUDA和CUDNN,实现了从每帧20秒到0.086秒的显著提速。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.darknet: ./src/utils.c:256: error: Assertion `0' failed.
Aborted (core dumped)

2.darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.
Aborted (core dumped)

 

makefile文件更改:

GPU=1
CUDNN=1
OPENCV=0
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_52,code=compute_52 \   #1060的算力5.2 GPU计算力不匹配的问题,建议修改,注意找到自己匹配的

下面的需要对应自己cuda文件路径:

NVCC=/usr/local/cuda/bin/nvcc

COMMON+= -DGPU -I/usr/local/cuda/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand

/darknet/cfg /yolov3.cfg中的更改如下:

# Testing
batch=1
subdivisions=1
# Training
#batch=64
#subdivisions=16

darknet目录下打开Terminal:

sudo ./darknet detector test cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg

测试结果:

Loading weights from weights/yolov3.weights...Done!
data/dog.jpg: Predicted in 0.086322 seconds.
dog: 100%
0.291906 0.656983 0.232563 0.569755
truck: 92%
0.756160 0.217218 0.271333 0.151046
bicycle: 99%
0.448432 0.496669 0.637270 0.562252

没加GPU大概20s/帧,真的慢。加了GPU:20/0.086=233倍,真的可以啦!

 

参考:

1.https://blog.youkuaiyun.com/fanhongyuan21/article/details/81909994

2.https://blog.youkuaiyun.com/bufengzj/article/details/87917606

3.https://blog.youkuaiyun.com/csdn_zhishui/article/details/83751944

4.https://blog.youkuaiyun.com/fqlovetb/article/details/84393806 批量测试

5.https://www.cnblogs.com/pprp/p/10204480.html  darknet优化经验-AlexeyAB大神经验

6.https://blog.youkuaiyun.com/gaoyu1253401563/article/details/89388043YOLOV3检测目标,在显示类别的基础上再显示识别精度值

7.基于Python实现的IOU算法---最简单易懂的代码实现 - Kellbook的博客 - 优快云博客 https://blog.youkuaiyun.com/qq_30622831/article/details/85144849#comments?tdsourcetag=s_pcqq_aiomsg

aten/src/ATen/native/cuda/IndexKernel.cu:92: operator(): block: [9,0,0], thread: [124,0,0] Assertion `-sizes[i] <= index && index < sizes[i] && "index out of bounds"` failed. ../aten/src/ATen/native/cuda/IndexKernel.cu:92: operator(): block: [9,0,0], thread: [125,0,0] Assertion `-sizes[i] <= index && index < sizes[i] && "index out of bounds"` failed. ../aten/src/ATen/native/cuda/IndexKernel.cu:92: operator(): block: [9,0,0], thread: [126,0,0] Assertion `-sizes[i] <= index && index < sizes[i] && "index out of bounds"` failed. ../aten/src/ATen/native/cuda/IndexKernel.cu:92: operator(): block: [9,0,0], thread: [127,0,0] Assertion `-sizes[i] <= index && index < sizes[i] && "index out of bounds"` failed. 1/300 2.34G 4 9.454 4.133 67 640: 54%|█████▍ | 86/158 [00:16<00:13, 5.37it/s] Traceback (most recent call last): File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/tal.py", line 74, in forward return self._forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/tal.py", line 102, in _forward mask_pos, align_metric, overlaps = self.get_pos_mask( ^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/tal.py", line 124, in get_pos_mask align_metric, overlaps = self.get_box_metrics(pd_scores, pd_bboxes, gt_labels, gt_bboxes, mask_in_gts * mask_gt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/tal.py", line 143, in get_box_metrics bbox_scores[mask_gt] = pd_scores[ind[0], :, ind[1]][mask_gt] # b, max_num_obj, h*w ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/icislab/volume1/lishendegou/yolov12-main/train-11.py", line 9, in <module> model.train(data=&#39;/icislab/volume1/lishendegou/yolov12-main/ultralytics/cfg/datasets/pear.yaml&#39;, File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/engine/model.py", line 808, in train self.trainer.train() File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/engine/trainer.py", line 207, in train self._do_train(world_size) File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/engine/trainer.py", line 381, in _do_train self.loss, self.loss_items = self.model(batch) ^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl return self._call_impl(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl return forward_call(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/nn/tasks.py", line 111, in forward return self.loss(x, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/nn/tasks.py", line 321, in loss return self.criterion(preds, batch) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/loss.py", line 233, in __call__ _, target_bboxes, target_scores, fg_mask, _ = self.assigner( ^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl return self._call_impl(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl return forward_call(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/yolov12-main/ultralytics/utils/tal.py", line 75, in forward except torch.OutOfMemoryError: ^^^^^^^^^^^^^^^^^^^^^^ File "/icislab/volume1/lishendegou/anaconda3/envs/yolo12/lib/python3.11/site-packages/torch/__init__.py", line 1938, in __getattr__ raise AttributeError(f"module &#39;{__name__}&#39; has no attribute &#39;{name}&#39;") AttributeError: module &#39;torch&#39; has no attribute &#39;OutOfMemoryError&#39;
最新发布
08-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值