自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

转载 TVM学习(七)算子

relay算子上一章梳理了一遍TVM前端流程,前端完成了tensorflow算子到TVM算子的转换。这一章CNN网络中最普遍的卷积运算为例,看一下relay算子的表示。在python/tvm/relay/frontend/tensorflow.py文件中convert_map有:_convert_map = {…'Conv2D' : _conv('conv'),…}在_conv函数中会根据layout对weights,inputs,out

2021-02-25 22:39:55 1121 1

转载 TVM学习(六)细读前端

用了几章的篇幅写了一些粗读TVM代码的收获,虽然读了一点皮毛,但是还是掌握了TVM的基本架构和代码组成,算是给以后的精读打下了一点基础吧。从这章开始再从头捋一遍TVM代码,顺序是frontend-build-optimize-lower-target。TVM前端可以适配大多数流行的深度学习框架,比如tensorflow,pytorch,onnx等。这里我选择适配tensorflow的前端代码来看。TVM前端的输入是protoBuf格式的二进制文件,这个文件描述了由tensorflow构建的神经网络的结构

2021-02-25 22:28:49 841

转载 TVM学习(五)schedule

Schedule是和硬件体系结构相关的一些列优化,Halide在其文章中对其做了以下定义:1 When and where should be the value at each coordinate in each function be computed?2 Where should they be stored?3 How long are values cached and communicated across multiple consumers, and when are they in

2021-02-25 19:51:41 951

转载 TVM学习(四)codegen

接着上一章继续深入代码,在BuildRelay中会调用Codegen函数。这个函数实现在src/relay/backend/http://graph_runtime_codegen.cc中。Codegen实现了内存的分配,IR节点到TIR节点的转换,tir图节点的一个调度优化。内存分配由函数relay.backend.GraphPlanMemory来实现,VisitExpr对节点进行遍历并进行节点信息的记录。LowerExternalfunctions完成ir节点到tir节点的转化以及schedule的优化

2021-02-25 15:46:47 1110

转载 TVM学习(三)编译流程

VM主要的编译过程如下图:Import:将tensorflow,onnx,pytorch等构建的深度学习模型导入,转化成TVM的中间层表示IR。Lower:将高层IR表示转化成低阶TIR表示。Codegen:内存分配和硬件可执行程序生成。图导入通过一个tensorflow的reception网络来熟悉编译过程,其它深度学习框架也具有类似过程。从TVM官网可以下载tensorflow的编译程序https://tvm.apache.org/docs/tutorials/frontend/from_

2021-02-23 23:56:38 893

转载 TVM代码学习 -- 代码生成流程(二)

接上文,已经粗略梳理了relay.build生成代码的流程,本文介绍另一种生成代码方式tvm.build的流程。首先以官方提供的一个向量相加程序为例简单熟悉下Tensor Expression和lower后的代码,tvm版本都是0.7dev。简单例子https://link.zhihu.com/?target=https%3A//tvm.apache.org/docs/tutorials/get_started/tensor_expr_get_started.html%23sphx-glr-tutori

2021-02-21 00:02:16 1024

转载 TVM代码学习 -- 代码生成流程(一)

本文主要介绍TVM针对不同后端部署平台生成运行代码的流程,TVM可以通过两种方式生成代码:tvm.build 和 relay.build。两种方式流程略有不同,tvm.build 主要针对单一算子进行编译优化,relay.build 是针对整个网络计算图进行编译优化。先介绍relay.build,示例代码如下所示。relay.buildonnx_model = onnx.load('model/mobilenetv2.onnx')mod,params = relay.frontend.from_onn

2021-02-20 22:52:42 1763

转载 一步一步解读神经网络编译器TVM(一)——一个简单的例子

