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