ncnn windows 10 使用 vulkan 利用 gpu 加速推理的时候,每次退出都会崩溃。0x00007FFB6D8A1515 (nvoglv64.dll)

am46iovg  于 3个月前  发布在  Windows
关注(0)|答案(2)|浏览(68)

detail | 详细描述 | 詳細な説明

std::shared_ptrncnn::Net ncnnNet = std::make_sharedncnn::Net();

析构函数:
ncnnNet->clear();
ncnnNet.reset();
ncnn::destroy_gpu_instance();

vhipe2zx

vhipe2zx1#

detail | 详细描述 | 詳細な説明

std::shared_ptrncnn::Net ncnnNet = std::make_sharedncnn::Net();

析构函数: ncnnNet->clear(); ncnnNet.reset(); ncnn::destroy_gpu_instance();

如果有pool_allocator = new ncnn::PoolAllocator(); ,需要pool_allocator->clear();再delete。

如果有 blob_vkallocator = new ncnn::VkBlobAllocator(vkdev); ,需要delete blob_vkallocator; 再delete。

如果有注册了custom op for vulkan ,并使用 compile_spirv_module() 函数进行编译glsl到spirv,然后 new ncnn::Pipeline(vkdev); 到 ncnn::Pipeline* 中,同样也需要注意按顺序delete。

wgmfuz8q

wgmfuz8q2#

detail | 详细描述 | 詳細な説明

std::shared_ptrncnn::Net ncnnNet = std::make_sharedncnn::Net();
析构函数: ncnnNet->clear(); ncnnNet.reset(); ncnn::destroy_gpu_instance();

如果有pool_allocator = new ncnn::PoolAllocator(); ,需要pool_allocator->clear();再delete。

如果有 blob_vkallocator = new ncnn::VkBlobAllocator(vkdev); ,需要delete blob_vkallocator; 再delete。

如果有注册了custom op for vulkan ,并使用 compile_spirv_module() 函数进行编译glsl到spirv,然后 new ncnn::Pipeline(vkdev); 到 ncnn::Pipeline* 中,同样也需要注意按顺序delete。

全都没有用到,我是这样推理的

相关问题