列出帖子

该操作将允许你查看该会员所有的帖子,注意你只能看到你有权限看到的板块的帖子。


只显示主题 - sisiy

页: [1] 2 3 ... 7
1
Deestream开发 / NVIDIA DeepStream 问题汇总
« 于: 九月 14, 2019, 04:40:07 pm »
1.运行DeepStream pipline出现:“NvDsBatchMeta not found for input buffer”错误
解决方案:Gst-nvstreammux插件还没有发布。从Deepstream4.0开始Gst-nvstreammux是一个必需的插件。
这是一个管道的例子:
Gst-nvv4l2decoder→Gst-nvstreammux→Gst-nvinfer→Gst-nvtracker→
Gst-nvmultistreamtiler→Gst-nvvideoconvert→Gst-nvosd→Gst-nveglglessink

2.问题:Deepstream参考程序无法启动,或任何插件无法加载。
解决方案:尝试清除GStreamer缓存运行命令:
程序代码: [选择]
$ rm -rf ${HOME}/.cache/gstreamer-1.0
如果加载插件有问题,也可以运行这个命令,终端上会显示插件的警告或者错误信息:
程序代码: [选择]
$ gst-inspect-1.0然后运行这个命令来寻找缺少的依赖项:
程序代码: [选择]
$ldd <plugin>.so其中<plugin>是加载失败的插件的名称。

3.问题:当神经网络发生变化时,应用程序无法运行。
解决方案:确保更新了相应的网络参数
[GIE] 组 配置 文件 中的 (比如:source30_720p_dec_infer-resnet_tiled_display_int8.txt).还要确保Gst-nvinfer
插件的配置文件也相应地更新。
更改模型时,请确保应用程序没有使用旧的引擎文件

2
Deestream开发 / 各版本Deepstream包含软件版本
« 于: 九月 14, 2019, 04:20:08 pm »
各版本Deepstream包含软件版本

3
Deestream开发 / Deepstream常见问题
« 于: 九月 14, 2019, 03:22:42 pm »
1. 如何卸载DeepStream 3.0?
您必须清理DeepStream 3.0库和二进制文件。输入以下命令之一进行清理:
对于dGPU:输入以下命令:
程序代码: [选择]
$ sudo rm -rf /usr/local/deepstream /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libnvdsgst_* /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnv* /usr/bin/deepstream* /usr/lib/x86_64-linux-gnu/libv4l/plugins/libcuvidv4l2_plugin.so
2.对于Jetson: 用最新的Jetpack刷机。
DeepStream 4.0支持哪些类型的输入流?
它支持H.264、H.265、JPEG和MJPEG流

3.Tesla GPU上H.264和H.265 decode的输出是什么?
https://developer.nvidia.com/nvidia-video-codec-sdk信息。

5
TensorRT开发者指南 / 2.2.2. Importing A Model Using A Parser In C++
« 于: 九月 04, 2019, 03:03:46 pm »
要使用c++解析器API导入模型,需要执行以下高级步骤:
1.创建TensorRT构建器和网络。
程序代码: [选择]
IBuilder* builder = createInferBuilder(gLogger);
nvinfer1::INetworkDefinition* network = builder->createNetwork();

如何创建日志程序的例子,可以访问 Instantiating TensorRT Objects in C++https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html#initialize_library

2.为特定格式创建TensorRT解析器。
程序代码: [选择]
ONNX
auto parser = nvonnxparser::createParser(*network, gLogger);
UFF
auto parser = nvuffparser::createUffParser();
Caffe
auto parser = nvcaffeparser1::createCaffeParser();

 

Use the parser to parse the imported model and populate the network.
parser->parse(args);
The specific args depend on what format parser is used. For more information, refer to the parsers documented in the TensorRT API.

6
答:那只可能这句没有执行到。
或者执行到了,但是没有来得及输出(或者fflush), 就立刻被干掉了(例如进程被一个KILL信号)。
应当没有其他可能了。
一般常见的是第一种。
很多作者以为能XXX行被执行到,然而实际上不能。
考虑到是在Kernel中使用printf(假设这个是CUDA kernel),我建议楼主确定这里能执行到(即:kernel没有在这行之前挂掉)。