@TOC前言这是一个TVM教程系列,计划从TVM的使用说明,再到TVM的内部源码?为大家大致解析一下TVM的基本工作原理。因为TVM的中文资料比较少,也希望贡献一下自己的力量,如有描述方面的错误,请及时指出。那啥是TVM?简单来说,TVM可以称为许多工具集的集合,其中这些工具可以组合起来使用,来实现我们的一些神经网络的加速和部署功能。这也是为什么叫做TVM Stack了。TVM的使用途径很广,几乎可以支持市面上大部分的神经网络权重框架(ONNX、TF、Caffe2等),也几乎可以部署在任何的平台,

2021-02-17 23:39:32 2553

转载 TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)

(前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读)关注我最近想法的同学应该知道我最近都在把玩TVM,今天终于使用TVM得到了非常满意的结果,而专栏也很长时间没更新了,于是来安利(水)一篇。本来可能用不到TVM,项目其实进展的很顺利,我们初始的tensorflow模型在android端得到了满意的latency,我也可以照常一边修炼我的仙,继续和有奶大定律, 自由单子, Kan-Extension等邪魔外道搏斗…一边稳稳的推进项目进度。无奈scientist一意孤行要上Pyto

2021-02-14 16:15:44 677

原创 如何学习TVM的代码?

问题:对陈天奇团队的开源深度学习编译器TVM很感兴趣,特别是看到18年发的论文中提到的在FPGA上的部署。对于基础知识薄弱(如体系架构编译等方面)的学生,应该如何学习TVM的代码呢?如提问有误请指正,求轻喷。相关链接:TVM: End-to-End Optimization Stack for Deep Learning自动生成硬件优化内核:陈天奇等人发布深度学习编译器TVMdmlc/tvm作者:蓝色链接:https://www.zhihu.com/question/268423574/an

2021-02-14 10:45:59 778

原创 TensorRT笔记(15)使用深度学习框架

使用深度学习框架14.使用深度学习框架14.1 使用TensorFlow14.1.1 冻结TensorFlow图14.1.2 冻结Keras模型14.1.3 将冻结图转换为UFF14.1.4 使用TensorFlow RNN权重14.1.4.1 TensorRT支持的TensorFlow RNN单元14.1.4.2 维护TensorFlow和TensorRT之间的模型一致性14.1.4.3 工作流程14.1.4.4 转储TensorFlow权重14.1.4.5 加载权重14.1.4.6 将权重转换为

2021-02-13 22:53:03 337

原创 TensorRT笔记(14)部署TensorRT优化模型

部署TensorRT优化模型13.部署TensorRT优化模型13.1 云端部署13.2 部署到嵌入式系统13.部署TensorRT优化模型创建包含优化推理模型的计划文件后,可以将该文件部署到生产环境中。如何创建和部署计划文件将取决于您的环境。例如,您可能对模型具有专用的推理可执行文件,该可执行文件可加载计划文件,然后使用NVIDIA®TensorRT™Execution API将输入传递给模型,执行模型以进行推理,最后读取模型的输出。本节讨论如何在某些常见的部署环境中部署TensorRT。13.1

2021-02-13 21:57:07 981 1

原创 TensorRT笔记(13)使用多实例GPU(MIG)

使用DLA12.使用多实例GPU(MIG)12.1 GPU分区12.2 对TensorRT应用程序的影响12.3 配置NVIDIA MIG12.使用多实例GPU(MIG)多实例GPU或MIG是NVIDIA Ampere GPU架构中的一项新功能,可将用户定向的单个GPU划分为多个较小的GPU。通过使裸机,GPU直通或多个vGPU上的并行计算工作负载有效共享GPU,可以提高GPU利用率。物理分区为专用的计算和内存片提供QoS,并在部分GPU SM上独立执行并行工作负载。对于GPU SM或内存利用率较低的

2021-02-13 21:32:43 2116

原创 本菜鸡的秋招经验总结

本菜鸡的秋招经验总结前言-写在前面制作简历项目和实习经历描述关键点简历制作注意点事项简历格式做好简历review简历相关问题准备工作面试分类及侧重点考察面试过程中的注意事项关于实习狗血的面试经历结语前言-写在前面在正式开写之前首先要感谢在我找工作过程中对我有过帮助的人!非常感谢彭方想师兄提供的简历模板,这套模板我一直用到了最后!非常感谢王振兴师兄提供的简历,让我明白了该怎样写好一份算法相关的简历,王振兴师兄真的是非常热情,为我提供了很多资料,无论是当初实习交接项目还是后面我正式开始找工作有问题向他请

