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利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

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

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

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

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