GPU特征处理技术

GPU和CPU有何不同?

现代片上系统(SoC)通常集成中央处理器(CPU)和图形处理器(GPU)。设计不同,这可能更取决于处理的数据集的类型。

CPU经过优化,可以一次对几块数据执行大量分支任务。在CPU上运行的线程通常是唯一的,并且是独立执行的,通常独立于所有其他线程。任何给定的处理元素都将在单个线程中进行处理。CPU上程序的典型线程数通常为1到8个,在任何时间段内最多为几十个。

GPU经过优化,工作原理是同一段代码将在多个线程中执行,通常数为数百万,以处理当今设备的大屏幕分辨率。这些线程只在输入上不同,通常遵循完全相同的执行步骤。

并行性

每个图形处理器在多线程上以单指令多数据(SIMD)处理的形式,并发执行同一条指令。

SIMD体系结构的主要优点,对于结构正确的应用程序,可以并行运行大量线程,效率极高。SIMD体系结构通常能够同时运行比典型CPU多几个数量级的线程。

SIMD设计用于处理大的相干数据集,在这类任务中表现得非常出色。因此,在大型相干数据集上独立运行的算法(如图形和图像处理),非常适合这种处理器类型。

矢量和标量处理

现代图形核心体系结构具有多个基于矢量或标量的处理单元。都受不同版本的PowerVR体系结构支持–Series 5 supporting vector,以及Series 6、Series 7和Series 8 supporting scalar。

标量处理单元对每个处理单元的单个值进行操作。

向量处理单元对每个处理单元处理多个值。

矢量

向量处理可以非常有效,因为执行单元可以同时处理多个值,而不是只处理一个值。对于颜色和顶点操作,这种类型的架构是非常有效的。因此,传统的渲染操作非常适合这种体系结构,因为计算通常同时对三个或四个元素进行操作。

向量体系结构的主要缺点是,如果使用标量值或小于处理器期望值的向量,则会浪费额外的处理元素宽度。最常见的向量宽度是4,这意味着主要操作三个分量向量的着色器或内核将以75%的效率操作这些指令。一次只在一个标量上工作的着色器可能会将这个数字降低到25%。这会浪费能源和性能,因为处理器的某些部分没有做任何工作。可以通过矢量化代码对此进行优化,但这会增加程序员的负担。

标量

标量处理器在每个硬件周期可以执行的操作方面往往更加灵活,因为不需要用数据填充额外的处理宽度。虽然向量架构可能在同一个硅区域中处理更多的值,但对于非向量化代码,在标量架构中每个时钟的实际有用结果数通常会更高。标量体系结构往往更适合于通用处理和更高级的渲染技术。

关于消除混叠反采样

该技术引入了GRLAA(Gradient Line Anti-Aliasing,梯度线消除混叠),这是一种相对简单有效的方法,用于处理汽车导航应用中经常出现的混叠线。

在信号处理学科中,有一个特定的采样频率称为奈奎斯特频率。当以低于奈奎斯特频率的频率对信号进行采样时,从这些采样重构的信号与原始信号不同。原始信号和重构信号之间的差异表现为伪影。这种效果称为“混叠”。

本文讨论了计算机图形学中两种最常见的混叠现象。第一种是“锯齿状”(下图1),这里原本是一条对角线的直线,看起来像锯齿状的楼梯。这是由图形卡的“光栅化器阶段”引入的,将“中间”像素渲染为开或关。

第二种是采样混叠。这是当一个高频(快速变化的)纹理被用来渲染远处的某物时,比如图2中的棋盘格图案,并且似乎创建了被称为moir的可见人工制品模式。

有几种算法可用于消除可见锯齿的数量,并去除staircase上的伪影artefacts。但是,这些算法可能会产生适中的性能成本,这取决于它所部署的硬件。

超级采样消除混叠(SSAA)。这是一种暴力技术,比最终分辨率高出整数倍(x2,x4)的分辨率渲染整个场景,然后对整个帧缓冲区进行下采样,产生所需的最终分辨率。结果,锯齿和纹理伪影采样,进行优良的质量和改善,但技术显然是极其昂贵的。渲染成本(包括光栅操作、片段操作和相关带宽)乘以分辨率乘数的平方,即x4表示x2 SSAA,x16表示x4等

多采样消除混叠(MSAA)。这种技术通过将图像渲染到一个缓冲区,增加每个像素的采样数,该缓冲区能够存储每个像素的多个采样。然后解析该缓冲区,生成与viewport分辨率匹配的输出。这在PowerVR硬件上非常有效,因为解析是在芯片上执行的,节省了宝贵的内存带宽。MSAA改善了锯齿,但没有对伪影进行采样。

基于着色器的技术,如快速近似消除混叠(FXAA)或亚像素形态,消除混叠(SMAA)。这两种技术分析检测和模糊锐化的几何特征。在屏幕空间中执行的后处理算法,通常具有固定的成本(一次全屏传递),但需要更多的内存带宽,这在移动和嵌入式设备上通常是额外的。

