GPU
文章平均质量分 54
许野平
非常喜欢软件设计这份工作,有不错的数学基础,喜欢读书、摄影与音乐。
展开
-
Rust:如何使用 Pytorch 深度学习模型?
crate需要与LibTorch库一起使用,因此你需要在系统中安装LibTorch,并确保Rust程序在编译时能够找到它。下面是一个简单的例子,展示了如何在Rust程序中加载一个PyTorch模型并进行预测。假设你已经有一个训练好的PyTorch模型,例如一个简单的线性回归模型,并将其保存为。最后,请确保你的Rust环境已经正确设置,并且你已经安装了与你的PyTorch模型兼容的LibTorch库。请注意,这个例子假设你已经有了一个训练好的PyTorch模型,并且该模型是用PyTorch的。原创 2024-05-17 18:19:53 · 478 阅读 · 0 评论 -
Rust:编写 CUDA 程序的示例
请注意,这个示例代码是一个简化的例子,用于演示 Rust 中 CUDA 编程的基本概念。在实际应用中,你可能需要处理更复杂的场景和错误处理逻辑。核函数的 CUDA 模块,并设置核函数的参数。最后,我们执行核函数,将结果从设备复制回主机,并验证结果的正确性。函数中,我们首先初始化 CUDA 运行时,然后分配设备内存,并将数据从主机复制到设备。以下是一个简单的 Rust CUDA 源代码例子,它展示了如何在 Rust 中调用 CUDA 核函数。应该是一个包含编译后的 CUDA 核函数的 PTX 文件。原创 2024-05-17 18:17:44 · 549 阅读 · 0 评论 -
Rust:对 CUDA 的支持
主要归功于Rust CUDA项目,该项目旨在将Rust语言推向高性能GPU计算的前沿。总的来说,Rust确实支持CUDA,并且有一个专门的项目致力于将Rust与CUDA紧密集成,使开发者能够充分利用GPU的计算能力。原创 2024-05-17 18:13:38 · 469 阅读 · 0 评论 -
GPU 的显存位宽
RTX 3060的显存位宽为192-bit,而RTX 3070的显存位宽更高,为256-bit。这意味着RTX 3070能够在一个时钟周期内传输更多的数据,从而可能提供更好的性能,特别是在需要高数据传输速率的应用场景中。显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大,则在周期内所能传输的信息量就越大,这意味着显存的数据吞吐量和传输性能会更高。因此,在选择显卡时,除了考虑显存容量和显卡核心的性能外,显存位宽也是一个非常重要的因素,它直接影响到显卡的性能表现。原创 2024-05-10 09:32:06 · 188 阅读 · 0 评论 -
自己编写 DeepStream 插件编译时找不到头文件
没有设置搜索路径,DeepStream 头文件位置在/opt/nvidia/deepstream/deepstream-5.1/sources/includes把下面两行代码添加到 /etc/profile 文件中即可。export C_INCLUDE_PATH=/usr/include/gstreamer-1.0:/usr/include/glib-2.0:/usr/lib/aarch64-linux-gnu/glib-2.0/include:/opt/nvidia/deepstream.原创 2021-07-14 16:23:35 · 355 阅读 · 0 评论 -
jetson nano 安装 Jetpack 后不执行 nvcc
原因是没有把 nvcc 的路径保存在环境变量 PATH 中。修改 /etc/profile 文件,在其中添加下面的配置内容:export PATH=/usr/local/cuda/bin:$PATH原创 2021-07-14 16:19:36 · 430 阅读 · 0 评论 -
Jetson Nano 安装 jtop
从NVIDIA官网下载Jetson Nano 2G系统镜像,制作好系统盘后,启动Nano,设置登录用户的账户信息后,我决定先安装原创 2021-06-09 17:31:39 · 4943 阅读 · 0 评论 -
Jetson Nano 配置 GTK+3.0
Jetson Nano 没安装 GTK+,学习 GStreamer 基本课程6时,源代码无法编译。按照下述方式安装后,编译通过。安装GTK+3.0:sudo apt-get install libgtk-3-dev 安装帮助文件,方便查看帮助 (可以把dehelp固定在工具栏上):sudo apt-get install devhelp不过,GStreamer 基本课程6的例子,虽然在 Jetson Nano 编译通过,还是需要注意两点:这个例子因为需要现实图形界面,只能直接在 Nano原创 2021-04-19 10:17:49 · 436 阅读 · 0 评论 -
Jetson Nano 系统安装:安装 CUDA
jetson nano默认已经安装了CUDA10.0,但是直接运行 nvcc -V是不会成功的,需要你把CUDA的路径写入环境变量中。$ sudo gedit ~/.bashrc在最后添加export CUBA_HOME=/usr/local/cuda-10.0export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATHexport PATH=/usr/local/cuda-10.0/bin:$PATH然后保存退出对原创 2021-04-12 15:42:34 · 5492 阅读 · 1 评论 -
讨论一下 Cuda 程序模型 和 GPU 硬件模型
1Cuda 是一个海量线程的框架。2一个 Cuda 程序,就是一个 Grid 结构,它包含了一大堆一模一样的 Block。一个 GPU 硬件,就是一个并行计算架构,它包含了一大堆一模一样的 SM 处理器。3一个 Cuda 程序分派到一个 GPU 上去运行,实际上就是把一大堆 Block 扔到 一大堆 SM 处理器上。Cuda 程序要想取得最佳的并行运算效率,Block 的数量应该是 SM 处理器数量的整数倍,这样才能让每个 SM 都没有机会闲着。所以,编写一个 Cuda 之前,记得先看看你的原创 2021-04-05 12:27:52 · 245 阅读 · 2 评论 -
Cuda 程序设计中 Grid 和 Block 维度设置的注意事项
1. Cuda 线程的 Grid 架构Cuda 线程分为 Grid 和 Block 两个级别,Grid、Block、Thread 的关系如下图。一个核函数目前只包括一个 Grid,也就是图中的 Grid0。一个 Grid 可以包括若干 Block,具体数量的上限没有查到。一个 Block可以最多包括 512 个 Thread。2. GPU 的 SM 架构GPU 由多个 SM 处理器构成,一个 SM 处理器包含 8 个 SP 核。一个 SP 核可同时处理 32 个线程,实际上就是同一套指令重原创 2021-03-26 18:51:34 · 6115 阅读 · 1 评论 -
GpuMat 在 OpenCV 不同版中的声明
代码如下:#if CV_VERSION_EPOCH == 2#define OPENCV2#include <opencv2/gpu/gpu.hpp>namespace GPU = cv::gpu; #elif CV_VERSION_MAJOR == 3#define OPENCV3#include <opencv2/cudaimgproc.hpp>namespace GPU = cv::cuda; #elif CV_VERSION_MAJOR == 4#原创 2021-03-25 19:26:42 · 261 阅读 · 0 评论 -
值得 Jetson 程序员收藏的代码:视频流硬解码至 GPU 内存的源代码范例
如何用 Jetson 的 GPU 实现硬解码?如何把解码后的数据保存在 GPU 内存?如何在 GPU 内存内完成对数据的操作?是每一位关心算法效率的程序员所关心的事情。但是,Jetson 的开发参考资料中,并没有专门就这一问题系统给出解答。本文把散落在各处的参考资料结合在一起,并参照英伟达官方提供的源代码,整理成一个完整的演示程序,并构造 CMake 文件,完成编译。原创 2021-03-25 11:03:36 · 1640 阅读 · 0 评论 -
英伟达 Jetson 程序员必读:图像的格式、存储、转换、预处理和后处理
有关使用这些函数的示例,请参见 cuda-examples.py 作为对下面伪代码的补充。在进入这里之前,建议您先阅读上一页关于摄像头流媒体和多媒体的内容,了解有关视频捕获和输出、加载/保存图像等方面的信息。1. 图像管理1.1 图像格式尽管视频流API和DNN对象(如imageNet、detectNet和segNet)期望图像为RGB/RGBA格式,但为传感器采集和低级别I/O定义了多种其他格式:位深度表示每像素的有效位数有关YUV格式的详细规范,请参阅fourcc.org网站注意:在原创 2021-03-25 09:59:34 · 1326 阅读 · 1 评论 -
英伟达 Jetson 程序员必读:摄像头流媒体和多媒体的程序设计
摄像头流媒体和多媒体0. 引言1. 流媒体的 URI 标识1.1 输入流1.2 输出流2. 命令行参数2.1 Input Options2.2 输出选项3. MIPI CSI摄像头4. V4L2摄像机4.1 V4L2格式5. RTP5.1 传输RTP5.2 远程查看RTP6. RTSP7. 视频文件7.1 编解码器7.2 调整输入大小7.3 循环输入8. 图像文件8.1 序列9. 源代码9.1 Python 源代码9.2 C++ 源代码0. 引言该项目通过各种接口和协议支持流式视频源和图像,包括:M原创 2021-03-24 17:38:58 · 501 阅读 · 0 评论 -
英伟达 Jetson 程序员必读:运行实时摄像机识别演示
运行实时摄像机识别演示这个 imagenet.cpp / imagenet.py 我们以前使用的示例也可以用于实时相机流。支持的摄像机类型包括:MIPI CSI摄像机(csi://0)V4L2摄像机(/dev/video0)RTP/RTSP流(rtsp://username:password@ip:port)有关视频流和协议的更多信息,请参阅“摄像头流和多媒体”页。下面是在照相机提要上启动程序的一些典型场景(运行–help以获取更多选项):C++$ ./imagenet csi://0原创 2021-03-24 16:31:20 · 987 阅读 · 0 评论 -
英伟达 Jetson 程序员必读:基于深度学习的图像识别算法的 C++ 代码编写范例
编码你自己的图像识别程序(C++)1. 项目 my-recognition2. 设置项目3. 源代码3.1 包含文件3.2 声明main()函数,并解析命令行3.3 从磁盘加载映像3.4 加载图像识别网络3.5 对图像进行分类3.6 解释结果3.7 结束代码4. 创建 CMakeLists.txt5. Build 项目6. 运行刚编译好的程序1. 项目 my-recognition现在,我们将从头开始创建一个新的图像识别程序,名为 my-recognition。此程序将能够作为repo之外的独立项目存在原创 2021-03-24 16:18:26 · 997 阅读 · 0 评论 -
英伟达 Jetson 的 CSI、USB、RTSP 摄像头连接字符串
The imagenet.cpp / imagenet.py samples that we used previously can also be used for realtime camera streaming. The types of supported cameras include:MIPI CSI cameras (csi://0)V4L2 cameras (/dev/video0)RTP/RTSP streams (rtsp://username:password@ip:port原创 2021-03-24 15:39:55 · 476 阅读 · 0 评论 -
英伟达 Jetson Nano 新手必备:Hello AI World —— 部署深度学习开发环境
Hello AI World! —— 部署深度学习1. Hello AI World1.1 系统安装1.2 推理1.3 训练1.4 附录2. 视频演练3. API 参考4. 代码示例5. 预训练模型6. 推荐系统要求7. 额外资源8. 两天的演示(数字)欢迎使用我们的教学指南,了解NVIDIA Jetson Nano/TX1/TX2/Xavier NX/AGX Xavier的推理和实时DNN视觉库]。此 repo 使用 NVIDIA TensorRT 将神经网络有效地部署到嵌入式 Jetson 平台上,原创 2021-03-24 15:27:10 · 3488 阅读 · 0 评论 -
英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片
英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片1. 引言1.1 支持的摄像头1.2 nvgstcapture2. 在屏幕上开始捕获和预览显示2.1 CSI摄像机2.2 USB摄像头3. 拍照并保存到磁盘3.1 CSI摄像机3.2 USB摄像头4. 捕获视频并保存到磁盘4.1 CSI摄像机4.2 USB摄像头5. 在容器内使用相机5.1 CSI摄像机5.2 USB摄像头6. 有用的资源1. 引言本指南将向您展示如何快速启动和运行CSI和USB摄像头。通过遵循本指南,您将能原创 2021-03-24 14:16:57 · 19408 阅读 · 10 评论 -
英伟达 Jetson Nano 新手必备:连接蓝牙音频
英伟达 Jetson Nano 新手必备:连接蓝牙音频1. 介绍2. 蓝牙适配器要求3. 连接蓝牙音频1. 介绍Jetson Nano 2GB开发工具包没有内置蓝牙。为了将蓝牙音频设备连接到开发工具包,您需要使用USB蓝牙适配器。按照以下步骤在开发者工具包上启用蓝牙音频。2. 蓝牙适配器要求蓝牙适配器必须支持Linux操作系统,并且您需要访问蓝牙适配器的驱动程序。3. 连接蓝牙音频在开发工具包上安装蓝牙适配器所需的所有驱动程序。按照蓝牙适配器制造商的说明操作。您可能需要在安装驱动程序后原创 2021-03-24 13:52:45 · 4817 阅读 · 3 评论 -
英伟达 Jetson Nano 新手必备:设置 VNC
1. 简介-什么是VNCVNC(虚拟网络计算)使您能够通过查看另一台计算机上的开发人员工具包的桌面并与之交互,从同一网络上的另一台计算机控制您的Jetson开发人员工具包。要了解有关VNC的更多信息,请单击此处。注:您的Jetson开发工具包和其他计算机必须在同一网络上。需要相当快的网络连接。较慢的连接将降低桌面交互体验。2. 在Jetson开发工具包上安装VNC服务器每次登录时启用VNC服务器如果您有Jetson Nano 2GB开发工具包(运行LXDE)mkdir -p ~/.co原创 2021-03-24 13:40:57 · 2898 阅读 · 1 评论 -
英伟达 Jetson Nano 必备:官方开发资源大全
以下指南将帮助您了解有关开发人员工具包和设置理想开发人员环境的更多信息:1. 开发套件用户入门指南英文版:Jetson 2GB Developer Kit User Guide中文版《Jetson 2GB 开发套件用户入门指南》入门指南详细介绍了开发人员工具包的所有输入和输出以及如何使用它们。2. 快速入门你的第一个 Jetson 容器了解什么是容器,以及如何在开发人员工具包中下载和使用它们。安装设置 VNC无头模式并不意味着只有命令行。了解如何从另一台计算机与开发人员工具包的Lin原创 2021-03-24 11:34:14 · 3412 阅读 · 4 评论 -
nVidia Jetson 系列模组视频编码、解码性能一览表
1. 视频编码2. 视频解码原创 2021-03-23 18:09:32 · 2568 阅读 · 0 评论 -
Nvidia Jetson SDK(JetPack)的 pkgconfig 文件(PC 文件)
用 C/C++ 开发 Jetson 模组,需要 JetPack 的 pkgconfig 文件。相关文件保存在目录 /usr/lib/pkgconfig 下。目录下存了几十个 pc 文件,我今天要用到视频流解码的相关内容,估计与下面几个文件相关:nvgraph-10.2.pcnvidia-ml-10.2.pcnvrtc-10.2.pcnvToolsExt-10.2.pcnvgraph-10.2.pc 用于加速图像分析,内容如下:cudaroot=/usr/local/cuda-10.2li原创 2021-03-20 16:43:22 · 251 阅读 · 0 评论 -
Nvidia Jetson 开发套件,视频编码的相关源码解读:videoOutput.h、videoOutput.cpp
类 videoOutput 的定义如下。查看了一下 videoOutput.cpp,发现它作为一个抽象类,依然很流氓地引用了其衍生类 glDisplay.h、gstEncoder.h。1. videoOutput 的定义class videoOutput{public: static videoOutput* Create( const videoOptions& options ); static videoOutput* Create( const char* URI, const原创 2021-03-20 14:54:08 · 559 阅读 · 0 评论 -
Nvidia Jetson 开发套件,视频解码的相关源码解读:videoSource.h、videoSource.cpp
为了解 Nvidia Jetson 视频解码过程,搜索了其中的代码,发现解码器是类 videoSource 的衍生类。于是决定先看看 videoSource 是如何定义的搜了一下, 发现 videoSource.h、videoSource.cpp 位于目录 /home/jetson/jetson-inference/utils/video。1. videoSource 的定义我们先来看看 videoSource.h 的内容。class videoSource{public: static vi原创 2021-03-20 14:32:05 · 1430 阅读 · 0 评论 -
如何使用硬件解码器在python中解码RTSP流?(NVidia JetSon Nano)
我有NVIDIA Jetson Nano和FullHD Ip相机。摄像机流RTSP / h264。我想从这台相机的python脚本中解码帧以进行分析。CPU 解码因此,我尝试使用类似的方法:# import the necessary packagesfrom imutils.video import VideoStreamimport imutilsimport timeimport cv2# grab a reference to the webcamprint("[INFO] sta转载 2021-03-17 15:59:58 · 5725 阅读 · 5 评论 -
英伟达 Nano 新手必读:安装性能监控程序 JTOP
Jetson Nano因为性能比同族其他兄长(Xavier、TX2)略微吃紧,包括CPU核/主频、内存、GPU核数等,因此“性能监控”的需求就更为明显。标准 Nano 上提供一个 tegrastats 工具,也能实时监控绝大部分的硬件执行状态,不过执行过的人都知道,这个工具并不是太好用。下图便是执行tegrastats的截屏:JTOP 安装步骤如下:sudo apt-get updatesudo apt-get full-upgradesudo apt install curlsudo apt原创 2021-03-15 15:07:10 · 2275 阅读 · 4 评论 -
英伟达 Nano 新手必读:Jetson Nano 深度学习算法模型基准性能测评
NVIDIA在2019年NVIDIA GPU技术会议(GTC)上宣布了Jetson纳米开发工具包,这是一款99美元的计算机,目前可供嵌入式设计师、研究人员和DIY制造商使用,在一个紧凑、易用的平台上,充分实现软件编程,为现代AI提供动力。Jetson Nano提供472个GFLOP的计算性能,四核64位ARM CPU和128核集成NVIDIA GPU。它还包括4GB LPDDR4内存,在一个高效的低功耗封装中,具有5W/10W电源模式和5V直流输入,如图1所示。新发布的JetPack 4.2SDK为Je原创 2021-03-15 14:16:59 · 7964 阅读 · 0 评论 -
英伟达 Jetson Nona/TX1/TX2/NX 新手必读:官方开发者资源链接
英伟达官方资源:Nano 入门手册英伟达深度学习AI网站英伟达开发者博客jetbot智能小车学习原创 2021-03-15 12:57:41 · 1491 阅读 · 0 评论 -
英伟达 nano 新手必读:Jetson Nano 2GB 开发者套件入门指南
引言NVIDIA®Jetson Nano™ 2GB开发工具包是教学、学习和开发人工智能和机器人技术的理想选择。有了一个活跃的开发人员社区并准备好构建开源项目,您将找到开始工作所需的所有资源。它以低廉的价格提供了令人难以置信的人工智能性能,并使人工智能和机器人技术的世界为每个人提供了完全相同的NVIDIA软件和工具,用于在所有行业创造突破性的人工智能产品。A Jetson Nano 2GB Developer Kit includes a non-production specification Jets原创 2021-03-15 12:48:50 · 8137 阅读 · 0 评论