注意CUDA往往是多线程的kernel,任何一个线程挂掉(例如因为无效的地址或者下表访存),那么整个kernel的一次启动都会整体被挂掉(一个grid)。

这点需要注意一下。别是别的线程挂了,然后你需要输出的线程被连累了。

8
TX2升级到4.2版本的固件后,nvcamerasrc被废弃了
朋友们注意,如果要使用opencv利用TX2板载相机采集图像需要将原来的nvcamerasrc更改为nvarguscamerasrc

9
群里经常有开发者说:能不能搞一个针对Jetson的面对面的活动啊!到场者均有精美礼品送哟!

——这次真的来了!

针对具有基本 Python 编程技能的学生和开发者,本次线下沙龙将通过对高性能人工智能学习/体验/开发平台:英伟达智能小车 Jetbot 的结构及功能剖析,详细介绍 Jetbot 的软硬件搭建、功能实现流程以及深度学习模型部署和优化的实施方案。力求从多个角度给观众详尽介绍如何快速搭建一个完整的人工智能边缘计算平台。


01
# 活 动 流 程


13:30-14:00  Jetson NANO/Jetbot 性能、硬件参数及硬件接口
14:00-14:30  Jetson NANO 系统及软件环境配置
14:30-14:40  茶歇
14:40-15:40  英伟达 Jetbot 解决方案
控制系统以及传感器接口
深度学习模型部署和优化:利用 TensorRT 优化部署神经网络模型
15:40-15:50  茶歇
15:50-16:30  实际应用成果展示

关于Jetson NANO/Jetbot

Jetbot 是一款易于设置和使用的开源机器人。它与许多配件兼容,并包括跟踪对象、避免碰撞以及其他 AI 强大功能的互动教程。该套件包括完整的机器人底盘、车轮和控制器,以及电池和 800 万像素摄像头。它支持 AI 框架,如 TensorFlow 和 PyTorch。

Jetson Nano 开发套件是一款易于使用且功能强大的迷你 AI 计算机,能够同时并行运行多个神经网络应用,例如图像分类、目标检测、物体分割和自然语言处理等。



02
# 嘉 宾 介 绍

  侯宇涛 
英伟达GPU应用市场总监

侯宇涛先生在 IT 领域工作了 30 年,曾在 AST、Digital Equipment Corp.、Compaq、Phoenix Technology 和 NVIDIA 公司就任工程师、销售和产品市场工作。自 2005 年加入 NVIDIA 公司,10 年在游戏、计算机视觉、HPC 和人工智能计算领域任职销售,推广 GPU 产品并积累了丰富的行业应用经验。近两年来专注于推广开发者社区,着重于 CUDA 教育网络和深度学习学院的开拓。1987 年,侯先生毕业于北京航空航天大学,具有电子工程学士学位。


  陈泳翰 
苏州吉浦迅科技总经理

陈泳翰,台湾交通大学计算机工程学士,香港理工大学信息管理硕士,国际注册管理会计师(CMA),苏州吉浦迅科技总经理,江苏省新加坡工业园区领军人才企业,曾任西安交通大学苏州研究院实验导师、中科院上海嘉定先进技术研究院高性能中心副主任,2009 年开始专注于 GPU/CUDA 并行计算应用推广,2014 年开始致力于 NVIDIA Jetson 嵌入式平台推广与技术支持。


  田博 
天之博特工程师

田博,清华大学机械学学士,新加坡国立大学机器人学硕士,曾任新加坡科技局信息所机器人部门高级研究工程师。清华大学企业家协会(TEEC)青创会员,温州市机器人与智能制造特聘专家,580计划创业人才,南京《创赢未来》金奖,创办南京天之博特机器人科技有限公司,志在培养机器人技术与开发人才。知乎机器人话题优秀回答者-“贾子枫”。于 2007 年开始从事机器人研发工作,获得过 RoboCup 人形组第四名,英国计算机协会机器智能大赛第二名。在 IROS 和 AAAI 等机器人和人工智能顶级国际会议发表文章。回国后进行移动服务式机器人创业,受邀在世界机器人大会、人工智能大会、机器人核心器件与算法等大小会议上发表演讲,创业项目参加央视财经频道的《创业英雄汇》。


  何琨 
NVIDIA开发者社区高级培训师

