「DLFramework」 使用 GPU
1 调用
int main()
{
srand(time(NULL));
ncnn::create_gpu_instance();
ncnn::VulkanDevice vkdev;
// high-level api
ncnn::Net net;
net.use_vulkan_compute = 1;
net.set_vulkan_device(&vkdev);
net.load_param("mnist.param");
net.load_model("mnist.bin");
ncnn::Extractor ex = net.create_extractor();
ncnn::Mat in(28, 28, 1);
in.fill(0.5f);
ex.input("data", in);
ncnn::Mat ip2;
ex.extract("ip2", ip2);
pretty_print(ip2);
ncnn::destroy_gpu_instance();
return 0;
}
2 问题
2.1 GPU 占用少
问题:
关闭vulkan, cpu4652, 占用90%,gpu显存占用为0;
打开vulkan, cpu3614, 占用70%,gpu显存占用很少;
原因:预处理和后处理是 cpu 函数
ncnn::Mat::substract_mean_normalize 调用了 Bias 层,该层 vulkan 不支持;深度网络模型有 bias 偏置参数,vulkan 不支持只能回退到cpu侧执行了;
Comments