ncnn的blob_vkallocator、workspace_vkallocator、staging_vkallocator区别

ncnn::Extractor中有三个成员函数:

void set_blob_vkallocator(VkAllocator* allocator);

void set_workspace_vkallocator(VkAllocator* allocator);

void set_staging_vkallocator(VkAllocator* allocator);

blob_vkallocator是一个用于blob数据的分配器,它可以为一些长期存储或常用的数据分配内存。它通常用于一些需要持久保存或重复使用的场景,例如模型的权重或输入输出的数据。

 

staging_vkallocator是一个用于临时数据传输的分配器,它可以快速地分配和释放内存,但是不保证内存的持久性。通常用于将CPU上的数据复制到GPU上,或者将GPU上的数据读回到CPU上。


workspace_vkallocator是一个用于工作空间的分配器,它可以为一些中间计算结果或临时变量分配内存。它通常用于一些需要多次计算或迭代的场景,例如神经网络的推理。


posted @ 2023-12-25 17:43  重庆Debug  阅读(84)  评论(0编辑  收藏  举报