2021-02-12 17:59:06 3026 4

原创 TensorRT笔记(12)使用DLA

使用DLA11.使用DLA11.1 在TensorRT推理期间在DLA上运行11.1.1 示例:带有DLA的sampleMNIST11.1.2 示例:在网络创建期间为层启用DLA模式11.2 DLA支持的层11.3 GPU后备模式11.使用DLANVIDIA®DLA™(深度学习加速器)是用于深度学习操作的固定功能加速器引擎。 DLA旨在进行卷积神经网络的完整硬件加速。 DLA支持各种层,例如卷积,解卷积,完全连接,激活,合并,批处理规范化等。有关NVIDIA®TensorRT™层中DLA支持的更多信息

2021-02-11 12:02:43 2199 1

原创 TensorRT笔记(11)使用量化网络

使用量化网络10.使用量化网络10.1 使用TensorFlow的量化意识训练(QAT)10.2 将Tensorflow转换为ONNX量化模型10.3 导入量化的ONNX模型10.使用量化网络量化网络由显式量化和反量化节点组成,以便将张量从FP32转换为INT8,反之亦然。NVIDIA®TensorRT™支持带有QuantizeLinear和DequantizeLinear节点的量化ONNX模型。量化张量xy = saturate((x / y_scale) + y_zero_point), wh

2021-02-11 11:32:01 652 3

转载 Jetson nano 风扇启动/自启动

Jetson nano 风扇启动/自启动1.风扇启动2.风扇自启动1.风扇启动终端输入:sudo sh -c 'echo xxx > /sys/devices/pwm-fan/target_pwm'XXX : 范围 0-255 代表风速,自定义2.风扇自启动1)终端依次输入:cd /etcsudo touch rc.localsudo gedit rc.local2)在创建的文件中添加如下并保存:#!/bin/bashsleep 10sudo /usr/bin/jetso

2021-02-10 21:11:53 3109 4

原创 在Jetson nano上编译安装TVM

在Jetson nano上编译安装TVM前言参考资料编译流程LLVM的安装出现的问题及解决办法前言前面整理了几篇关于TVM的文章:TVM-初识TVMUbuntu16.04安装DockerTVM学习教程接下来就是编译安装TVM了,手头有的系统也就是ubuntu了,在网上查找了一些资料后发现可以在ubuntu系统上部署TVM,于是开开心心的开搞了,然后就是…不停的失败,真的是配环境配的快吐了,直到我在知乎上找到了下面的这篇文章:使用 TVM 在 Jetbot(Jetson Nano) 运行 Yol

2021-02-10 21:07:01 578

原创 TensorRT笔记(10)使用循环

使用循环9.使用循环9.1 定义循环9.2 形式语义学9.3 嵌套循环9.4 局限性9.5 用循环替换IRNNLayer和IRNNv2Layer9.使用循环NVIDIA®TensorRT™支持类似循环的结构,这对于循环网络很有用。 TensorRT循环支持扫描输入张量,张量的递归定义以及“扫描输出”和“最终值”输出。9.1 定义循环循环由循环边界层定义。ITripLimitLayer指定循环迭代多少次。IIteratorLayer使循环可以在张量上迭代。IRecurrenceLayer指定一

2021-02-10 11:38:31 542

原创 TensorRT笔记(9)使用空张量

使用空张量8.使用空张量8.1 IReduce层和空张量8.2 IMatrixMultiplyLayer,IFullyConnectedLayer和空张量8.3 插件和空张量8.4 IRNN层和空张量8.5 IShuffleLayer和空张量8.6 ISliceLayer和空张量8.7 IConvolutionLayer和空张量8.使用空张量NVIDIA®TensorRT™支持空张量。 如果张量具有一个或多个长度为零的尺寸,则它是一个空张量。 零长度尺寸通常没有特殊处理。 如果规则适用于长度为L的