何琨(Ken He),NVIDIA 开发者社区高级培训师。拥有多年 GPU 开发和人工智能开发经验。在人工智能、计算机视觉、高性能计算领域曾经独立完成过多个项目,并且在机器人和无人机领域,有丰富的研发经验。曾针对图像识别,目标的检测与跟踪等方面完成多种解决方案,作为主要研发者参与 GPU 版气象模式 GRAPES。


03
# 活 动 信 息


时间:8 月 14 日(周三) 13:30–16:30

地点:上海大学宝山校区东校区计算机楼 1106 室
上海市宝山区南陈路333号



04
# 如 何 报 名


长按识别二维码,即刻报名👇


10
本来机器pci-e是3.0的显卡也是3.0的但是插上去就会显示2.0Gen,用的还是p5000的显卡。但是不管怎么换接口始终是pci-e2.0?

11
您还可以通过网络定义API直接向TensorRT定义网络,而不是使用解析器。此场景假设主机内存中的每层权重已经准备好在网络创建期间传递给TensorRT。
在下面的示例中,我们将创建一个简单的网络,其中包含输入、卷积、池、完全连接、激活和SoftMax层。要全面了解代码,请参考在/usr/src/tensorrt/samples/sampleMNISTAPI目录中逐层构建简单MNIST网络https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#mnistapi_sample示例。

1.创建构建器和网络:
程序代码: [选择]
IBuilder* builder = createInferBuilder(gLogger);
INetworkDefinition* network = builder->createNetwork();

2.将输入层添加到具有输入维度的网络中。一个网络可以有多个输入,尽管在这个例子中只有一个:
程序代码: [选择]
auto data = network->addInput(INPUT_BLOB_NAME, dt, Dims3{1, INPUT_H, INPUT_W});
3.添加含有隐含层输入节点的卷积层、滤波和偏置的步长和权重。为了从层中检索张量引用,我们可以使用:
程序代码: [选择]
auto conv1 = network->addConvolution(*data->getOutput(0), 20, DimsHW{5, 5}, weightMap["conv1filter"], weightMap["conv1bias"]);
conv1->setStride(DimsHW{1, 1});
注意:传递给TensorRT层的权重位于主机内存中。

4.添加池层:
程序代码: [选择]
auto pool1 = network->addPooling(*conv1->getOutput(0), PoolingType::kMAX, DimsHW{2, 2});
pool1->setStride(DimsHW{2, 2});

5.添加全连接激活层:
程序代码: [选择]
auto ip1 = network->addFullyConnected(*pool1->getOutput(0), 500, weightMap["ip1filter"], weightMap["ip1bias"]);
auto relu1 = network->addActivation(*ip1->getOutput(0), ActivationType::kRELU);

6.添加SoftMax层,计算最终概率,设置为输出:
程序代码: [选择]
auto prob = network->addSoftMax(*relu1->getOutput(0));
prob->getOutput(0)->setName(OUTPUT_BLOB_NAME);

7.Mark输出:
程序代码: [选择]
network->markOutput(*prob->getOutput(0));

12
TensorRT开发者指南 / 使用c++ API处理TensorRT
« 于: 七月 23, 2019, 05:19:18 pm »
使用TensorRT执行推理的第一步是从模型创建一个TensorRT网络。最简单的方法是使用TensorRT解析器库导入模型,该库支持以下示例中的序列化模型:

"Hello World" For TensorRT (both BVLC and NVCaffe)https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#mnist_sample

"Hello World" For TensorRT From ONNX https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#onnx_mnist_sample

Import The TensorFlow Model And Run Inference (used for TensorFlow) https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#mnist_uff_sample

另一种方法是直接使用TensorRT API定义模型。这需要您进行少量API调用来定义网络图中的每一层,并为模型的训练参数实现您自己的导入机制。

在这两种情况下,都需要显式地告诉TensorRT哪些张量是推理输出所必需的。没有标记为输出的张量被认为是可以被构造器优化掉的瞬态值。输出张量的数量没有限制,但是,将张量标记为输出可能会禁止对该张量进行一些优化。输入和输出张量也必须指定名称(使用ITensor::setName())。在推理时,您将为引擎提供指向输入和输出缓冲区的指针数组。为了确定引擎期望这些指针的顺序,可以使用张量名称进行查询。

