
Jetson
文章平均质量分 52
基于Jetson平台,通过硬件解码、预处理、TensorRT和CUDA加速,实现高性能的边缘计算终端。
space01
AIoT & AIGC
展开
-
TengineInferPipe在Jetson平台基于TensorRT后端Demo实现
1.TengineInferPipe简介TengineInferPipe 是由 OPEN AI LAB 基于mediapipe框架进行改进、迭代的一套低代码、模块化的算法落地框架。通过解析部署配置文件,构建整个部署流程。可以用于快速构建算法部署sdk,以及可以作为一些可视化部署方案的中间层。其基本数据流程图如下图所示。2. 基于TensorRT后端Demo实现2.1 环境需求1)bazel >= 3.7 参考 bazel安装说明 安装bazel到系统中,或者下载对..原创 2022-05-16 14:20:42 · 335 阅读 · 0 评论 -
Jetson平台编译Tengine
1. Tengine简介Tengine于2017年在GitHub( https://github.com/OAID/Tengine )开源,是OPEN AI LAB(开放智能)推出的自主知识产权的边缘AI计算框架,致力于解决AIoT产业链碎片化问题,加速AI产业化落地。Tengine兼容多种操作系统和深度学习算法框架,简化和加速面向场景的AI算法在嵌入式边缘设备上快速迁移,以及实际应用部署落地,可以十倍提升基础开发的效率。Tengine一方面可以通过异构计算技术同时调用CPU、GPU、DSP原创 2022-05-16 13:25:44 · 583 阅读 · 0 评论 -
ByteTrack Demo搭建
ByteTack的Demo基于docker搭建。步骤如下:1. 下载ByteTrack源码git clone https://github.com/ifzhang/ByteTrack.git2.docker镜像准备cd ByteTrack && \docker build -t bytetrack:latest 3. 模型准备这里使用已经训练好的模型bytetrack_s_mot17.pth.tar,下载地址为bytetrack_s_mot17[goo..原创 2022-05-15 13:17:26 · 1367 阅读 · 0 评论 -
Triton服务器部署Yolov5s模型应用
目录1. Triton介绍2.Yolov5s模型部署2.1Triton服务端部署2.2Triton客户端部署1. Triton介绍NVIDIA Triton推理服务器是NVIDIA推出的开源推理框架,主要为用户提供在云和边缘推理上部署的解决方案。NVIDIA Triton 推理服务器 具有以下的特性:支持多种开源框架的部署,包括TensorFlow/PyTorch/ONNX Runtime/TensorRT 等,同时也支持用户提供自定义的服务后端(back...原创 2022-05-15 13:09:28 · 1438 阅读 · 2 评论 -
Jetson查看SM单元信息命令,包括threads per block, shared memory per block等
1. 在Jetson平台,使用以下命令搜索deviceQuery命令find / -name "deviceQuery"2. 使用bin/目录下的deviceQuery命令运行。/usr/local/cuda-10.2/samples/bin/aarch64/linux/release/deviceQuery原创 2022-05-14 21:21:13 · 312 阅读 · 0 评论 -
CUDA性能优化技巧
1.使用shared memory如果在kernel函数中,需要对global memory同一个数据多次访问,最好使用shared memory,先将数据从globalmemory拷贝到shared memory中,然后使用shared memory中数据进行读取。如果仅读取一次,则使用shared memory效果不大。2.使用限定符__restrict__提高性能对于read-only的指针,可以使用const * __restrict__进行限定,提高性能,如下面的ker..原创 2022-05-14 21:08:29 · 1297 阅读 · 0 评论 -
caffe升级到cuda10.2 + cudnn 8方法
将caffe的环境升级到cuda10.2 + cudnn8时,需进行下列修改,否则无法完成编译。1)include/caffe/util/device_alternate.hpp 将头文件#include <driver_types.h>放置在前面,如下:#include <driver_types.h> // cuda driver types#include <cublas_v2.h>#include <cuda.h>#...原创 2022-05-14 21:06:48 · 525 阅读 · 0 评论 -
调用CUDA kernel函数后,报错“invalid configuration argument”
调用CUDA kernel函数后,报错“invalid configuration argument”排查方法:1)使用cudaGetLastError()确定是哪个kernel函数导致的。2)检查kernel<<<GridDim,BlockDim>>>();其中,grid dim在前,block dim在后。注意:调用CUDA kernel函数,如果有指针,必须所有的指针都能够被GPU访问。...原创 2022-05-14 21:00:46 · 4958 阅读 · 0 评论 -
TensorRT使用自定义Plugin注意
1. plugin中的enque的inputs、outpus解释 int RefineDetectorLayerPlugin::enqueue(int batchSize, const void* const* inputs, void** outputs, void* workspace, cudaStream_t stream);inputs和outputs是一个数组,数组的内存储的是每一个输入或输出层的NCHW信息。如果refinedet层,inputs有8个输入,则inputs是一..原创 2022-05-14 20:53:31 · 300 阅读 · 0 评论 -
docker环境安装deepstream
1. 拉取镜像:dockerpullnvcr.io/nvidia/deepstream:5.1-21.02-samples2. deepstream实时预览xhost +如果需要显示,xhost +必须在创建docker实例之前执行一次,之后每次start docker之前都需要执行xhost +3. 启动a)指定gpudocker run --gpus '"'device=0'"' -it -p 2022:22 -v $PWD:/opt/nvidia/shar...原创 2022-05-14 20:45:00 · 904 阅读 · 0 评论 -
Jetson设置固定IP和DNS方法
打开/etc/network/interfaces文件:# interfaces(5) file used by ifup(8) and ifdown(8)# Include files from /etc/network/interfaces.d:source-directory /etc/network/interfaces.dsource interfaces.d/eth0然后在/etc/network/interfaces.d目录下创建eth0文件,eth0文件内容如下原创 2022-05-14 12:30:01 · 1674 阅读 · 0 评论 -
nvjmi解码流程
nvjmi解码流程时序图如下图所示。解码主要包括两部分,一是发送待解码的数据块到output plane,二是从capture plane接收解码后的图像数据。在开始解码之前,首先需要对output plane和capture plane分别进行配置。output plane配置先与capture plane配置。1)output plane:将缓存空间加入到buf队列中,用于编码块的数据缓存。2)capture plane:将缓存空间加入到buf队列中,用于解码后的数据缓存。.原创 2022-05-14 12:13:36 · 736 阅读 · 0 评论 -
TensorRT - 推动AI落地的利器:性能加速与部署应用
1. TensorRT是什么?在介绍TensorRT之前,先介绍一下GPU、CUDA和cuDNN。GPU具有强大的并行计算能力,尤其对于简单的大量的计算,如矩阵计算等,这与其固有的体系结构设计有关。1.1 GPU体系结构GPU采用了一种被称为SIMT的体系结构,也就是相对于CPU中的SIMD的概念。SIMT就是Single Instruction Multiple Threads,也就是一条指令多个线程同时执行,但是与SIMD有所不同的是SIMT同时执行的每个线程是可以有不同分支的。GPU这原创 2022-05-13 11:43:58 · 421 阅读 · 0 评论 -
nvjmi: Jetson视频解码性能优化
目录1 nvjmi介绍2 nvjmi基于Jetson硬件性能优化2.1硬件解码2.2 Transform2.3 颜色空间转换1 nvjmi介绍nvjmi是一基于Jetson Multimedia API的解码库,功能说明参见基于Jetson Multimedia API的解码库_space01的博客-优快云博客。2 nvjmi基于Jetson硬件性能优化Jetson平台提供了一套Multimedia API用于硬件编解码以及图像缩放、裁剪、旋转等图像...原创 2022-05-13 09:36:35 · 987 阅读 · 0 评论 -
CUDA常用功能接口API
将cuda的一些常用操作封装成接口API,供应用程序调用,一般主要用于模型部署应用的预处理。支持的功能:1. 内存管理 - cuAllocMapped 在Jetson系列的集成盒子上,CPU和GPU共用同一个内存地址,加速数据传输。 在PC端的显卡,CPU和GPU的内存地址可能不一致,需要分开使用CPU和GPU的指针。2. 硬件支持的缩放与颜色空间转换操作 - cuResizeRGBLike 实现将ARGB/RGBA转换成BGR,并且同时实现缩放操作。3. 颜色空间转换与数据类型转换操作 -原创 2022-05-12 11:13:44 · 1640 阅读 · 0 评论 -
基于Jetson Multimedia API的解码库
封装了Jetson Multimedia API的解码库nvjmi,主要功能如下。1)支持H.264解码。2)支持解码后直接硬件完成缩放操作。3)支持解码后直接硬件完成颜色空间转换操作。4)支持Jetpack 4.3、4.4、4.5。使用示例可参考下面的例子:if(jmi_ctx_ == nullptr) {jmi::nvJmiCtxParam jmi_ctx_param{}; if(rsz_w > 0 && rsz_h > 0){原创 2022-05-12 11:08:46 · 1330 阅读 · 0 评论