2021-02-10 11:22:34 863

原创 TensorRT笔记(8)处理Dynamic shapes

处理动态形状7.处理Dynamic shapes7.1 指定运行时维度7.2 优化配置文件7.2.1 多个优化配置文件的绑定7.3 动态形状的图层扩展7.4 动态形状的限制7.5 执行张量vs.形状张量7.5.1 正式推理规则7.6 形状张量I / O(高级)7.7 具有动态形状的INT8校准7.处理Dynamic shapesDynamic shapes 是将某些或所有张量尺寸推迟到运行时的能力。 Dynamic shapes 可以通过C ++和Python接口使用。以下各节提供了更详细的信息;

2021-02-09 22:52:19 1282

原创 TensorRT笔记(7)使用无需重新格式化的网络I / O张量

使用无需重新格式化的网络I / O张量6.使用无需重新格式化的网络I / O张量6.1 使用无需重新格式化的网络I / O张量构建引擎6.2 支持的数据类型和I / O张量的内存布局组合6.3 使用INT8 I / O张量的网络进行校准6.4 DLA限制6.5 常见问题6.使用无需重新格式化的网络I / O张量汽车安全完整性等级(ASIL)对安全流程的要求 要求应从NvMedia DLA安全路径中删除对GPU地址空间的访问。 为实现此目标,引入了无格式的网络I / O张量,可让您在将数据传递给NVID

2021-02-09 16:13:47 312 1

原创 在Jetson Nano中使用TensorRT加速yolov3-tiny进行目标识别

Jetson Nano使用TensorRT加速yolov3-tiny目标识别前言环境准备运行TRT-yolov3测试(识别))前言Jetson nano运行yolov3-tiny模型,在没有使用tensorRT优化加速的情况下,达不到实时检测识别的效果,比较卡顿。英伟达官方给出,使用了tensorRT优化加速之后,帧率能达到25fps。本文详细介绍了在nano上怎么用tensorRT优化模型。环境准备安装protobufsudo pip3 install -i https://pypi

2021-02-08 21:07:06 967 1

原创 TensorRT笔记(6)以混合精度工作

以混合精度工作5.以混合精度工作5.1 使用C ++ API的混合精度5.1.1 使用C ++设置层精度5.1.2 使用C ++启用TF32推理5.1.3 使用C ++启用FP16推理5.1.4 使用C ++启用INT8推理5.1.4.1 使用C ++设置每张动态范围5.1.4.2 使用C ++进行INT8校准5.1.5 使用C ++以显式精度工作使用Python API的混合精度5.2.1 用Python设置图层精度5.2.2 使用Python启用FP16推理5.2.3 使用Python启用INT8推理

2021-02-07 20:56:51 786

原创 TensorRT笔记(5)使用自定义层扩展TensorRT

4.使用自定义层扩展TensorRT4.使用自定义层扩展TensorRT4.1 使用C ++ API添加自定义层4.1.1 示例:使用C ++添加自定义层4.1.2 示例:使用C ++添加Caffe不支持的自定义层4.1.3 示例:使用C ++添加UFF不支持的自定义层4.1.4 示例:使用C ++添加具有动态形状支持的自定义图层4.1.5 示例:使用C ++添加具有INT8 I / O支持的自定义层4.1.6 示例:使用C ++ API实现GELU运算符4.2 使用Python API添加自定义图层4.

2021-02-07 00:05:51 622

原创 TensorRT笔记(4)build、engine、context介绍

初学TensorRT框架的时候,build、engine、context和runtime这几个类经常搞不清楚,不知道他们又什么作用,下面就这几个类进行简单说明。1.builder:构建器,搜索cuda内核目录以获得最快的可用实现,必须使用和运行时的GPU相同的GPU来构建优化引擎。在构建引擎时,TensorRT会复制权重。IBuilder* builder = createInferBuilder(gLogger);INetworkDefinition* network = builder->c

2021-02-06 20:58:31 2226 3

