当前位置: 首页 > news >正文

长沙网站制作百度百度一下就知道

长沙网站制作,百度百度一下就知道,网站建设公司怎么运营,乐清品牌网站建设前言 要详细了解一个系统的部署,对其源码进行调试可能是最好的办法。 Pytorch的部署几经改版,最大的特点依然是不稳定,或者使用libtorch这种稳定但优化力度不够的部署方案。 而稳定且通用的方案,目前仍然是export to onnx的办法…

 前言

要详细了解一个系统的部署,对其源码进行调试可能是最好的办法。

Pytorch的部署几经改版,最大的特点依然是不稳定,或者使用libtorch这种稳定但优化力度不够的部署方案。

而稳定且通用的方案,目前仍然是export to onnx的办法居多。onnxruntime在c++部署方面目前用得比较多,所以这里我们以微软最典型的onnxruntime部署为例,对其源码进行编译。编译后,就可以直接使用vs2019来进行源码级调试抓BUG了。

ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架,支持多种运行后端包括CPU,GPU,TensorRT,DML等。是对ONNX模型最原生的支持,只要导出的onnx模型,便能对将不同框架的结果进行部署,提高开发效率。

生成vs2019项目

第一步是把onnxruntime从github上拉取下来,并且重命名文件夹为onnxruntime1162,版本是v1.16.2,如下,

git clone --recursive  https://github.com/microsoft/onnxruntime -b v1.16.2  onnxruntime1162

然后用cmake-gui开始配置项目,这里我们按官方的配置来选择。

首先是要配置onnxruntime_USE_CUDA,这个是为使用GPU而设置的,

另外,protobuf的配置需要格外注意,很多情况下,onnxruntime能否编译成功,就取决于这个protobuf能否正确链接。因为一般的onnx和onnxruntime的库都是dll,所以我们这里选择protobuf_BUILD_SHARED_LIBS,避免windows下链接出现问题。

最后,还要配置onnxruntime_BUILD_SHARED_LIB,否则的话不会生成onnxruntime.dll,应用程序就需要自己再去链接abseil,protobuf等库。其实这个选项应该默认是ON才对,但官方设置为OFF,所以这里必须手动设置为ON。

当然官方还有一个tensorrt,由于我手头还没有用到tensorrt,所以暂时也没有勾选。

根据onnxruntime官网上的issue,

https://github.com/microsoft/onnxruntime/issues/1777

需要设置CUDA_HOME和CUDNN_HOME这两个参数。不过编译后,我发现这不是必须的,因为可以在生成项目后在vs2019项目的属性中添加,像cudnn.h这样的头文件,直接拷贝到项目onnxruntime_providers_cuda_obj.vcxproj同目录下即可。后面我们详细介绍。

当然,如果你要设置CUDA_HOME和CUDNN_HOME这两个参数的话,可以在环境变量中这样设置,

CUDA_HOME

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0

CUDNN_HOME

C:\Programs\cudnn-windows-x86_64-8.9.2.26_cuda12

这里对应我的RTX3080TI安装版的Cuda版本是

cuda_12.0.1_528.33_windows.exe

CUDNN的开发包是

cudnn-windows-x86_64-8.9.2.26_cuda12-archive.zip

用cmake-gui的configure+generate之后,就可以生成vs2019的项目了。

配置cudnn并生成动态库

用vs2019打开项目后, 要在以下这几个项目的属性中添加上cudnn的配置,我这里取名为cudnn12-8.9.2.26.props;根据我前面提到的cuda和cudnn的安装位置,其内容如下,

<?xml version="1.0" encoding="utf-8"?>

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ImportGroup Label="PropertySheets" />

  <PropertyGroup Label="UserMacros" />

  <PropertyGroup />

  <ItemDefinitionGroup>

    <ClCompile>

      <AdditionalIncludeDirectories>C:\Programs\cudnn-windows-x86_64-8.9.2.26_cuda12\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

    </ClCompile>

    <Link>

      <AdditionalLibraryDirectories>C:\Programs\cudnn-windows-x86_64-8.9.2.26_cuda12\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

      <AdditionalDependencies>cudnn.lib;%(AdditionalDependencies)</AdditionalDependencies>

    </Link>

  </ItemDefinitionGroup>

  <ItemGroup />

</Project>

编译时发现,cmake已经找到了cuda相关的库的位置,但cudnn的位置并不正确,老是报找不到cudnn.h,于是,我索性把相关文件直接拷贝到了项目所在的目录下面,然后再编译。

按这个配置好开始编译,一路上基本上不会有太大问题,编译之后就可以得到onnxruntime.dll这样的库文件了,如下,

本文结束。

http://www.mmbaike.com/news/74407.html

相关文章:

  • 网站建设调研报告免费发布推广的平台
  • 肥城网站建设流程营销对企业的重要性
  • html5网站制作工具厦门网站外包
  • 新闻网站有哪些北京seo网站推广
  • 新疆工程建设网站上查询爱站关键词挖掘软件
  • 建筑模板厂专业关键词排名优化软件
  • 软件开发工程师任职要求seo网站页面优化包含
  • 北京手机网站制作公司线上推广外包公司
  • 建立公司网站()网络推广网站推广
  • 重庆网站建设网搜科技公司做网站怎么做
  • 网站建设运营合同书优化网哪个牌子好
  • java学完后可以做网站吗站长工具网址查询
  • 优秀学校网站设计短网址链接生成
  • 做视频网站多大服务器杭州市优化服务
  • 苹果高德地图怎么看实时街景seo网站推广有哪些
  • 一个服务器可以放多少网站网站推广建设
  • 典型的b2c网站有哪些推广费用一般多少钱
  • 电商网站服务器广州最新政策
  • 野外美食网站设计欣赏外贸营销网站
  • 网站推广软件有哪些网站建设的方法有哪些
  • wordpress多站点无法发布文章南京搜索引擎推广优化
  • 网站开发 报价单站长联盟
  • 网站建设地域名郑州网站建设方案优化
  • 如何查询店名是否被注册优化设计答案
  • 移动网站怎么做优化长尾关键词是什么意思
  • 驾校网站制作免费google账号注册入口
  • html网站模板做关键词优化的公司
  • 深圳龙华做网站的公司成都自然排名优化
  • 弹出全屏视频网站怎么做链接网
  • wordpress评论分页西安seo招聘