guojin-yan / OpenVINO-CSharp-API

OpenVINO wrapper for .NET.
Apache License 2.0
137 stars 35 forks source link

使用GPU可以在Openvino工程进一步提速么 #4

Closed FuShengRuoXian closed 1 year ago

FuShengRuoXian commented 1 year ago

如题,Core core = new Core(model_path, "GPU"); 好像是没有效果,是不是GPU时需要有另外配置?谢谢

guojin-yan commented 1 year ago

GPU是要英特尔的GPU,你可以查看一下openvino官网支持的型号,目前已经支持多种型号的显卡。英伟达的显卡是不支持的。 如果还有问题可以加我微信,GitGitee

FuShengRuoXian commented 1 year ago

请教一下,openvino一般不是用于的模型格式是bin和xml文件么,OpenvinoSharp项目里直接读取ONNX模型,可以起到加速的效果么,您那边有做过对比试验吧,我这边怎么测试的结果是跟不用openvino直接读取ONNX预测时间基本一致,甚至略差…

guojin-yan commented 1 year ago

之前是做过测试的,转化程IR模型格式模型读取速度是有很大提升的,目前OpenVINO2022版支持了多种模型格式,因此可以不进行格式转换。 模型部署我们关注的是模型推理时间,模型读取只需要读取一次,无需重复读取,所以此处没有进行转换。重点关注的是模型推理运行的时间。

联想截图_20230418105113

FuShengRuoXian commented 1 year ago

是的 。您的测试平台是什么配置? 我现在16G内存计算机测试224224的模型: // 将图片数据加载到模型 core.load_input_data(input_node_name, image_data, image_size, 1); // 模型推理 core.infer(); // 读取模型输出数据 float[] result_array = core.read_infer_result(output_node_name, 3087 6); 单单这三步就花费了6、7ms时间。整个读取图片及预处理、加载到模型、模型推理和输出数据、分析数据处理时间一共约10ms,您的结果处理统计时间甚至不到0.2ms?

guojin-yan commented 1 year ago

肯定要花费那么多啊,你这个包括了主要的部分;

core.load_input_data(input_node_name, image_data, image_size, 1); 对应加载数据一部分 core.infer(); 对应模型推理时间 float[] result_array = core.read_infer_result(output_node_name, 3087 * 6); 对应结果处理一部分

我用的是CPU(i7-12700H)

FuShengRuoXian commented 1 year ago

好的 那这个速度跟opencv dnn直接读取onnx处理的效率是差不多的,估计到这个速度级别还是考验CPU性能了。我再试试tensorRT加速。