TensorRT网络定义的一个重要方面是,它包含指向模型权重的指针,构建器将这些指针复制到优化的引擎中。如果通过解析器创建网络,解析器将拥有权重所占用的内存,因此在构建器运行之前不应该删除解析器对象。


13
TensorRT开发者指南 / TensorRT是如何工作的?
« 于: 七月 23, 2019, 03:41:26 pm »
1.3。TensorRT是如何工作的?

为了优化您的推理模型,TensorRT接受您的网络定义,执行优化,包括特定于平台的优化,并生成推理引擎。这个过程称为构建阶段。构建阶段可能需要相当长的时间,特别是在嵌入式平台上运行时。因此,典型的应用程序将构建引擎一次,然后将其序列化为计划文件供以后使用。

注意:生成的计划文件不能跨平台或TensorRT版本移植。计划是特定于特定的GPU模型,他们是建立在(除了平台和TensorRT版本),必须重新针对特定的GPU,如果你想在不同的GPU上运行他们。

构建阶段对层图执行以下优化:

*消除不使用输出的层
*卷积、偏置和ReLU运算的融合
*具有足够相似的参数和相同的源张量的操作的集合(例如,GoogleNet v5的inception模块中的1x1卷积)
*通过将层输出定向到正确的最终目的地来合并连接层。

如果有必要,构造器还会修改权重的精度。当生成8位整数精度的网络时,它使用一个称为校准的过程来确定中间激活的动态范围,从而确定量化所需的适当比例因子。

此外,构建阶段还在虚拟数据上运行层,以从其内核目录中选择最快的,并在适当的地方执行权重预格式化和内存优化。

14
TensorRT开发者指南 / What Is TensorRT?
« 于: 七月 22, 2019, 05:02:55 pm »
本TensorRT 5.1.5开发人员指南演示了如何使用c++和Python api实现最常见的深度学习层。它展示了如何使用深度学习框架构建的现有模型,并使用所提供的解析器来构建TensorRT引擎。开发人员指南还为常见的用户任务提供了一步一步的指导,比如创建一个TensorRT网络定义、调用TensorRT构建器、序列化和反序列化,以及如何向引擎提供数据和执行推理;同时使用c++或Python API。

1. 什么是 TensorRT?

TensorRT™的核心是一个c++库,它促进了对NVIDIA图形处理单元(gpu)的高性能推理。它与TensorFlow、Caffe、PyTorch、MXNet等训练框架相辅相成。它特别关注在GPU上快速高效地运行一个已经训练好的网络,以生成一个结果(这个过程在很多地方被称为评分、检测、回归或推理)。

一些训练框架,如TensorFlow,已经集成了TensorRT,因此可以使用它来加速框架内的推理。另外,TensorRT可以用作用户应用程序中的库。它包括用于从Caffe、ONNX或TensorFlow导入现有模型的解析器,以及用于以编程方式构建模型的c++和Python api。



图1所示。TensorRT是用于生产部署的高性能神经网络推理优化器和运行时引擎。
TensorRT通过组合层和优化内核选择来优化网络,从而提高延迟、吞吐量、电源效率和内存消耗。如果应用程序指定,它还将优化网络以降低运行精度,从而进一步提高性能和减少内存需求。

下图显示了定义为部分高性能推理优化器和部分运行时引擎的TensorRT。它可以接受在这些流行框架上训练的神经网络,优化神经网络计算,生成一个轻量级的运行时引擎(这是您唯一需要部署到生产环境中的东西),然后它将最大化这些GPU平台上的吞吐量、延迟和性能。

图2。TensorRT是一个可编程推理加速器。


TensorRT API包含了最常见的深度学习层的实现。有关层的更多信息,请参见TensorRT层。您还可以使用c++插件API或Python插件API来为TensorRT不支持的不常用的或更具创新性的层提供实现。

15
问题:请问一下,我要使用锁页内存或者0拷贝内存,那岂不是要把数据拷到这些内存里面去,那岂不是和传输差不多了,意义在哪里?例如我是封装成dll的,别人把数据指针丢给我,我还要复制到锁页或0拷贝内存里面去,和直接复制到gpu有多大区别吗


页: [1] 2 3 ... 7