diff --git a/tests/testutil.h b/tests/testutil.h index 5a0b04015..26fff70f8 100644 --- a/tests/testutil.h +++ b/tests/testutil.h @@ -218,12 +218,12 @@ int test_layer(int typeindex, const ncnn::ParamDict& pd, const std::vectoracquire_blob_allocator(); + ncnn::VkAllocator* staging_vkallocator = vkdev->acquire_staging_allocator(); - opt.blob_vkallocator = &g_blob_vkallocator; - opt.workspace_vkallocator = &g_blob_vkallocator; - opt.staging_vkallocator = &g_staging_vkallocator; + opt.blob_vkallocator = blob_vkallocator; + opt.workspace_vkallocator = blob_vkallocator; + opt.staging_vkallocator = staging_vkallocator; if (!vkdev->info.support_fp16_storage) opt.use_fp16_storage = false; if (!vkdev->info.support_fp16_packed) opt.use_fp16_packed = false; @@ -346,7 +346,7 @@ int test_layer(int typeindex, const ncnn::ParamDict& pd, const std::vector a4_fp16_gpu(a4_fp16.size()); for (size_t i=0; ireclaim_blob_allocator(blob_vkallocator); + vkdev->reclaim_staging_allocator(staging_vkallocator); + g_weight_vkallocator.clear(); + g_weight_staging_vkallocator.clear(); +#endif // NCNN_VULKAN + if (CompareMat(b, c, epsilon) != 0) { fprintf(stderr, "test_layer failed cpu\n"); @@ -439,12 +446,12 @@ int test_layer(int typeindex, const ncnn::ParamDict& pd, const std::vectoracquire_blob_allocator(); + ncnn::VkAllocator* staging_vkallocator = vkdev->acquire_staging_allocator(); - opt.blob_vkallocator = &g_blob_vkallocator; - opt.workspace_vkallocator = &g_blob_vkallocator; - opt.staging_vkallocator = &g_staging_vkallocator; + opt.blob_vkallocator = blob_vkallocator; + opt.workspace_vkallocator = blob_vkallocator; + opt.staging_vkallocator = staging_vkallocator; if (!vkdev->info.support_fp16_storage) opt.use_fp16_storage = false; if (!vkdev->info.support_fp16_packed) opt.use_fp16_packed = false; @@ -545,7 +552,7 @@ int test_layer(int typeindex, const ncnn::ParamDict& pd, const std::vectorreclaim_blob_allocator(blob_vkallocator); + vkdev->reclaim_staging_allocator(staging_vkallocator); g_weight_vkallocator.clear(); + g_weight_staging_vkallocator.clear(); #endif // NCNN_VULKAN if (CompareMat(b, c, epsilon) != 0)