error log | 日志或报错信息 | ログ
crash 时候的 callstack
Thread 1 "benchncnn" received signal SIGSEGV, Segmentation fault.
0x0000007fb34480e0 in ?? () from /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.6.1
(gdb) bt
#0 0x0000007fb34480e0 in ?? ()
from /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.6.1
#1 0x0000007fb34484e0 in ?? ()
from /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.6.1
#2 0x0000007fb355bd30 in ?? ()
from /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.6.1
#3 0x0000007fb356220c in ?? ()
from /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.6.1
#4 0x00000055557ad2ec in ncnn::VkBlobAllocator::fastFree (this=0x5557ce6950, ptr=0x5557ce1a30)
at /home/khj/ncnn/src/allocator.cpp:1045
#5 0x00000055557bac8c in ncnn::VkImageMat::release (this=0x5556d40060)
at /home/khj/ncnn/src/mat.h:1804
#6 ncnn::VulkanDevicePrivate::destroy_dummy_buffer_image (this=0x5556d3fdf0)
at /home/khj/ncnn/src/gpu.cpp:1676
#7 0x00000055557bc978 in ncnn::VulkanDevice::~VulkanDevice (this=0x5556d3eba0,
__in_chrg=<optimized out>) at /home/khj/ncnn/src/gpu.cpp:2062
#8 0x00000055557ba774 in ncnn::destroy_gpu_instance () at /home/khj/ncnn/src/gpu.cpp:1493
#9 0x00000055557c3b48 in ncnn::__ncnn_vulkan_instance_holder::~__ncnn_vulkan_instance_holder (
this=0x5556a54680 <ncnn::g_instance>, __in_chrg=<optimized out>)
at /home/khj/ncnn/src/gpu.cpp:55
#10 0x0000007fb7b2ae54 in __run_exit_handlers (status=0, listp=0x7fb7c495a0 <__exit_funcs>,
run_list_atexit=127, run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
at exit.c:108
#11 0x0000007fb7b2af8c in __GI_exit (status=<optimized out>) at exit.c:139
#12 0x0000007fb7b16724 in __libc_start_main (main=0x0, argc=0, argv=0x0, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>)
---Type <return> to continue, or q <return> to quit---
tart.c:344
#13 0x00000055557a8714 in _start ()
看了一下崩到了 mat.h dtor 的 vkDestroyImageView(vkdev->vkdevice(), ptr->imageview, 0);
。
再看变量,好像都正常,也没有啥 nullptr
(gdb) p data
$1 = (ncnn::VkImageMemory *) 0x5557ce1a30
(gdb) p allocator
$2 = (ncnn::VkAllocator *) 0x5557ce6950
(gdb) f 4
#4 0x00000055557ad2ec in ncnn::VkBlobAllocator::fastFree (this=0x5557ce6950, ptr=0x5557ce1a30) at /home/khj/ncnn/src/allocator.cpp:1045
1045 vkDestroyImageView(vkdev->vkdevice(), ptr->imageview, 0);
(gdb) p vkdev
$3 = (const ncnn::VulkanDevice *) 0x5556d3eba0
(gdb) p *vkdev
$4 = {info = @0x5556d3fb00, vkBindBufferMemory2KHR = 0x7fb3558708, vkBindImageMemory2KHR = 0x7fb3558710, vkCmdBeginRenderPass2KHR = 0x7fb35587e8, vkCmdEndRenderPass2KHR = 0x7fb35587f8,
vkCmdNextSubpass2KHR = 0x7fb35587f0, vkCreateRenderPass2KHR = 0x7fb35587e0, vkCreateDescriptorUpdateTemplateKHR = 0x7fb3558608, vkDestroyDescriptorUpdateTemplateKHR = 0x7fb3558610,
vkUpdateDescriptorSetWithTemplateKHR = 0x7fb3558618, vkGetImageMemoryRequirements2KHR = 0x7fb35586e0, vkGetBufferMemoryRequirements2KHR = 0x7fb35586e8,
vkGetImageSparseMemoryRequirements2KHR = 0x7fb35586f0, vkTrimCommandPoolKHR = 0x7fb35585f0, vkGetDescriptorSetLayoutSupportKHR = 0x7fb3558768, vkCmdPushDescriptorSetWithTemplateKHR = 0x7fb35585e0,
vkCmdPushDescriptorSetKHR = 0x7fb35585d0, vkCreateSamplerYcbcrConversionKHR = 0x7fb35586f8, vkDestroySamplerYcbcrConversionKHR = 0x7fb3558700,
vkCreateSwapchainKHR = 0x7fb7f08948 <terminator_CreateSwapchainKHR>, vkDestroySwapchainKHR = 0x7fb3558308, vkGetSwapchainImagesKHR = 0x7fb3558318, vkAcquireNextImageKHR = 0x7fb3558328,
vkQueuePresentKHR = 0x7fb3558338, d = 0x5556d3fdf0}
(gdb) p *ptr
$5 = {image = 0x5557ce6d40, imageview = 0x5556e30160, width = 1, height = 1, depth = 1, format = VK_FORMAT_R32_SFLOAT, memory = 0x5557ce2230, mapped_ptr = 0x0, bind_offset = 0, bind_capacity = 1024,
access_flags = 96, image_layout = VK_IMAGE_LAYOUT_GENERAL, stage_flags = 2048, command_refcount = 0, refcount = 0}
context | 编译/运行环境 | バックグラウンド
Jetson nano, 编译命令
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/jetson.toolchain.cmake -DNCNN_VULKAN=ON -DNCNN_SYSTEM_GLSLANG=OFF -DCMAKE_BUILD_TYPE=Debug ..
how to reproduce | 复现步骤 | 再現方法
./benchmarkncnn 20 1 0 0 0
给点思路? 目前没想法,再学习。
2条答案
按热度按时间9fkzdhlc1#
你有復現作者的結果嗎? 我用 vulkan 跑慢很多
nihui/ncnn-small-board#2
1tuwyuhd2#
复现了啊,和作者速度一样。