转载 YOLOV5之TensorRT加速:Python版

YOLOV5之TensorRT加速:Python版前言1.Tensorrt安装请参考C++版(环境安装有python配置)2. PyCUDA安装3 主要过程3.1 创建runtime3.2 反序列化并创建context3.3 分配空间并绑定输入输出3.4 图像预处理3.5 执行推理3.6 后处理操作4. 结果展示前言这篇文章是知乎的一篇文章,算是对前面几篇TensorRT官方文档翻译的小结。后面打算在Jetson Nano上做YOLO算法的TensoRT加速和部署,这篇文章作者没有给出完整的源码,只是用

2021-02-06 20:40:55 4742 5

转载 YOLOV5之TensorRT加速:C++版

YOLOV5之TensorRT加速:C++版前言1.TesnsorRT安装1.1 驱动安装、cuda和cudnn配置1.2 环境安装2. Download tensorrtx3. 使用C ++ API从头开始创建网络定义3.1 gLogger3.2 过程3.2.1 创建builder 和 network3.2.2 添加输入层,包括输入层名称,输入维度及类型3.2.3 添加卷积层、池化层、全连接层以及Softmax等层3.2.4 输出4. 模型转换,生成.wts文件(二进制文件)5. 主要过程5.1 序列化5

2021-02-06 19:01:14 6873 3

原创 TensorRT笔记(3)使用C++ API

目录2.1 在C ++中实例化TensorRT对象2.2 在C ++中创建网络定义2.2.1 使用C ++ API从头开始创建网络定义2.2.2 在C ++中使用解析器导入模型2.2.3 使用C ++ Parser API导入Caffe模型2.2.4 使用C ++ UFF Parser API导入TensorFlow模型2.2.5 使用C ++ Parser API导入ONNX模型2.3 用C ++构建引擎2.3.1 构建器层定时缓存2.4 在C ++中序列化模型2.5 在C ++中执行推理2.6 C ++

2021-02-06 16:34:10 966

原创 TensorRT笔记(2)使用Python API

3.1将TensorRT导入Python程序导入TensorRT:import tensorrt as trt实施一个日志记录界面,TensorRT通过该界面报告错误,警告和参考消息。以下代码显示了如何实现日志记录接口。在这种情况下,我们取消了提示性消息,仅报告警告和错误。TensorRT Python绑定中包含一个简单的记录器。TRT_LOGGER = trt.Logger(trt.Logger.WARNING)3.2 在Python中创建网络定义使用TensorRT进行推理的第一步是根

2021-02-05 20:09:52 719 1

原创 TensorRT笔记(一)TensorRT简介

目录摘要1.什么是TensorRT?1.1 TensorRT的好处1.1.1 谁可以从TensorRT中受益1.2 TensorRT适合哪里?1.3 TensorRT如何工作?1.4 TensorRT提供哪些功能?1.5 我如何获得TensorRT?1.6 TensorRT弃用政策摘要本TensorRT 7.2.2开发人员指南演示了如何使用C ++和Python API来实现最常见的深度学习层。它显示了如何采用深度学习框架构建的现有模型,并使用该模型通过提供的解析器构建TensorRT引擎。开发人员指南

2021-02-05 14:17:40 761 1

原创 Jetson Nano Pytorch Error

a)问题: ARM64上跑报错:ImportError: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block解决:export LD_PRELOAD = /usr/lib/aarch64-linux-gnu/libgomp.so.1

2021-02-01 15:00:26 640 2

MATLAB/Simulink中的的S函数的应用

该文档详细介绍了MATLAB的simulink中的S函数的应用,讲解的很详细,可以下载学习。

2019-05-25

STM32F103-CAN通讯程序+代码.docx

该文档详细介绍了STM32的CAN通讯部分的理论内容,并详细讲解了STM32的CAN通讯过程中的接收部分的滤波的内容,这是传统教程中所没有的,里面附带了CAN通讯的代码,下载过后可以直接使用,可以在显示屏上显示发送和接收数据,并显示发送数据计数。

2019-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除