GPU特征处理技术的更多相关文章

  1. 目标检测中特征融合技术(YOLO v4)(下)

    目标检测中特征融合技术(YOLO v4)(下) ASFF:自适应特征融合方式 ASFF来自论文:<Learning Spatial Fusion for Single-Shot Object D ...

  2. 目标检测中特征融合技术(YOLO v4)(上)

    目标检测中特征融合技术(YOLO v4)(上) 论文链接:https://arxiv.org/abs/1612.03144 Feature Pyramid Networks for Object De ...

  3. HTML5须知的特征和技术

    1.新的Doctype XHTML文档类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  4. qGPU on TKE - 腾讯云发布下一代 GPU 容器共享技术

    背景 qGPU 是腾讯云推出的 GPU 共享技术,支持在多个容器间共享 GPU卡,并提供容器间显存.算力强隔离的能力,从而在更小粒度的使用 GPU 卡的基础上,保证业务安全,达到提高 GPU 使用率. ...

  5. 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

    深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点,产生了广泛的应用.DNN具有深层结构.数千万参数需要学习,导致训练非常耗时.GPU有强大的计算能 ...

  6. 【深度学习系列2】Mariana DNN多GPU数据并行框架

    [深度学习系列2]Mariana DNN多GPU数据并行框架  本文是腾讯深度学习系列文章的第二篇,聚焦于腾讯深度学习平台Mariana中深度神经网络DNN的多GPU数据并行框架.   深度神经网络( ...

  7. 国内云计算的缺失环节: GPU并行计算(转)

    [IT时代周刊编者按]云计算特有的优点和巨大的商业前景,让其成为了近年来的IT界最热门词汇之一.当然,这也与中国移动互联网的繁荣紧密相关,它们需要有相应的云计算服务作为支撑.但本文作者祁海江结合自身的 ...

  8. CBIR--Survey.C/GPU优化.Sys搭建

    一:CBIR综述:转自于wiki:http://zh.wikipedia.org/wiki/CBIR 参考链接:http://blog.csdn.net/kezunhai/article/detail ...

  9. 高德SD地图数据生产自动化技术的路线与实践(道路篇)

    一.背景及现状 近些年,国内道路交通及相关设施的基础建设日新月异.广大用户日常出行需求旺盛,对所使用到的电子地图产品的数据质量和现势性提出了更高的要求.传统的地图数据采集和生产过程,即通过采集设备实地 ...

随机推荐

  1. 设计模式-UML图简单介绍

    直接上法宝: 1.类(Class)     类图分三层:     第一层显示类的名称,如果是抽象类,则就用斜体显示.     第二层是类的特性,通常就是字段和属性.     第三层是类的操作,通常是方 ...

  2. Winamp栈溢出漏洞研究【转载】

    课程简介 Winamp是一款非常经典的音乐播放软件,它于上世纪九十年代后期问世.与现在音乐播放软件行业百家争鸣的情况不同,当时可以说Winamp就是听音乐的唯一选择了,相信那个时代的电脑玩家是深有体会 ...

  3. 【vue-06】webpack npm

    什么是Webpack Webpack是一款模块加载器兼打包工具,他能把各种资源,比如js,css,less转化成一个静态文件,减少页面的请求,提高效率. 安装Webpack 在安装webpack之前, ...

  4. 【Web前端HTML5&CSS3】05-样式继承与其他概念

    笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版 目录 样式继承与其他概念 1. 继承 2. 选择器的权重 3. 长度单位 像素 屏幕分辨率 图像分辨率 百分比 em ...

  5. Zookeeper详细使用解析!分布式架构中的协调服务框架最佳选型实践

    Zookeeper概念 Zookeeper是分布式协调服务,用于管理大型主机,在分布式环境中协调和管理服务是很复杂的过程,Zookeeper通过简单的架构和API解决了这个问题 Zookeeper实现 ...

  6. OCR-Form-Tools项目试玩记录(一)本地部署

    OCR-Form-Tools是微软的一个开源代码库,包含微软表单识别和OCR服务相关的多种工具.Github仓库地址 目前,表单标注工具(OCR Form Labeling Tool)是首个发布到本该 ...

  7. KMP算法以及优化(代码分析以及求解next数组和nextval数组)

    KMP算法以及优化(代码分析以及求解next数组和nextval数组) 来了,数据结构及算法的内容来了,这才是我们的专攻,前面写的都是开胃小菜,本篇文章,侧重考研408方向,所以保证了你只要看懂了,题 ...

  8. laravel 批量删除

    <button id="delAll">批量删除</button>//给按钮一个id属性 <input type="checkbox&quo ...

  9. [刷题] PTA 02-线性结构3 Reversing Linked List

    链表逆序 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 using namesp ...

  10. 删除所有空白列 cat yum.log | awk '{$1=$2=$3=$4=null;print $0}'>>yum.log1 sed ‘s/[ \t]*$//g' 删除所有空格 sed -i s/[[:space:]]//g yum.log

    2.删除行末空格 代码如下: 删除所有空白列 cat yum.log | awk '{$1=$2=$3=$4=null;print $0}'>>yum.log1 sed 's/[ \t]* ...