NVDLA专题12:具体模块介绍——RUBIK

2024-08-24 04:12

本文主要是介绍NVDLA专题12:具体模块介绍——RUBIK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

RUBIK类似于BDMA,它无需任何数据计算对数据映射格式进行转换。RUBIK有3种工作模式,分别是:

  • 合并(Contract)数据立方体
  • 将特征数据立方体分割为多平面(multi-planar)格式
  • 将多平面(multi-planar)格式合并到数据立方体

由于该模块的功能是转换特征数据立方体,我们称之为RUBIK单元。

合并(contract)

软件反卷积层总是使用几个硬件层或两个阶段。第一阶段是卷积流水线产生结果,第二阶段是contract的合同模式。

正常情况下,SW反卷积层的反卷积 x stride和 y stride大于1。通过这些strides的扩展,第一阶段硬件层的输出是一个通道扩展的数据立方体。RUBIK中的contract模式转换映射格式来扩展立方体。下图显示了一个重新映射示例,其中x stride为2,y stride 为3。

输入立方体大小和输出立方体大小的公式为:

RUBIK引擎slice by sclice 地实现contract,它接受一个Wx1xC输入sclice,并将其转换为一个W'xH'xC '输出子多维数据子立方体。然后继续到下一个输入slice,它从不跨线路边界发送请求。

当执行contract时,输入/输出起始地址和行间距应与32 bytes对齐。它总是试图发送256 bytes的请求,存储效率在80%~100%之间,受起始地址的影响。如果所有地址stride和起始地址都是256 byte对齐的,则存储器效率达到100%。

contract模式的要求:

  • 通道大小应能被解卷积x stride、y stride和32 bytes整除。如下式所示:
  • 输入和输出数据立方体的每个维度,如输入数据宽度、输出数据宽度、输入通道大小,在一个contract层中不应超过8192。

拆分和合并(Split and Merge)

拆分和合并是RUBIK中两种相反的操作模式。Split将数据立方体转换为M平面格式(M-planar formats, NCHW),平面的数量等于通道尺寸。合并模式将一系列平面转换为要特征据立方体。转换如下图所示。

M平面格式类似于图像格式。它是一种pitch linear格式,包含T_R16_I、T_R8_I或T_R16_F数据。每个平面仅包含1个通道数据或单个元素,所有平面(M平面)的line stride和planar stride应与64bytes对齐。它不同于NVDLA的其他数据格式。

功耗

RUBIK单元在数据路径中应用时钟门控,当单元空闲且可编程寄存器中没有可用的硬件层时,RUBIK数据路径的时钟被选通(gated)。

这篇关于NVDLA专题12:具体模块介绍——RUBIK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101418

相关文章

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

python subprocess.run中的具体使用

《pythonsubprocess.run中的具体使用》subprocess.run是Python3.5及以上版本中用于运行子进程的函数,它提供了更简单和更强大的方式来创建和管理子进程,本文就来详细... 目录一、详解1.1、基本用法1.2、参数详解1.3、返回值1.4、示例1.5、总结二、subproce

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Python模块导入的几种方法实现

《Python模块导入的几种方法实现》本文主要介绍了Python模块导入的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录一、什么是模块?二、模块导入的基本方法1. 使用import整个模块2.使用from ... i

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于