12 2020 档案
摘要:双精度张量内核加快了高性能计算 通过NVIDIA Ampere架构,仿真和迭代求解器可将FP64数学提高多达2.5倍。 模拟可以帮助了解黑洞的奥秘,并了解冠状病毒上的蛋白质尖峰如何导致COVID-19。还可以让设计师创建从时尚汽车到喷气发动机的所有东西。 但是仿真也是地球上最苛刻的计算机应用程序之一
阅读全文
摘要:A100计算能力 A100 GPU支持新的计算功能8.0。表1比较了NVIDIA GPU架构的不同计算功能的参数。 表1.计算能力:GP100 vs. GV100 vs. GA100。 MIG架构 尽管许多数据中心的工作量在规模和复杂性上都在继续扩展,但某些加速任务的要求却不高,例如早期开发或推断小
阅读全文
摘要:A100 Tensor核心可加速HPC HPC应用程序的性能需求正在迅速增长。众多科学研究领域的许多应用程序都依赖于双精度(FP64)计算。 为了满足HPC计算快速增长的计算需求,A100 GPU支持Tensor操作,以加速符合IEEE的FP64计算,提供的FP64性能是NVIDIA Tesla V
阅读全文
摘要:A100 GPU硬件架构 NVIDIA GA100 GPU由多个GPU处理群集(GPC),纹理处理群集(TPC),流式多处理器(SM)和HBM2内存控制器组成。 GA100 GPU的完整实现包括以下单元: 每个完整GPU 8个GPC,8个TPC / GPC,2个SM / TPC,16个SM / GP
阅读全文
摘要:NVIDIA深度架构 今天,在2020年NVIDIA GTC主题演讲中,NVIDIA创始人兼首席执行官黄仁勋介绍了基于新NVIDIA Ampere GPU架构的新NVIDIA A100 GPU。本文介绍新的A100 GPU,并介绍了NVIDIA Ampere架构GPU的重要新功能。 现代云数据中心中
阅读全文
摘要:稀疏性如何为AI推理增加难度 NVIDIA Ampere架构使数学运算加倍,以加速对各种神经网络的处理。 如果曾经玩过游戏Jenga,那么将有一些AI稀疏感。 玩家将木制积木交叉成一列。然后,每个玩家轮流小心地移开一个障碍物,而不会倾倒立柱。 它从一开始就很容易,但是变得越来越毛茸茸,直到失败的玩家
阅读全文
摘要:cuSPARSELt开发NVIDIA Ampere结构化稀疏性 深度神经网络在各种领域(例如计算机视觉,语音识别和自然语言处理)中均具有出色的性能。处理这些神经网络所需的计算能力正在迅速提高,因此有效的模型和计算至关重要。神经网络剪枝(删除不必要的模型参数以生成稀疏网络)是一种在保持准确性的同时降低
阅读全文
摘要:在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB。即使考虑到令人尴尬的低HD分辨率(1280×720),原始图像也需要超过2.5 MB的存储空间。存储少至
阅读全文
摘要:在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库 根据调查,普通人产生的1.2万亿张图像可以通过电话或数码相机捕获。这样的图像的存储,尤其是以高分辨率的原始格式,会占用大量内存。 JPEG指的是联合图像专家组,该组织于2017年庆祝成立25周年。JPEG标准指定
阅读全文
摘要:nvJPEG Codec库 nvJPEG库是高性能的GPU加速库,用于解码,编码和转码JPEG格式的图像。nvJPEG2000库用于解码JPEG 2000格式的图像。与单CPU解码相比,依赖nvJPEG或nvJPEG2000进行解码的应用程序可提供更高的吞吐量和更低的延迟。 nvJPEG nvJPE
阅读全文
摘要:什么是OpenMAX技术分析OpenMAX OpenMAX是统一的抽象层,它允许访问否则需要供应商特定API的硬件。 Broadcom的MMAL(多媒体抽象层API)。 因此,OpenMAX允许使用此类硬件的软件的(某种)便携式实现。本文概述Raspberry Pi的硬件媒体功能以及如何使用Op
阅读全文
摘要:OpenMAX概述 媒体库可移植性标准 OpenMAX™是免费的跨平台API,通过支持跨多个操作系统和芯片平台开发,集成和编程加速多媒体组件,从而提供了全面的流媒体编解码器和应用程序可移植性。OpenMAX API将随处理器一起提供,以使库和编解码器实施者能够快速有效地利用新芯片的全部加速潜能-而不
阅读全文
摘要:二进制调色器程序管理 自动调色器缓存 比较与组合 调色器程序通常以源代码形式存储,并在应用程序通过调用OpenGL ES API首次使用时,由OpenGL ES驱动程序进行编译和链接。 还可以使用离线调色器编译器glslc预编译调色器程序。这样就无需在运行时编译那些调色器程序。如果应用程序使用的所有
阅读全文
摘要:WebRTC框架中的硬件加速 典型缓冲流量 应用程序和单元测试设置 重要方法调用 WebRTC软件包 局限性 WebRTC是一个免费的开源项目,可为浏览器和移动应用程序提供实时通信功能。 WebRTC的主要功能是能够发送和接收交互式高清视频。快速处理此类视频需要硬件加速的视频编码。 当前,开源Web
阅读全文
摘要:gst-crypto GStreamer插件 内容 1. gst-crypto概述 1.1gst-crypto GStreamer插件功能 1.2用例范例 2. GStreamer插件支持 3. 在本地Linux PC上构建并运行 3.1源代码获取 3.1.1GStreamer 0.10.x 3.1
阅读全文
摘要:GStreamer跨平台多媒体框架 Gstreamer基本概念 GStreamer是用于构造媒体处理组件图的库。它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。 应用程序可以透明地利用编解码器和过滤器技术的优势。可以通过编写带有通用
阅读全文
摘要:什么是GStreamer? GStreamer是用于创建流媒体应用程序的框架。基本设计来自俄勒冈大学研究生院的视频管道以及DirectShow的一些想法。 GStreamer的开发框架使编写任何类型的流多媒体应用程序成为可能。GStreamer框架旨在简化编写处理音频或视频或两者的应用程序的过程。它
阅读全文
摘要:CUDA Pro:通过向量化内存访问提高性能 许多CUDA内核受带宽限制,而新硬件中触发器与带宽的比率不断提高,导致带宽受限制的内核更多。这使得采取措施减轻代码中的带宽瓶颈非常重要。本文将展示如何在CUDA C / C ++中使用向量加载和存储,以帮助提高带宽利用率,同时减少已执行指令的数量。 本文
阅读全文
摘要:CUDA 8的混合精度编程 Volta和Turing GPU包含 Tensor Cores,可加速某些类型的FP16矩阵数学运算。这样可以在流行的AI框架内更快,更轻松地进行混合精度计算。要使用Tensor Core,需要使用 CUDA 9 或更高版本。NVIDIA还 为TensorFlow,PyT
阅读全文
摘要:在cuDNN中简化Tensor Ops 在Tesla V100 GPU中引入神经网络模型以来,神经网络模型已迅速利用NVIDIA Tensor Cores进行深度学习。例如,基于Tensor Core的解决方案宣布了ResNet50训练的性能记录。 NVIDIA的cuDNN库 使CUDA程序员能够优
阅读全文
摘要:cuDNN概述 NVIDIACUDA®深度神经网络库(cuDNN)是GPU加速的用于深度神经网络的原语库。cuDNN为标准例程提供了高度优化的实现,例如向前和向后卷积,池化,规范化和激活层。 全球的深度学习研究人员和框架开发人员都依赖cuDNN来实现高性能GPU加速。它使他们可以专注于训练神经网络和
阅读全文
摘要:部署可扩展的目标检测管道:推理过程(下) 融合 感兴趣的目标可以被遮挡。有时只能看到目标的一小部分(少至几个像素)。 图19.车辆和交通信号灯被遮挡。 图20:阻塞了总线。 图21:左侧的人被遮挡了。 像YOLOv3这样的基于CNN的目标检测方法有一个缺点,即要求特征图生成对目标遮挡具有鲁棒性。而且
阅读全文
摘要:部署可扩展的目标检测管道:推理过程(上) 基于YOLOv3的目标检测推理过程的所有代码都可以在eriklindernoren/PyTorch-YOLOv3 GitHub repo找到。 为了进行审查,使用了完整版的YOLO配置文件。它包含有关网络,卷积层,三个YOLO检测层以及其它层及其属性的信息。
阅读全文
摘要:目标检测推理部署:优化和部署 本文简要介绍了端对端推理管道的优化技术和部署。 将在以下三个方面研究推理优化过程:硬件优化,软件优化和模型优化。推理优化的关键指标如下: 吞吐量(未推理图像/秒) 硬件成本 存储 功耗消耗 质量 图1.三轴推理优化。 模型优化 YOLOv3-416模型用作预训练模型时,
阅读全文
摘要:GPU上的快速光谱图分区 图形是用于对物理,生物,社会和信息系统中许多类型的关系和过程进行建模的数学结构。用于解决各种高性能计算和数据分析问题。对于网络分析,基因组学,社交网络分析和其他领域,大规模图形处理的计算需求,只有加速器才能提供的强大而高效的计算性能。NVIDIA通过CUDA 8引入了nvG
阅读全文
摘要:图形数据标准化 AWS,Google,Neo4j,Oracle。这些只是在W3C关于图形数据的Web标准化的W3C研讨会上代表的一些供应商,内容必然会促进数据管理中最热门的部分:Graph的采用。 让许多供应商互相交谈,更不用说团结一致,这并非易事。增加学者和研究人员并不一定会使事情变得容易。现在,
阅读全文
摘要:图形数据库成为主流 图形技术正成为主流,而知识库则处于领先地位。 盖蒂 每十年似乎都有其数据库。在1990年代,关系数据库成为主要的数据环境,它的易用性和表格格式使其成为不断增长的为数据网络提供动力的自然需求。虽然关系数据库仍然很强大,但2000年代见证了XML数据库的兴起,NoSQL(不需要将数据
阅读全文
摘要:知识图:从图和数据库中获取知识 知识图到底是什么,以及关于它们的所有炒作是什么?如果想成为世界各地的Airbnbs,Amazon,Google和LinkedIn,那么学会区分真实的炒作,定义不同类型的图以及为用例选择合适的工具和数据库至关重要。 知识图被炒作。现在可以正式地说这句话,因为Gartne
阅读全文
摘要:图分析Rapids cuGraph 英伟达(Nvidia)建立的新的开源库可能是推进分析和使图形数据库更快的秘密要素。 在Nvidia GPU上进行并行处理。 Nvidia很久以前就不再只是“仅仅”一家硬件公司。由于其硬件是支持AI火爆的大部分计算运行的要素,因此Nvidia承担了为软件铺路的最后一
阅读全文
摘要:在NVIDIA(CUDA,CUBLAS)和Intel MKL上快速实现BERT推理 直接在NVIDIA(CUDA,CUBLAS)或Intel MKL上进行高度定制和优化的BERT推理,而无需tensorflow及其框架开销。 仅支持BERT(转换器)。 基准测试 环境 Tesla P4 28 * I
阅读全文
摘要:nvGraph-NVIDIA图形库 数据分析是高性能计算的不断增长的应用。许多高级数据分析问题可以称为图形问题。反过来,当今许多常见的图形问题也可以称为稀疏线性代数。这是nvGraph的动机,它利用GPU的线性代数功能来处理大型图形分析。 https://github.com/rapidsai/nv
阅读全文
摘要:MIT Graph实践概述 Features功能 • iCloud Support • Multi Local & Cloud Graphs • Thread Safe • Store Any Data Type, Including Binary Data • Relationship Model
阅读全文
摘要:适用于AMD ROC GPU的Numba概述 Numba通过按照HSA执行模型将Python代码的受限子集直接编译到HSA内核和设备功能中,从而支持AMD ROC GPU编程。用Numba编写的内核似乎可以直接访问NumPy数组。 术语 以下列出了HSA编程主题中的几个重要术语: 内核:由主机启动并
阅读全文
摘要:编写HSA内核 介绍 HSA提供类似于OpenCL的执行模型。指令由一组硬件线程并行执行。在某种程度上,这类似于 单指令多数据(SIMD)模型,但具有这样的便利:细粒度调度对于程序员而言是隐藏的,而不是使用SIMD向量作为数据结构进行编程。在HSA中,编写的代码将同时由多个线程(通常成百上千个)执行
阅读全文
摘要:BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有。为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM插件,如下所示: try: import numba from mylib.numba_utils
阅读全文
摘要:BEP 7:CUDA外部内存管理插件(上) 背景和目标 在CUDA阵列接口使得能够共享不同的Python之间的数据库的访问CUDA设备。但是,每个库都与其它库区别对待。例如: Numba在内部管理内存以创建设备和映射的host阵列。 RAPIDS库(cuDF,cuML等)使用Rapids Memor
阅读全文
摘要:缓存注意事项 Numba支持将编译后的函数缓存到文件系统中,以供将来使用相同的函数。 实施 通过保存编译后的目标代码(可执行代码的ELF对象)来完成缓存。通过使用目标代码,由于不需要编译,因此缓存的函数具有最小的开销。缓存的数据保存在缓存目录下(请参阅NUMBA_CACHE_DIR)。缓存的索引存储
阅读全文
摘要:关于Numba的线程实现的说明 由Numbaparallel目标执行的工作由Numba线程层执行。实际上,“线程层”是Numba内置库,可以执行所需的并发执行。在撰写本文时,有三个可用的线程层,每个线程层都通过不同的较低级别的host线程库实现。上thread线程和对于给定的应用/系统的thread
阅读全文
摘要:Hashing散列注意事项 Numba支持内置功能hash(),只需__hash__()在提供的参数上调用成员函数即可 。这使得添加对新类型的哈希支持变得微不足道,这是因为扩展APIoverload_method()装饰器的应用程序,需要重载用于为注册到该类型的__hash__()方法的新类型,计算
阅读全文
摘要:Numba实时变量分析 Numba使用引用计数进行垃圾回收,这是一种需要编译器配合的技术。Numba IR对必须插入decref的位置进行编码。这些位置通过实时变量分析确定。相应的源代码是https://github.com/numba/numba/blob/master/numba/interpr
阅读全文
摘要:适用于CUDA GPU的Numba 随机数生成 随机数生成 Numba提供了可以在GPU上执行的随机数生成算法。由于NVIDIA如何实现cuRAND的技术问题,Numba的GPU随机数生成器并非基于cuRAND。相反,Numba的GPU RNG是xoroshiro128 +算法的实现。xoroshi
阅读全文
摘要:适用于CUDA GPU的Numba例子 矩阵乘法 这是使用CUDA内核的矩阵乘法的简单实现: @cuda.jit def matmul(A, B, C): """Perform square matrix multiplication of C = A * B """ i, j = cuda.gri
阅读全文
摘要:共享CUDA内存 进程间共享 此功能仅限于Linux。 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列。为此,请使用.get_ipc_handle()设备阵列上的方法获取一个IpcArrayHandle对象,该对象可以转移到另一个进程。 Dev
阅读全文
摘要:CUDA功能和通用功能 本文描述了类似于CUDA ufunc的对象。 为了支持CUDA程序的编程模式,CUDA Vectorize和GUVectorize无法产生常规的ufunc。而是返回类似ufunc的对象。该对象是一个近似的对象,但与常规的NumPy ufunc不完全兼容。CUDA ufunc增
阅读全文
摘要:编写CUDA内核 介绍 与用于CPU编程的传统顺序模型不同,CUDA具有执行模型。在CUDA中,编写的代码将同时由多个线程(通常成百上千个)执行。解决方案将通过定义网格,块和线程层次结构进行建模。 Numba的CUDA支持提供了用于声明和管理此线程层次结构的工具。这些功能与NVidia的CUDA C
阅读全文
摘要:LLD-LLVM链接器 LLD是LLVM项目中的链接器,是系统链接器的直接替代,并且运行速度比它们快得多。它还提供了对工具链开发人员有用的功能。 链接器按完整性降序支持ELF(Unix),PE / COFF(Windows),Mach-O(macOS)和WebAssembly。在内部,LLD由几个不
阅读全文
摘要:Pass Infrastructure基础架构(下) pass注册 PassRegistration该类在示例中简要显示了各种pass类型的定义 。该机制允许注册pass类,以便可以在文本pass管道描述中创建它们 。注册示例如下所示: void registerMyPass() { PassReg
阅读全文
摘要:Pass Infrastructure基础架构(上) Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic Dependent Dialects Analysis Management Querying Anal
阅读全文
摘要:算子规范化 规范化是编译器IR设计的重要组成部分:它使实现可靠的编译器转换和确定代码中优劣的原因变得更加容易,并且使有关IR特定级别的目标的讨论变得更加有趣。丹·高曼(Dan Gohman)写了一篇文章 探讨这些问题。如果不熟悉这些概念,则值得阅读。 大多数编译器都有规范化的遍历,有时它们有很多不同
阅读全文
摘要:多级中间表示概述MLIR MLIR项目是一种构建可重用和可扩展的编译器基础结构的新颖方法。MLIR旨在解决软件碎片,改善异构硬件的编译,显着降低构建特定于域的编译器的成本以及帮助将现有编译器连接在一起的问题。 要引用MLIR,请使用this Arxiv publication 。 更多资源 有关ML
阅读全文
摘要:“ compiler-rt”运行时runtime库 编译器-rt项目包括: Builtins-一个简单的库,提供了代码生成和其他运行时runtime组件所需的特定于目标的低级接口。例如,当为32位目标进行编译时,将双精度数转换为64位无符号整数将编译为对“ __fixunsdfdi”函数的运行时ru
阅读全文
摘要:LLDB调试器 这是LLDB文档! LLDB是下一代高性能调试器。它是作为一组可重用的组件构建的,这些组件可充分利用大型LLVM Project中的现有库,例如Clang表达式解析器和LLVM反汇编程序。 LLDB是macOS上Xcode中的默认调试器,并支持在台式机,iOS设备和模拟器上调试C,O
阅读全文
摘要:Clang:LLVM的C语言家族前端 Clang项目为LLVM 项目的C语言家族(C,C ++,Objective C / C ++,OpenCL,CUDA和RenderScript)中的语言提供了语言前端和工具基础结构。提供了GCC兼容的编译器驱动程序(clang)和MSVC兼容的编译器驱动程序(
阅读全文
摘要:LLVM编译器架构 LLVM概述 LLVM项目是模块化和可重用的编译器及工具链技术的集合。尽管名称如此,LLVM与传统虚拟机关系不大。名称“ LLVM”本身不是缩写。它是项目的全名。 LLVM最初是伊利诺伊大学的一个研究项目,目的是提供一种基于SSA的现代编译策略,该策略能够支持任意编程语言的静态和
阅读全文
摘要:扩展LLVM:添加指令、内部函数、类型等 Introduction and Warning Adding a new intrinsic function Adding a new instruction Adding a new SelectionDAG node Adding a new typ
阅读全文
摘要:cuGraph-GPU图形分析 所述RAPIDS cuGraph库是GPU的集合加速图形算法,在GPU DataFrames中发现过程数据。cuGraph的愿景是使图分析无处不在,以至于用户只是根据分析而不是技术或框架来思考。为了实现这一构想,cuGraph操作时,在Python的层,在GPU上Da
阅读全文
摘要:nvGRAPH API参考分析(二) nvGRAPH Code Examples 本文提供了简单的示例。 1. nvGRAPH convert topology example void check(nvgraphStatus_t status) { if (status != NVGRAPH_ST
阅读全文
摘要:nvGRAPH API参考分析(一) 本文通过描述nvGRAPH库函数的输入/输出参数,数据类型和错误代码来指定其行为。 1. 返回值nvgraphStatus_t 除以下内容外,所有nvGRAPH库返回值 NVGRAPH_STATUS_SUCCESS表示当前的API调用失败,用户应重新配置以更正该
阅读全文
摘要:nvGRAPH原理概述 nvGRAPH的API参考分析。 简介 数据分析是高性能计算的不断增长的应用。许多高级数据分析问题可以称为图形问题。反过来,当今许多常见的图形问题也可以称为稀疏线性代数。这是NVIDIA®CUDA™8.0中新增的nvGRAPH的动机,该功能利用GPU的线性代数功能来处理最大的
阅读全文
摘要:代码生成codegen 该模块提供了从SymPy表达式生成直接可编译代码的功能。该codegen功能是SymPy中代码生成功能的用户界面。下面为可能希望直接使用框架的高级用户提供了一些实现细节。 注意 该codegen调用是不是自动在sympy命名空间,必须首先执行才能使用 Run code blo
阅读全文
摘要:使用Tensorize评估硬件内部特性 这是有关如何在TVM中执行张量的入门文档。 通过使用调度原语tensorize,人们可以用相应的内部函数代替计算单元,从而轻松利用handcrafted micro-kernels,扩展TVM以支持新的硬件体系结构。 本文的目的是展示张量的功能和用法,而不是提
阅读全文
摘要:使用元组输入进行计算和归约 在一个循环中计算出具有相同形状的多个输出,或者执行涉及多个值的归约,例如 argmax。这些问题可以通过元组输入解决。 本文将介绍TVM中元组输入的用法。 from __future__ import absolute_import, print_function imp
阅读全文
摘要:自动调试用于移动GPU的卷积网络 对特定设备进行自动调试对于获得最佳性能至关重要。这是有关如何调试整个卷积网络的说明文档。 TVM中Mobile GPU的算子实现以模板形式编写。模板具有许多可调旋钮(平铺因子,矢量化,展开等)。将调试神经网络中的所有卷积,深度卷积和密集算子。调试后,生成一个日志文件
阅读全文
摘要:编写可调模板并使用自动调谐器 这是TVM中自动调试模块的入门说明。 自动调试有两个步骤。第一步是定义搜索空间。第二步是运行搜索算法来探索这个空间。本文可以学习如何在TVM中执行这两个步骤。整个工作流程由矩阵乘法示例说明。 注意,本文无法在Windows或最新版本的macOS上运行。要使其运行,需要将
阅读全文
摘要:NVIDIA GPU自动调度神经网络 对特定设备和工作负载进行自动调试对于获得最佳性能至关重要。这是有关如何使用自动调度器为NVIDIA GPU调试整个神经网络的说明文档。 为了自动调试神经网络,将网络划分为小的子图,并对其进行独立调试。每个子图被视为一个搜索任务。任务调度程序可以对时间进行分片,并
阅读全文
摘要:CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档。 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板。用户只需要编写计算声明,而无需任何调度命令或模板。自动调度程序可以自动生成较大的搜索空间,并在该空间中找到良好的调度。 本文以矩阵乘法为例
阅读全文
摘要:自动调度GPU的卷积层 这是有关如何对GPU使用自动调度程序的文档。 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板。用户只需要编写计算声明,而无需任何调度命令或模板。自动调度程序可以自动生成较大的搜索空间,并在该空间中找到良好的调度。 本文以卷积层为例。 注意
阅读全文
摘要:为x86 CPU自动调度神经网络 对特定设备和工作负载进行自动调试对于获得最佳性能至关重要。这是有关如何使用自动调度器为x86 CPU调试整个神经网络的文档。 为了自动调试神经网络,将网络划分为小的子图,并对其进行独立调试。每个子图被视为一个搜索任务。任务调度程序可以对时间进行分片,并为这些任务动态
阅读全文
摘要:TVM Reduction降低算力 这是有关如何降低算力TVM的介绍材料。像sum / max / min这样的关联约简运算符是线性代数运算的典型构造块。 本文将演示如何降低TVM算力。 from __future__ import absolute_import, print_function i
阅读全文
摘要:Vitis-AI集成 Vitis-AI是Xilinx的开发堆栈,用于在Xilinx平台(包括边端设备和Alveo卡)上进行硬件加速的AI推理。它由优化的IP,工具,库,模型和示例设计组成。设计时考虑到了高效率和易用性,充分发挥了Xilinx FPGA和ACAP上AI加速的全部潜力。 TVM内部当前的
阅读全文
摘要:中继TensorRT集成 介绍 NVIDIA TensorRT是用于优化深度学习推理的库。这种集成将使尽可能多的算子从Relay转移到TensorRT,从而无需调整调度,即可在NVIDIA GPU上提高性能。 本文将演示如何安装TensorRT,并在启用TensorRT BYOC和运行时runtim
阅读全文
摘要:HLS后端示例 TVM支持带有SDAccel的Xilinx FPGA板。这是有关如何将TVM部署到AWS F1 FPGA实例的文档。 此功能仍处于试验阶段。暂时无法使用SDAccel部署端到端神经网络。 本文使用两个python脚本。 build.py-用于合成FPGA位流的脚本。 import t
阅读全文
摘要:TVM安装常用问题 如何添加新的硬件后端 如果硬件后端支持LLVM,则可以通过设置正确的目标三元组来直接生成代码target。 如果目标硬件是GPU,请尝试使用cuda,opencl或vulkan后端。 如果目标硬件是特殊的加速器,请checkout VTA:深度学习加速器堆栈,并将代码生成到TVM
阅读全文
摘要:使用Auto TensorCore CodeGen优化Matmul 本文将演示如何使用TVM Auto TensorCore CodeGen在Volta / Turing GPU上编写高性能matmul调度。这是一个生成tensorcore内核的解决方案,其中大多数转换都是通过ir传递完成的。用户还
阅读全文
摘要:如何使用TensorCores优化卷积 本文将演示如何在TVM中使用TensorCores编写高性能的卷积计划。假设卷积的输入有大量数据。首先介绍如何在GPU上优化卷积。 TensorCore简介 每个Tensor核心都提供一个4x4x4的矩阵处理阵列,该阵列可以运行 ,其中A,B,C和D是4x4矩
阅读全文
摘要:本文将演示如何在TVM中编写高性能的卷积实现。以平方大小的输入张量和滤波器为例,并假设卷积的输入量很大。使用不同的布局来存储数据,以实现更好的数据局部性。缓冲区布局为HWCN,代表高度,宽度,通道,批次。 准备和算法 将固定大小用于256通道和14 x 14尺寸的输入张量。批处理大小为256。卷积过
阅读全文
摘要:VTA:深度学习加速器堆栈 多功能Tensor加速器(VTA)是一个开放的,通用的,可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈。设计VTA来展示主流深度学习加速器的最显着和共同的特征。TVM和VTA共同构成了一个端到端的硬件-软件深度学习系统堆栈,其中包括硬件设计,驱动程序,JIT运行
阅读全文
摘要:TVM设计与构架构建 本文档适用于希望了解TVM体系结构和/或在项目上进行积极开发的开发人员。该页面的组织如下: • 实例编译流程Example Compilation Flow,描述TVM把一个模型的高级描述到可部署模块的步骤。 • “逻辑体系结构组件” Logical Architecture
阅读全文
摘要:Cuda Stream流分析 Stream 一般来说,cuda c并行性表现在下面两个层面上: Kernel level Grid level Stream和event简介 Cuda stream是指一堆异步的cuda操作,他们按照host代码调用的顺序执行在device上。 典型的cuda编程模式
阅读全文
摘要:本文通过此脚本从def文件自动生成。不要直接修改,而是编辑算子定义。 对于算子输入/输出的可辩别的,它可以是可辩别的、不可辩别的或未定义的。如果未指定变量的可辩别的,则该变量具有未定义的可辩别的。 ai.onnx (default) OperatorSince version Abs 13, 6,
阅读全文
摘要:从PyTorch到ONNX的端到端AlexNet 这是一个简单的脚本,可将Torchvision中定义的经过预训练的AlexNet导出到ONNX中。运行一轮推理Inference,然后将生成的跟踪模型保存到alexnet.onnx: import torch import torchvision d
阅读全文
摘要:使用TENSORRT和NVIDIA-DOCKER部署深部神经网络 当前部署工作流
阅读全文
摘要:用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行。 另请参阅TensorRT文档。 有关最近更改的列表,请参见changelog。 支持的TensorRT版本 Master分支上的开发适用于具有完整维度和动态架构shape支持的TensorRT 7.2.1的最新版本。
阅读全文
摘要:循环IRNNv2Layer实现 IRNNv2Layer实现循环层,例如循环神经网络(RNN),门控循环单元(GRU)和长期短期记忆(LSTM)。支持的类型为RNN,GRU和LSTM。它执行循环操作,该操作由几个众所周知的循环神经网络(RNN)“单元”之一定义。 层描述 该层接受输入序列 X,初始隐藏
阅读全文
摘要:2D池化IPoolingLayer IPooling层在通道内实现池化。支持的池类型为最大, 平均 和 最大平均混合。 层描述:二维池化 使用张量上的2D滤波器计算池化a tensor A, of dimensions a, to produce a tensor B, of dimensions
阅读全文
摘要:TensorRT 7.2.1开发初步 TensorRT 7.2.1开发人员指南演示了如何使用C ++和Python API来实现最常见的深度学习层。它显示了如何采用深度学习框架构建现有模型,并使用该模型通过提供的解析器构建TensorRT引擎。开发人员指南还提供了针对常见用户任务的分步说明,例如创建
阅读全文
摘要:Turing渲染着色器网格技术分析 图灵体系结构通过使用 网格着色器 引入了一种新的可编程几何着色管道。新的着色器将计算编程模型引入到图形管道中,因为协同使用线程在芯片上直接生成紧凑网格( meshlets ),供光栅化器使用。处理高几何复杂度的应用程序和游戏得益于两阶段方法的灵活性,该方法允许有效
阅读全文
摘要:NVIDIA FFmpeg 转码技术分析 所有从 Kepler 一代开始的 NVIDIA GPUs 都支持完全加速的硬件视频编码,而从费米一代开始的所有 GPUs 都支持完全加速的硬件视频解码。截至 2019 年 7 月,Kepler、Maxwell、Pascal、Volta 和 Turing 一代
阅读全文
摘要:异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU 。为此,应用程序必须在多个处理器上并发执行函数。 CUDA 应用程序通过在 streams 中执行异步命令来管理并发性,这些命令是按顺序执行的。不同的流可以并发地执行它们的命令,也可以彼此无序地执行它们的命令。 在不指定流的情况下执
阅读全文
摘要:CUDA统一内存分析 PascalMIG 如 NVIDIA Titan X 和 NVIDIA Tesla P100 是第一个包含页 GPUs 定额引擎的 GPUs ,它是统一内存页错误处理和 MIG 比率的硬件支持。提供了一个很好的机会来学习更多的统一内存。 快 GPU ,快内存…对吗? 正确的!
阅读全文
摘要:Tesla T4视频编码性能分析 从开普勒开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码; GPUs 支持完全加速的硬件视频解码。最近发布的图灵硬件提供了张量核心和更好的机器学习性能,但新的 GPU 还加入了新的多媒体功能,如改进的 NVENC 单元,以在视频编解码器中提供更好的压
阅读全文
摘要:自主数据类型:在TVM中启用自定义数据类型探索 介绍 在设计加速器时,一个重要的决定是如何在硬件中近似地表示实数。这个问题有一个长期的行业标准解决方案:IEEE 754浮点标准.1。然而,当试图通过构建高度专业化的设计来最大限度地利用硬件时,使用通用IEEE 754浮点有意义吗?如果知道工作负载的数
阅读全文
摘要:TinyML-TVM是如何驯服Tiny的(下) Lazy Execution实际上,随着通信开销开始占主导地位,一旦用户请求,就执行算子的开销变得非常昂贵。可以通过延迟评估直到用户需要调用的结果来提高系统的吞吐量。 从实现的角度来看,现在需要在主机端积累函数调用元数据,然后再将其刷新到设备,而不是急
阅读全文
摘要:TinyML-TVM是如何驯服Tiny的(上) 低成本、人工智能驱动的消费类设备的激增,导致了ML研究人员和从业者对“裸智能”(低功耗,通常没有操作系统)设备的广泛兴趣。虽然专家已经可以在一些裸机设备上运行某些模型,但是为不同设备集优化模型是一个挑战,通常需要手动优化特定于设备的库。对于那些没有Li
阅读全文
摘要:如何在TVM上集成Codegen(下) Bring DNNL to TVM: JSON Codegen/Runtime 现在实现将Relay,序列化为JSON表示的DNNL codegen,然后实现DNNL JSON runtime,反序列化和执行。尝试实现codegen,生成C兼容的程序。 要使T
阅读全文
摘要:如何在TVM上集成Codegen(上) 许多常用的深度学习内核,或者提供DNNL或TensorRT等框架和图形引擎,让用户以某种方式描述模型,从而获得高性能。此外,新兴的深度学习加速器也有自己的编译器、内核库或runtime框架。 当用户试图在一个新的内核库或设备上工作时,必须学习一个新的编程接口。
阅读全文
摘要:CodeGen准备存储库 CodeGen几乎总是与提供用于生成源文件的元数据的存储库结构一起使用,并且许多令牌需要使用存储库结构。 基本要求是有一个结构定义,并且该结构定义包含一个或多个字段定义。有些标记还要求定义键,有些则需要具有结构赋值的文件定义。 如果还没有存储库,则可以通过将现有的记录布局文
阅读全文
摘要:CodeGen按钮循环 按钮循环是一个模板文件构造,它允许您迭代CodeGen拥有的按钮信息集合。 在按钮循环中处理的按钮的定义可以来自两个位置之一。 如果基于UI工具箱输入窗口定义进行处理,则默认情况下,按钮集合由该输入窗口定义中的按钮确定。否则,按钮集合由名为默认按钮.xml,您将在安装Code
阅读全文
摘要:CodeGen标记循环 标记循环是一个模板文件构造,它允许您迭代CodeGen拥有的标记信息的集合。为了使用标记循环,必须基于至少定义了一个字段标记的存储库结构生成代码。 标记循环由一对匹配的<Tag_LOOP>和</Tag_LOOP>标记分隔,它们围绕着要为每个标记插入的模板代码。对于结构中的每个
阅读全文
摘要:CodeGen结构循环回路 structure循环是一个模板文件构造,它允许您迭代CodeGen拥有的有关结构的集合。为了使用结构循环,必须同时基于多个存储库结构生成代码。 CodeGen可以通过以下两种方式之一处理多个结构: •可以在命令行上,在-s命令行选项之后指定多个结构,-ms命令行选项可用
阅读全文
摘要:CodeGen处理Synergy方法目录 如果Synergy应用程序开发环境包括使用Synergy/DE xfServerPlus,则可以基于Synergy方法目录中包含的元数据生成代码。要启用此功能,必须将方法目录导出到XML文件,然后使用-smc和-interface命令行选项(可选)。 处理单
阅读全文
摘要:CodeGen用户定义的扩展令牌 用户定义的扩展令牌是一种特殊的令牌,开发人员可以确定令牌的名称以及在代码生成过程中遇到令牌时要插入的值。 CodeGen支持多种机制,允许通过以下方式实现用户定义的令牌: •Environment variables. •Include files. •Comman
阅读全文
摘要:CodeGen编写自定义表达式标记 CodeGen支持开发人员通过编写plug-in modules插件模块来定义自定义表达式标记的能力,以提供与这些标记相关联的逻辑。这种plug-in modules插件机制的实现方式不需要开发人员编辑核心CodeGen源文件。这一点很重要,因为这意味着它不会妨碍
阅读全文
摘要:CodeGen CreateFile实用程序 CreateFile实用程序允许根据存储库文件或结构定义创建ISAM文件。 CreateFile实用程序的命令行选项如下: CreateFile -f <fname> | -s <sname> [-out filespec] [-r] [-h] -f <
阅读全文
摘要:CodeGen融合核心关系循环扩展 Expansion Tokens <HARMONYCORE_RELATION_NAME> 插入当前关系的名称。关系名称将自动生成,但可以由Harmony Core自定义文件中CustomRelationNames属性中的条目覆盖。 替代形式:无 <HARMONYC
阅读全文
摘要:CodeGen融合核心扩展定制文件 融合核心定制文件 Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization.json。必须将此文件与正在使用的CodeGen模板放在同一位置。 自定义文件必须至少包含一个空JS
阅读全文
摘要:CodeGen API分析 作为使用命令行界面的替代方法,开发人员可以使用核心CodeGen环境编写自定义工具或实用程序来生成代码,从而将CodeGen更紧密地集成到开发环境中。 为了实现这一点,CodeGen提供了一个.NET API,开发人员可以直接对其进行编码以生成代码。CodeGen API
阅读全文
摘要:CodeGen字段循环Field Loop 字段循环是一个模板文件构造,它允许迭代CodeGen拥有的有关字段的集合。这些字段定义可以来自以下两个位置之一: •如果基于从存储库结构中获取的信息生成代码,则字段集合将基于存储库结构中定义的字段。 •如果根据UI Toolkit输入窗口(在窗口脚本文件中
阅读全文
摘要:CodeGen概述 CodeGen是在协同开发环境中工作的软件开发人员可以用来生成源代码的工具。该代码可能是Synergy DBL代码,也可能是其他语言的源代码。CodeGen并不局限于为任何特定的开发环境或编程语言生成代码。 当然,你不能仅仅使用CodeGen生成任何你能想象得到的源代码。在生成代
阅读全文
摘要:算子扫描与递归核 这是关于如何在TVM中进行循环计算的介绍资料。递归计算是神经网络的一种典型模式。 from __future__ import absolute_import, print_function import tvm import tvm.testing from tvm import
阅读全文
摘要:算子本质与数学函数 TVM支持基本的算术运算。在许多情况下,通常需要更复杂的内置函数。例如exp取函数的指数。 这些函数依赖于目标系统,可能具有不同目标平台的不同名称。本文将学习如何调用这些特定于目标的函数,以及如何通过tvm的内在API统一接口。 from __future__ import ab
阅读全文
摘要:TVM中的调度原语 TVM是一种用于高效内核构造的领域专用语言。 本文将展示如何通过TVM提供的,各种原语调度计算。 from __future__ import absolute_import, print_function import tvm from tvm import te import
阅读全文
摘要:NVIDIA GPU的神经网络自动调度 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要。这是一个关于如何使用自动调度器为NVIDIA GPU调整整个神经网络的资料。 为了自动调整一个神经网络,将网络划分成小的子图并独立地进行调整。每个子图被视为一个搜索任务。任务调度器对时间进行切片,并动态
阅读全文
摘要:ARM-CPU卷积网络的自动调谐 为特定的ARM设备自动调谐对于获得最佳性能至关重要。这是一个关于如何调整整个卷积网络的资料。 以模板的形式编写了TVM中ARM CPU的操作实现。模板有许多可调旋钮(平铺系数、矢量化、展开等)。将调整神经网络中的所有卷积和深度卷积算子。在调优之后,生成一个日志文件,
阅读全文
摘要:x86 cpu卷积网络的自动调谐 这是一个关于如何为x86cpu调整卷积神经网络的文档。 本文不会在Windows或最新版本的macOS上运行。要让它运行,需要将主体包装在 if __name__ == "__main__": 块中。 import os import numpy as np imp
阅读全文
摘要:NVIDIA GPU卷积网络的自动调谐 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要。这是关于如何为NVIDIA GPU调整整个卷积网络。 NVIDIA GPU在TVM中的操作实现是以模板形式编写的。模板有许多可调旋钮(平铺系数、展开等)。将调整神经网络中的所有卷积和深度卷积算子。在调优
阅读全文
摘要:编写可调模板并使用Auto-tuner自动调谐器 本文介绍在TVM自动调谐模块。 自动调谐有两个步骤。第一步是定义搜索空间。第二步是运行一个搜索算法来探索这个空间。可以学习如何在TVM中执行这两个步骤。以矩阵乘法为例说明了整个工作流程。 本文不会在Windows或最新版本的macOS上运行。要让它运
阅读全文
摘要:用Auto-TensorCore代码生成优化matmul 将演示如何使用TVM Auto TensorCore CodeGen在Volta/Turing GPU上编写高性能matmul调度。这是一个透明的解决方案,可以生成大多数在ir过程中完成的转换的tensorcore内核。用户还可以编写带有te
阅读全文
摘要:摘要 基于视觉的动作识别在实践中遇到了不同的挑战,包括从任何角度识别主题,实时处理数据以及在现实环境中提供隐私。甚至识别基于配置文件的人类动作(基于视觉的动作识别的一个子集),在计算机视觉中也是一个巨大的挑战,它构成了理解复杂动作,活动和行为的基础,尤其是在医疗保健应用和视频监控系统中。因此,介绍了
阅读全文
摘要:Considerations on Lidar Design 双基地还是单基地? 双轴还是同轴? 几何重叠 向上还是向下看? 关心分散还是只关心时间? 发射器和接收器的波长 是否可调? 发射器和接收器的带宽 功率/能量考虑 bit宽度-脉冲持续时间,重复率 夜间还是全天工作? 体积、质量、成本、可靠
阅读全文
摘要:激光雷达Lidar Architecture and Lidar Design(上) 介绍 激光雷达结构: 基本条件 构型和基本布置 激光雷达设计: 基本思想和基本原则 总结 介绍 激光雷达结构是激光雷达系统设备的技术方案(包括硬件和软件)。 介绍 激光雷达的设计基于对物理相互作用的理解,并进行了相
阅读全文
摘要:RADAR和LIDAR区别分析 如果一直关注自动驾驶汽车的新闻,可能已经注意到许多自动驾驶汽车制造商正在使用LIDAR(光成像检测和测距)进行车载物体检测。对于许多自动 驾驶汽车应用而言,LIDAR比其他常用的对象检测技术RADAR(无线电检测和测距)更好。但是,当需要经受恶劣环境的高质量,负担得起
阅读全文
摘要:Lidar激光雷达与Radar雷达 自动驾驶技术正迅速成为汽车工业的驱动力。来自全球的汽车制造商正在与Google等顶级高科技巨头以及其他知名初创公司合作,共同开发下一代自动驾驶汽车。中国也开辟了自动驾驶汽车之路。诸如Uber和Lyft之类的流行乘车共享服务也成为自动驾驶汽车的坚定拥护者,因为它们不
阅读全文
摘要:自动驾驶仿真分析,提高研发效率 在汽车研发中,CAE用于模拟和分析刚度,强度,模式,碰撞和NVH。 受益对象 高性能有限元分析(EFEA) 用于分析车辆碰撞安全性,高速冲击和爆炸 隐形有限元分析(IFEA) 用于分析车辆结构强度,振动模式,疲劳,热量和NVH 流体分析 用于分析外部气流,空气通道和气
阅读全文
摘要:数字营销,带动汽车销量增长 简化服务流程,建立数据规范,并集成在线和离线营销,改善客户体验并促进汽车销售。 受益人 全渠道整合与统一管理 连接到全渠道用户,并整合所有有价值的营销元素,例如消费者,供应商和4S商店。使用标准数据字段,创建统一的内容和用户体验管理系统。 精准营销,个性化服务 利用云企业
阅读全文
摘要:车联网,挖掘数据价值 为车主提供更丰富,个性化的服务,从而改善客户体验和忠诚度。 好处 统一的多服务平台 为客户和合作伙伴提供安全,高效和智能的互联汽车平台,该平台将TSP,新能源汽车监控平台,车队管理平台和运输风险监控平台统一在一起。 智能互联车载套件 支持预集成方案,例如用户配置文件,路线分析,
阅读全文
摘要:无人驾驶汽车开发平台,加速无人驾驶汽车的商业化 提供高度可扩展的存储,高性能计算和先进的一站式AI开发平台。使用户能够收集,接收,存储和分析自动驾驶车辆数据,从而支持该领域的全面发展。 受益对象 数据收集与物流 使用数据快递服务将大量自动驾驶测试数据导入开发平台。 资料储存平台 提供需要低频访问的标
阅读全文
摘要:MLIR多级中间表示概述 MLIR项目是构建可重用和可扩展的编译器基础设施的一种新方法。MLIR旨在解决软件碎片化问题,改进异构硬件的编译,显著降低构建特定领域编译器的成本,并帮助将现有编译器连接在一起。 More resources 有关MLIR的更多信息,请参见: l LLVM论坛的MLIR部分
阅读全文
摘要:布局汽车智能系统 中国制造业巨人huawei曾多次表示不会制造自己的汽车。但是,它将帮助汽车制造商制造出更好的汽车。目前,huawei对汽车行业的投资和重视程度正在迅速提高。根据中国以外的最新信息,该公司正在经历着巨大的工业和商业变革。在汽车行业,huawei的业务增加了汽车零部件的研发,生产,销售
阅读全文
摘要:车联网V-2X智能汽车驾驶 早期的功能互联汽车无法满足全球车主针对不同应用和定制移动服务的各种需求。这导致较低的客户续订率,较高的建造和运营成本以及较低的组装率。通常,在没有统一平台的情况下,不同的车辆必须访问不同的服务平台。孤立的烟囱式系统导致维护复杂且管理昂贵。如果访问多达200,000辆汽车,
阅读全文
摘要:激光雷达数据到云cloud 在美国地质调查局的3D提升计划(3DEP)被激发到一个新的方式可用性宣布从3DEP仓库的访问和处理激光雷达点云数据。 3DEP一直在美国使用光检测和测距(激光)技术获取三维信息,这是一种基于机载激光的遥感技术,在飞行时收集数十亿激光雷达的回波,并将结果提供给公众。除了简单
阅读全文
摘要:激光雷达lidar与点云数据 DEM是分布和显示数字地形的首个广泛使用的机制。 点云是在空间中随机放置的3D点的集合。传感器发出能量脉冲并乘以其返回行程(TWTT,双向行程时间)。知道了传感器的位置以及脉冲的传输方向,就可以确定反射面的3D位置。传感器还可以测量回波的强度,以估计反射表面的表面几何形
阅读全文
摘要:点云建模场景分析 新技术一直在扰乱建筑和土木工程行业。点云建模已经存在了一段时间,但它已成为承包商和工程师的主要工具,在进行土地调查时寻求更多的便捷性和效率。用更少的资源来完成相同的工作-这是每个人从其业务努力中想要的。但是,点云到底是什么?它对测量工作场所有何帮助? 本文介绍如何将点云用于3D模型
阅读全文
摘要:激光雷达基础-光探测和测距-遥感 激光雷达或光探测和测距是一个活跃的遥感系统,可以用来测量广泛地区的植被高度。本文将介绍激光雷达(或激光雷达)的基本概念,包括: 什么是激光雷达数据。 激光雷达数据的关键属性。 如何使用激光雷达数据测量树木。 激光雷达的历史。 Key Concepts Why LiD
阅读全文
摘要:TVM vs TensorRT比较 如果理解正确的话,TensorRT和TVM会加快预测速度。 TensorRT优化预测GPU和TVM优化预测几乎所有平台支持GPU,ARM,Mobile。。。 两者在GPU上有比较吗? 到目前为止,tvm还没有为TensorRT优化的int8进行优化。但在这方面还有
阅读全文
摘要:TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成 这个PR增加了对分区、编译和运行TensorRT BYOC目标的支持。 Building 有两个新的cmake标志: USE_TENSORRT=ON/OFF:启用TENSORRT代码生成-这不需要TENSORRT库
阅读全文
摘要:GPU上如何优化卷积 本文将演示如何在TVM中编写高性能卷积实现。我们以平方大小的输入张量和滤波器为例,假设卷积的输入是大批量的。在本例中,使用不同的布局来存储数据,以实现更好的数据局部性。缓冲区布局为HWCN,代表高度、宽度、通道、批次。 Preparation and Algorithm 对于2
阅读全文
摘要:如何在CPU上优化GEMM(下) Array Packing 另一个重要的技巧是数组打包。这个技巧是对数组的存储维度进行重新排序,将某个维度上的连续访问模式在平滑后转换为顺序模式。 如上图所示,在阻塞计算之后,可以观察到B的数组访问模式(扁平化后),它是规则的但不连续的。期望经过一些转换,可以得到连
阅读全文
摘要:如何在CPU上优化GEMM(上) (TL;DR)TVM提供了抽象接口,用户分别描述算法和算法的实现组织(所谓的调度)。通常,在高性能调度中编写算法会破坏算法的可读性和模块性。尝试各种看似有希望的时间表是很耗时的。在TVM的帮助下,可以有效地尝试这些调度来提高性能。 本文将演示如何使用TVM优化平方矩
阅读全文
摘要:编译ONNX模型Compile ONNX Models 本文是一篇介绍如何使用Relay部署ONNX模型的说明。 首先,必须安装ONNX包。 一个快速的解决方案是安装protobuf编译器,然后 pip install onnx –user 或者参考官方网站: https://github.com/
阅读全文
摘要:深度学习加速器堆栈Deep Learning Accelerator Stack 通用张量加速器(VTA)是一种开放的、通用的、可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈。设计了VTA来揭示主流深度学习加速器最显著和最常见的特征。TVM和VTA一起构成了一个端到端的软硬件深度学习系统堆
阅读全文
摘要:TVM部署和集成Deploy and Integration 本文包含如何将TVM部署到各种平台以及如何将其与项目集成。 与传统的深度学习框架不同。TVM堆栈分为两个主要组件: TVM编译器,完成所有编译和优化 TVM runtime运行时,在目标设备上运行。 为了集成编译后的模块,不需要在目标设备
阅读全文
摘要:Relay张量集成 Introduction NVIDIA TensorRT是一个用于优化深度学习推理的库。这种集成将尽可能多地减轻从中继到TensorRT的算子,在NVIDIA GPU上提供性能提升,而无需调整计划。 本文将演示如何安装TensorRT并在启用TensorRT BYOC和运行时的情
阅读全文
摘要:TVM 架构设计 本文面向希望了解TVM体系结构和/或,积极参与项目开发的开发人员。 主要内容如下: 示例编译流程,概述了TVM将模型的高级概念,转换为可部署模块的步骤。 逻辑架构组件部分,描述逻辑组件。针对每个逻辑组件,按组件的名称进行组织。 可以随时查看,开发人员如何指导有用的开发技巧。 提供了
阅读全文
摘要:NVIDIA Turing Architecture架构设计(下) GDDR6 内存子系统 随着显示分辨率不断提高,着色器功能和渲染技术变得更加复杂,内存带宽和大小在 GPU 性能中扮演着更大的角色。为了保持最高的帧速率和计算速度, GPU 不仅需要更多的内存带宽,还需要一个大的内存池来提供持续的性
阅读全文
摘要:NVIDIA Turing Architecture架构设计(上) 在游戏市场持续增长和对更好的 3D 图形的永不满足的需求的推动下, NVIDIA ®已经将 GPU 发展成为许多计算密集型应用的世界领先的并行处理引擎。除了渲染高度逼真和身临其境的 3D 游戏外, NVIDIA GPUs 还可以加速
阅读全文
摘要:MLPerf Inference 0.7应用 三个趋势继续推动着人工智能推理市场的训练和推理:不断增长的数据集,日益复杂和多样化的网络,以及实时人工智能服务。 MLPerf 推断 0 . 7 是行业标准 AI 基准测试的最新版本,它解决了这三个趋势,为开发人员和组织提供了有用的数据,以便为数据中心和
阅读全文
摘要:机器人应用程序设计 Robot 操作系统( ROS )提供了许多软件库和工具来帮助构建机器人应用程序,包括框架、算法、传感器和机器人平台。它在世界各地的机器人专家和研究人员中非常受欢迎。来自生态系统的软件包和库的不断涌入使得机器人项目的启动变得很容易。 图 1. 使用 ROS 桥接器连接 ISAAC
阅读全文
摘要:Linux 2 的 Windows 子系统上发布 CUDA 为响应大众需求,微软 宣布 在 2020 年 5 月的 建造 大会上推出了 建造 ( WSL 2 ) – GPU 加速功能。这一特性为许多计算应用程序、专业工具和工作负载打开了大门,目前这些应用程序、专业工具和工作负载只能在 Linux 上
阅读全文
摘要:在 CUDA C/C++ kernel中使用内存 如何在主机和设备之间高效地移动数据。本文将讨论如何有效地从内核中访问设备存储器,特别是 全局内存 。 在 CUDA 设备上有几种内存,每种内存的作用域、生存期和缓存行为都不同。到目前为止,已经使用了驻留在设备 DRAM 中的 全局内存 ,用于主机和设
阅读全文
摘要:CUDA 内存统一分析 关于CUDA 编程的基本知识,如何编写一个简单的程序,在内存中分配两个可供 GPU 访问的数字数组,然后将它们加在 GPU 上。 本文介绍内存统一,这使得分配和访问系统中任何处理器上运行的代码都可以使用的数据变得非常容易, CPU 或 GPU 。 图 1 .内存统一是可从系统
阅读全文
摘要:H.264 Video Codec速度和质量 从Kepler开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码; GPUs 从费米开始支持完全加速的硬件视频解码。最近发布的图灵硬件提供了张量核心和更好的机器学习性能,但新的 GPU 还加入了新的多媒体功能,如改进的 NVENC 单元,以
阅读全文
摘要:CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU 。为此,应用程序必须在多个处理器上并发执行函数。 CUDA 应用程序通过在 streams 中执行异步命令来管理并发性,这些命令是按顺序执行的。不同的流可以并发地执行它们的命令,也可以彼此无序
阅读全文
摘要:开放式神经网络交换-ONNX(下) 计算节点由名称、它调用的算子operator的名称、命名输入的列表、命名输出的列表和属性列表组成。 输入和输出在位置上与算子operator输入和输出相关联。属性通过名称与算子operator属性相关联。 它们具有以下属性: 属于值命名空间的名称可以出现在多个位置
阅读全文
摘要:目的 本文档包含ONNX语义的规范性规范。 “onnx”文件夹下的.proto和.proto3文件构成了用协议缓冲区定义语言编写的语法规范。.proto和.proto3文件中的注释目的是提高这些文件的可读性,但如果它们与本文档冲突,则不具有规范性。此类冲突应报告为文档错误。 模型验证说明 有一个工具
阅读全文
摘要:开放神经网络交换(ONNX)工具 开放神经网络交换(ONNX)是一个开放的生态系统,它使人工智能开发人员能够在项目发展过程中选择正确的工具。ONNX为人工智能模型提供了一种开源格式,包括深度学习和传统ML,它定义了一个可扩展的计算图模型,以及内置运算符和标准数据类型的定义。目前我们关注的是推断(评分
阅读全文
摘要:Docker Context基本原理 介绍 本指南介绍了上下文如何使单个Docker CLI轻松管理多个Swarm集群、多个Kubernetes集群和多个单独的Docker节点。 单个Docker CLI可以有多个上下文。每个上下文包含管理不同集群或节点所需的所有端点和安全信息。docker con
阅读全文
摘要:Docker Buildx插件 Overview Docker Buildx是一个CLI插件,它扩展了Docker命令,完全支持Moby BuildKit builder toolkit提供的功能。它提供了与docker build相同的用户体验,并提供了许多新功能,如创建作用域生成器实例和针对多个
阅读全文
摘要:Docker App应用 这是一个实验特性。 实验性功能提供了对未来产品功能的早期访问。这些特性仅用于测试和反馈,因为它们可能在没有警告的情况下在不同版本之间更改,或者可以从将来的版本中完全删除。在生产环境中不得使用实验性功能。 Docker不支持实验特性。 要在Docker CLI中启用实验性功能
阅读全文
摘要:TensorRT开源软件 此存储库包含NVIDIA TensorRT的开源软件(OSS)组件。其中包括TensorRT插件和解析器(Caffe和ONNX)的源代码,以及演示TensorRT平台使用和功能的示例应用程序。这些开源软件组件是TensorRT General Availability(GA
阅读全文
摘要:deepstream-开放式实时服务器 deepstream是一款开源服务器,其灵感来自金融交易技术背后的概念。它允许客户端和后端服务同步数据、发送消息并以非常高的速度和规模规划rpc。 参考:https://github.com/deepstreamIO/deepstream.io#getting
阅读全文
摘要:GStreamer 1.0 series序列示例 OpenEmbedded layer for GStreamer 1.0 这layer层为GStreamer 1.0框架提供了非官方的支持,用于OpenEmbedded/Yocto。它用于GStreamer recipe backports,为早期的
阅读全文
摘要:H265与ffmpeg改进开发 1. Introduction KSC265是集编码、解码于一体的H.265编解码软件,完全遵循H.265协议标准。符合H.265编码规范的视频都可以通过KSC265进行解码,通过KSC265编码的视频都可以通过遵循H.265协议标准的解码器进行解码。KSC265无任
阅读全文
摘要:FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265。 针对《video_file_format_spec_v10_1》 VIDEODATA部分扩展如下: VIDEODATA The VideoTagHeader contains video-specific me
阅读全文