视频推理
文章平均质量分 76
普通网友
这个作者很懒,什么都没留下…
展开
-
从FPGA到camera ISP漫谈
从FPGA到camera ISP漫谈原创 2022-08-22 15:15:36 · 2218 阅读 · 0 评论 -
视频监控与视频编解码技术
视频监控与视频编解码技术原创 2022-08-21 04:31:15 · 2810 阅读 · 3 评论 -
新能源汽车,视频云及半导体产业链市场格局分析
新能源汽车,视频云及半导体产业链市场格局分析原创 2022-08-03 04:46:45 · 481 阅读 · 0 评论 -
有了NPU,还要DSP吗?
有了NPU,还要DSP吗?• 其实都是针对某种算法进行加速的处理器,不过NPU针对的是那些神经元算法,DSP针对的是信号处理算法,二者各有侧重NPU采用普林斯顿结构。DSP采用哈弗结构。各自有自己的指令系统。DSP是专注数字信号处理的,即使DSP处理器其实也是分了很多针对不同类型的信号的不同型号类型,比如有音频信号的、图像的等待NPU是专注于神经网络处理的,处理不同的数据。用通用架构的CPU处理AI和用NPU处理AI,速度是不同,但为什么还是离不开CPU呢,因为NPU只能处理AI计算,其它的也原创 2021-07-07 06:34:14 · 624 阅读 · 2 评论 -
视频软编码与硬编码
视频软编码与硬编码视频硬编码和软编码的区别在Android系统下视频编码有硬编和软编两种方式。顾名思义,硬编是通过手机提供的硬件模块进行编码;软编就是通过软件程序进行编码。硬编的好处是编码快,不占用CPU资源。缺点是Android机型比较多,坑也比较多。软编正好与硬编相反,优点是无论什么机型都一样处理。缺点则是占用大量CPU资源。硬编码、软编码有什么区别,归纳如下。一、软编码和硬编码如何区分软编码:使用CPU进行编码硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片原创 2021-07-07 05:57:28 · 2184 阅读 · 0 评论 -
多平台Gstreamer Multiplatform
多平台Gstreamer MultiplatformGStreamer可在所有主要操作系统上运行,例如Linux,Android,Windows,Max OS X,iOS,以及大多数BSD,商业Unix,Solaris和Symbian。已被移植到各种操作系统,处理器和编译器。可以在所有主要硬件体系结构上运行,包括x86,ARM,MIPS,SPARC和PowerPC,以及32位和64位以及小端或大端。GStreamer可以桥接到其它多媒体框架,以便重用现有组件(例如编解码器)并使用平台输入/输出机制:•原创 2021-04-13 05:59:19 · 177 阅读 · 0 评论 -
GStreamer 1.18.4稳定的错误修复版本
GStreamer 1.18.4稳定的错误修复版本GStreamer团队宣布最喜欢的跨平台多媒体框架的稳定的1.18版本系列中的另一个错误修复版本!此版本仅包含错误修复和重要的安全修复程序,并且从1.18.x更新应该是安全的。突出显示的错误修正Highlighted bugfixes:• 重要的安全修复程序,用于ID3标签读取,matroska和Realmedia解析以及gst-libav音频解码• 音频混音器,音频聚合器:输入缓冲区处理修复• encodebin3:改进流选择消息处理• ur原创 2021-04-13 05:43:29 · 424 阅读 · 0 评论 -
XGBoost4J-Spark基本原理
XGBoost4J-Spark基本原理XGBoost4J-Spark是一个项目,旨在通过使XGBoost适应Apache Spark的MLLIB框架,无缝集成XGBoost和Apache Spark。通过集成,用户不仅可以使用XGBoost的高性能算法实现,还可以利用Spark强大的数据处理引擎实现以下功能:• 特征工程:特征提取,变换,降维和选择等。• 管道:构造,评估和调整ML管道• 持久性:持久化并加载机器学习模型,甚至整个管道本文将介绍使用XGBoost4J-Spark构建机器学习管道的端原创 2021-03-22 06:04:19 · 1263 阅读 · 1 评论 -
MLIR: Infrastructure架构
MLIR: Infrastructure原创 2021-03-21 15:19:11 · 293 阅读 · 0 评论 -
MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
MLIR(Multi-Level Intermediate Representation Compiler)架构 InfrastructureOverview• Context• About MLIR• A few users of MLIR• Provocative (?) proposal for Clang and LLVM• ConclusionWhat is wrong with existing compilers?原创 2021-03-21 07:01:42 · 326 阅读 · 0 评论 -
NVIDIA GPU自动调度神经网络
NVIDIA GPU自动调度神经网络对特定设备和工作负载进行自动调整对于获得最佳性能至关重要。这是有关如何使用自动调度器为NVIDIA GPU调整整个神经网络。为了自动调整神经网络,将网络划分为小的子图,并对其进行独立调整。每个子图被视为一个搜索任务。任务调度程序可以对时间进行分片,并为这些任务动态分配时间资源。任务调度程序可以预测每个任务对端到端执行时间的影响,确定可以最大程度地减少执行时间的任务的优先级。对于每个子图,使用compute声明tvm/python/topi获取张量表达式形式的计算DA原创 2021-03-14 20:50:53 · 387 阅读 · 0 评论 -
如何使用TVM Pass Relay
如何使用TVM Pass红外线随着Relay / tir中优化遍数的增加,执行并手动维护其依赖关系变得很棘手。引入了一个基础结构来管理优化过程,将其应用于TVM堆栈中IR的不同层。Relay / tir程序的优化可以以各种粒度应用,分别使用tvm.relay.transform.FunctionPass/ tvm.tir.transform.PrimFuncPass和的功能级别和模块级别tvm.transform.ModulePass 。用户可以依靠在tvm.transform.Sequential r原创 2021-03-14 14:59:20 · 386 阅读 · 0 评论 -
VTA硬件
VTA硬件提供了VTA硬件设计的自上而下的概述。本硬件设计涵盖两个级别的VTA硬件:• VTA设计及其ISA硬件-软件接口的体系结构概述。• VTA硬件模块的微体系结构概述以及计算核心的微代码规范。VTA概述VTA是为快速,高效的密集线性代数而构建的通用深度学习加速器。VTA集成了一个简单的类似RISC的处理器,可以对1或2级张量寄存器执行密集的线性代数运算。另外,该设计采用解耦访问执行以隐藏内存访问延迟。在更广泛的范围内,VTA可以用作模板的深度学习加速器设计,以进行完整的堆栈优化,从而将通用原创 2021-03-14 14:17:51 · 777 阅读 · 0 评论 -
TensorFlow Frontend前端
TensorFlow Frontend前端TensorFlow前端有助于将TensorFlow模型导入TVM。Supported versions:• 1.12 and belowTested models:• Inception (V1/V2/V3/V4)• Resnet (All)• Mobilenet (V1/V2 All)• Vgg (16/19)• BERT (Base/3-layer)Preparing a Model for Inference准备推理模型Remove U原创 2021-03-14 13:45:22 · 312 阅读 · 0 评论 -
向Relay添加算子
向Relay添加算子为了在Relay IR中使用TVM算子,需要在Relay中注册算子,以确保将其集成到Relay的类型系统中。注册算子需要三个步骤:• 使用RELAY_REGISTER_OPC ++中的宏注册算子的Arity和类型信息• 定义一个C ++函数为算子生成一个调用节点,并为该函数注册一个Python API挂钩• 将上述Python API挂钩包装在更整洁的界面中该文件src/relay/op/tensor/binary.cc提供了前两个步骤的python/tvm/relay/op原创 2021-03-14 08:28:39 · 402 阅读 · 0 评论 -
TVM自定义数据类型
TVM自定义数据类型本文将介绍“自定义数据类型”框架,该框架可在TVM中使用自定义数据类型。介绍在设计加速器时,关键是如何近似地表示硬件中的实数。这个问题具有长期的行业标准解决方案:IEEE 754浮点标准。然而,当试图通过构建高度专业化的设计来最大限度地利用硬件时,使用通用IEEE 754浮点数是否有意义?知道工作负载的数字要求,是否可以构建更小,更快或更省电的数据类型?答案是肯定的!研究人员已经开始在学术和工业加速器设计中尝试新的数据类型。例如,Google的Tensor处理单元(TPU)使用bf原创 2021-03-14 07:45:17 · 275 阅读 · 0 评论 -
TinyML-TVM如何驯服TinyML
TinyML-TVM如何驯服TinyML低成本,以人工智能为动力的消费类设备的激增,导致机器学习研究人员和从业人员对“裸机”(低功耗,通常没有操作系统)设备产生了广泛的兴趣。尽管专家已经有可能在某些裸机设备上运行某些模型,但是为各种设备优化模型的挑战非常艰巨,通常需要手动优化设备特定的库。对于那些没有Linux支持的平台,不存在用于部署模型的可扩展解决方案。因此,为了定位新设备,开发人员必须实现一次性的定制软件堆栈,以管理系统资源和调度模型执行。机器学习软件的手动优化不是裸机设备领域独有的。实际上,对于原创 2021-03-13 06:21:00 · 423 阅读 · 0 评论 -
TVM自动调度器
TVM自动调度器随着模型大小,算子多样性和硬件异构性的不断增长,优化深度神经网络的执行速度非常困难。从计算的角度来看,深度神经网络只是张量计算的一层又一层。这些张量计算(例如matmul和conv2d)可以通过数学表达式轻松描述。在现代硬件上为其提供高性能的实现可能会非常具有挑战性。必须应用各种低级优化,利用特殊的硬件内在函数来实现高性能。建立线性代数和神经网络加速库(如CuBLAS,CuDNN,oneMKL和oneDNN)需要大量的工程工作。如果可以编写数学表达式,将其神奇地转化为有效的代码实现,那么原创 2021-03-12 06:15:46 · 642 阅读 · 0 评论 -
将代码生成器带入TVM
将代码生成器带入TVM为了使数据科学家不必担心开发新模型时的性能,硬件后端提供程序(例如Intel,NVIDIA,ARM等)可以提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核,或者提供诸如此类的框架。例如带有图形引擎的DNNL或TensorRT,使用户以某种方式描述其模型以实现高性能。此外,新兴的深度学习加速器还具有自己的编译器,内核库或运行时runtime框架。当用户尝试在新的内核库或设备上工作时,必须学习新的编程接口。结果,对统一编程接口的需求变得越来越重要,使所有用户和硬件原创 2021-03-11 06:18:13 · 511 阅读 · 0 评论 -
CUDA上的量化深度学习模型的自动化优化
CUDA上的量化深度学习模型的自动化优化深度学习已成功应用于各种任务。在诸如自动驾驶汽车推理之类的实时场景中,模型的推理速度至关重要。网络量化是加速深度学习模型的有效方法。在量化模型中,数据和模型参数都用诸如int8和的低精度数据类型表示float16。降低的数据带宽减少了推理时间和存储器/存储需求,以及功耗。同时,在适当的量化方案下,可以最小化量化模型的精度下降。量化模型特别适合研究人员和开发人员,使大型模型适合在各种设备(例如GPU,CPU和移动设备)上部署。以前,通常通过手工微内核针对不同的工作量原创 2021-03-10 06:04:07 · 663 阅读 · 0 评论 -
硬件平台上深度学习自动内核优化
硬件平台上深度学习自动内核优化对于AI开发人员来说,在各种硬件平台上优化深度神经网络的性能仍然是一个难题。在系统支持方面,在这里面临着许多问题:将训练有素的模型从多个前端(例如Tensorflow,ONNX,MXNet)部署到多个硬件平台(例如CPU,GPU,加速器)。此问题最关键的性能部分,为不断增长的模型体系结构和硬件平台获得高性能的内核实现。为了应对这一挑战,TVM采用了全栈编译器方法。TVM结合了代码生成和自动程序优化功能,以生成可与经过大量手动优化的库相媲美的内核,从而在包括ARM CPU,I原创 2021-03-09 06:18:45 · 362 阅读 · 0 评论 -
DLPack构建跨框架的深度学习编译器
DLPack构建跨框架的深度学习编译器Tensorflow,PyTorch和ApacheMxNet等深度学习框架提供了一个功能强大的工具包,可用于快速进行原型设计和部署深度学习模型。易用性通常是以碎片为代价的:孤立地使用每个框架是很容易的。垂直集成已使常见用例的开发流程简化了,但是冒险走过的路可能很棘手。一个支持不佳的方案是将张量直接从一个框架传递到内存中的另一个框架,而没有任何数据重复或复制。支持这种用例使用户能够将管道串联在一起,其中某些算子在一个框架中得到比在另一个框架中得到更好的支持(或更快速)原创 2021-03-09 05:49:46 · 404 阅读 · 0 评论 -
TensorFlow+TVM优化NMT神经机器翻译
TensorFlow+TVM优化NMT神经机器翻译背景神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力。本文为全球电子商务部署NMT服务。目前,将Transformer用作NMT系统的主要骨干,对基于经典RNN / LSTM模型的同等(甚至更高)精度进行高效的离线训练更为友好。尽管Transformer在离线训练阶段很友好,打破了跨时间步长的依赖性,但在线推理效率不高。在生产环境中,已经发现,初始版本的Transformer的推理速度约为1.5倍至2倍比LS原创 2021-03-08 06:25:10 · 850 阅读 · 0 评论 -
TVM在ARM GPU上优化移动深度学习
TVM在ARM GPU上优化移动深度学习随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长。与在台式机平台上所做的类似,在移动设备中使用GPU可以提高推理速度和能源效率。但是,大多数现有的深度学习框架都不能很好地支持移动GPU。困难在于移动GPU架构和台式机GPU架构之间的差异。这意味着在移动GPU上进行优化需要付出特殊的努力。繁琐的额外工作最终导致大多数深度学习框架中对移动GPU的支持不佳。TVM通过引入统一的IR堆栈解决了部署不同硬件的困难,通过该IR堆栈可以轻松完成针对不同硬件原创 2021-03-07 08:24:48 · 788 阅读 · 0 评论 -
TVM将深度学习模型编译为WebGL
TVM将深度学习模型编译为WebGLTVM带有全新的OpenGL / WebGL后端!OpenGL / WebGL后端TVM已经瞄准了涵盖各种平台的大量后端:CPU,GPU,移动设备等。这次,添加了另一个后端:OpenGL / WebGL。OpenGL / WebGL使能够在未安装CUDA的环境中利用GPU。在浏览器中使用GPU的方法。后端允许以3种不同的方式使用OpenGL / WebGL:• 本地OpenGL:可以将深度学习模型编译为OpenGL,完全使用Python在本地计算机上直接运行。原创 2021-03-07 07:04:49 · 288 阅读 · 0 评论 -
NNVM AI框架编译器
NNVM AI框架编译器深度学习已变得无处不在且不可或缺。看到对在多种平台(例如手机,GPU,IoT设备和专用加速器)上部署深度学习工作负载的需求不断增长。TVM堆栈弥合深度学习框架与面向性能或效率的硬件后端之间的鸿沟。TVM堆栈使为深度学习框架轻松构建端到端编译变得容易。拥有适用于所有框架的统一解决方案更好。NNVM编译器是一种开放式深度学习编译器,用于将前端框架工作负载直接编译到硬件后端。使用TVM堆栈中的两级中间表示(IR)来构建。可以参考原始的TVM公告,以获取有关TVM堆栈的更多技术细节。借助原创 2021-03-06 06:27:47 · 463 阅读 · 1 评论 -
Deep Learning部署TVM Golang运行时Runtime
Deep Learning部署TVM Golang运行时Runtime介绍TVM是一个开放式深度学习编译器堆栈,用于编译从不同框架到CPU,GPU或专用加速器的各种深度学习模型。TVM支持来自Tensorflow,Onnx,Keras,Mxnet,Darknet,CoreML和Caffe2等各种前端的模型编译。TVM编译模块可以部署在LLVM(Javascript或WASM,AMD GPU,ARM或X86),NVidia GPU(CUDA),OpenCL和Metal等后端上。TVM支持编程语言(如Ja原创 2021-03-06 06:02:42 · 553 阅读 · 0 评论 -
使用Relay部署编译ONNX模型
使用Relay部署编译ONNX模型本文介绍如何使用Relay部署ONNX模型的入门。首先,必须安装ONNX软件包。一个快速的解决方案是安装protobuf编译器,然后pip install onnx --user或参考官方网站。 https://github.com/onnx/onnximport onnximport numpy as npimport tvmfrom tvm import teimport tvm.relay as relayfrom tvm.contrib.dow原创 2021-03-05 06:07:40 · 416 阅读 · 1 评论 -
TVM交叉编译和远程RPC
TVM交叉编译和远程RPC本文介绍了TVM中使用RPC的交叉编译和远程设备执行。使用交叉编译和RPC,可以在本地计算机上编译程序,然后在远程设备上运行它。当远程设备资源受到限制时(如Raspberry Pi和移动平台),此功能很有用。本文将使用Raspberry Pi作为CPU示例,并使用Firefly-RK3399作为OpenCL示例。在设备上构建TVM运行时第一步是在远程设备上构建TVM运行时。本文所有指令都应在目标设备(例如Raspberry Pi)上执行。假设目标正在运行Linux。由于原创 2021-03-05 05:52:05 · 533 阅读 · 1 评论 -
自动生成低精度深度学习算子
自动生成低精度深度学习算子深度学习模型变得越来越大,越来越复杂,由于其有限的计算和能源预算,部署在低功耗电话和IoT设备上变得充满挑战。深度学习的最新趋势是使用高度量化的模型,该模型可对输入和几位权重进行操作,诸如XNOR-Net,DoReFa-Net和HWGQ-Net之类的网络正在稳步发展,提高了准确性。下面是一个低精度图形片段的示例。低精度卷积将量化的数据和位包放入适当的数据布局中,实现有效的比特卷积。输出具有更高的精度,在对其进行重新量化,另一个低精度算子发送之前,将传统的深度学习层(如批处理归一原创 2021-03-04 06:13:47 · 298 阅读 · 1 评论 -
将TVM集成到PyTorch上
将TVM集成到PyTorch上随着TVM不断展示出对深度学习执行效率的改进,很明显PyTorch将从直接利用编译器堆栈中受益。PyTorch的主要宗旨是提供无缝且强大的集成,而这不会妨碍用户。为此,PyTorch现在具有基于TVM的官方后端torch_tvm。用法很简单:import torch_tvmtorch_tvm.enable()PyTorch将尝试在其JIT编译过程中,将所有可能的运算符转换为已知的Relay运算符。背景与许多其他ML框架不同,PyTorch公开了一个渴望执行的编程接原创 2021-03-04 05:38:39 · 617 阅读 · 1 评论 -
自定义Kubernetes调度程序来编排高可用性应用程序
自定义Kubernetes调度程序来编排高可用性应用程序只要愿意遵守规则,在Kubernetes上进行部署和乘飞机旅行就可以很愉快。通常,事情会“正常工作”。但是,如果有兴趣与必须生存的鳄鱼一起旅行,或对必须保持可用状态的数据库进行扩展,则情况可能会变得更加复杂。为此,甚至可能更容易构建自己的飞机或数据库。除了爬行动物之外,扩展高可用性的有状态系统也不是一件容易的事。扩展任何系统都有两个主要组成部分:添加或删除系统将在其上运行的基础结构,以及确保系统知道如何处理自己添加和删除的其它实例。大多数无原创 2021-03-03 06:13:14 · 176 阅读 · 0 评论 -
Linux实现ffmpeg H.265视频编码
Linux实现ffmpeg H.265视频编码几乎所有观看的视频,数字地面电视,电缆,卫星或互联网上的压缩。原始的,未压缩的视频太大,会浪费太多的带宽。在DVD和Blu-ray之前,有视频CD(VCD)。这是用于在标准120mm(4.7英寸)光盘。光盘上的视频被编码为MPEG-1,一种用于在1处流式传输视频数据的有损压缩格式。5 Mbit / s。MPEG-1标准最有名的组件可能是音频压缩格式。官方称之为MPEG-1音频层III,可能将其称为MP3.MPEG-1来源于MPEG-2,被选为DVD视频的视频原创 2021-03-02 06:25:41 · 1326 阅读 · 0 评论 -
iOS视频硬编码技术
iOS视频硬编码技术一.iOS视频采集硬编码基本原理硬编码 & 软编码硬编码:通过系统自带的Camera录制视频,实际上调用的是底层的高清编码硬件模块,即显卡,不使用CPU,速度快软编码:使用CPU进行编码,如常见C/C // [videoOutput setAlwaysDiscardsLateVideoFrames:NO];// 3.2 设置输出代理,捕获视频样品数据dispatch_queue_t queue = dispatch_get_global_queue(DISPAT原创 2021-03-02 06:02:03 · 1955 阅读 · 0 评论 -
TVM虚拟机配置
TVM虚拟机配置目录3.1. Supported Guest Operating Systems3.1.1. Mac OS X Guests3.1.2. 64-bit Guests3.2. Unattended Guest Installation3.2.1. An Example of Unattended Guest Installation3.3. Emulated Hardware3.4. General Settings3.4.1. Basic Tab3.4.2. Advanc原创 2021-03-01 06:30:21 · 901 阅读 · 1 评论 -
基于Jittor框架实现LSGAN图像生成对抗网络
基于Jittor框架实现LSGAN图像生成对抗网络生成对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。GAN模型由生成器(Generator)和判别器(Discriminator)两个部分组成。在训练过程中,生成器的目标就是尽量生成真实的图片去欺骗判别器。而判别器的目标就是尽量把生成器生成的图片和真实的图片分别开来。这样,生成器和判别器构成了一个动态的“博弈过程”。许多相关的研究工作表明GAN能够产生原创 2021-02-28 15:40:13 · 502 阅读 · 0 评论 -
Angel图算法
Angel图算法[2.0]CommonFriends计算两个好友的共同好友数,某种程度上可以刻画两个节点之间的紧密程度。输入• 输入数据路径:输入文件所在路径,无权网络数据, 数据格式为两列 srcId(long) | dstId(long), 其中|为分隔符,分隔字段表示空白符或者逗号等。• 输入文件类型:格式包括以下两种:o csv:csv 文件。 输入数据包含 header 信息。 输入数据分割符:主要包括逗号、空格、分号、星号等分割符。o parquet:列式存储格式 parq原创 2021-02-28 10:18:23 · 287 阅读 · 0 评论 -
AIFramework框架Jittor特性(下)
AIFramework框架Jittor特性(下)原创 2021-02-28 07:26:01 · 203 阅读 · 0 评论 -
AIFramework框架Jittor特性(上)
AIFramework框架Jittor特性(上)原创 2021-02-28 07:14:46 · 205 阅读 · 0 评论 -
人工智能训练云燧T10
人工智能训练云燧T10基于邃思芯片打造的面向云端数据中心的人工智能训练加速产品,具有高性能、通用性强、生态开放等优势,可广泛应用于互联网、金融、教育、医疗、工业及政务等人工智能训练场景。超强算力单精度 (FP32)下算力20TFLOPS ,半精度及混合精度 (BF16/FP16) 下算力80TFLOPS 。• 模型通用支持CNN、RNN、LSTM、BERT等常用人工训练模型,可用于图像、 流数据、语音等训练场景 。• • 邃思芯片基于可编程芯片的设计理念,其计算核心包含32个通用可扩展神经元原创 2021-02-27 19:27:13 · 432 阅读 · 0 评论