首页 技术 正文
技术 2022年11月18日
0 收藏 427 点赞 4,434 浏览 1368 个字

1.     硬件方面

a. 流处理器个数

        Gpu内部的计算单元个数,决定分析模块实时性的关键因素。

        实测效果: gtx760  1152个

Gtx960  1024个

单路1080p运动检测  760的实时性好于960

 b.内存到显存(北桥)传输带宽

暨pcie总线带宽,  PCI-E 3.0 x16双向速度大约为32GB/s

8路1080p 25fps双向吞吐量为 3G/s,   按照理论减半原则16G/s的带宽是足够使用。

但相比现在显存的带宽达到112GB/s及以上, 所以这个北桥带宽任然是限制GPU性能主要性能瓶颈,

但是对于目前的视频实时分析系统这个带宽是足够使用的。

 c. SM(流处理器组的个数)

每一个SM共用一组控制晶体管,暨该SM内所有流处理器的共用一组控制晶体管。

反映了GPU的多数据多指令能力。

Gtx760为5  gtx960为8  实测gtx960多路处理能力强于gtx760

d. 传输延时

数据从内存拷贝到显存所需要的时间。

这个从软件(Streams and Concurrency)层面可以减少延时对系统的影响。在软件层面部分做具体分析。

2.  软件层面

           a. 编程API的选择1

Cpu程序开发: 机器语言;   汇编语言;  针对硬件优化库的API(如ipp); 通用C、c++;

GPU程序开发: 机器语言;   驱动API ; 运行时API ;封装好的优化库(npp)

越高级的API开发周期越短, 但灵活性越差

用npp升级我们VA算法模块,目前只需要将相应的ipp函数替换为npp函数即可。有些ipp函数npp没有对应的实现可以利用驱动

API或者运行时API封装一个kernel函数。

 b. Cuda一些特性的应用

(1)       Stream的使用2

使用stream,可以从软件层面遮盖传输时延。

暨在gpu在执行计算的时候,可以同时进行数据传输,这样可以保证gpu不会因为等待数据而导致利用率的下降,从而影响系统分析实时性。图例                             如下:

利用GPU改善程序性能的一点心得

HD表示  host –> device     主机内存到显存的数据拷贝

DH表示  device à host      显存数据到内存的数据拷贝

K 表示 kernel函数 gpu在执行计算, 上述图表是Nsight的timeline

(2)       页锁定主机内存4

页锁定主机内存, 操作系统不会对这块内存进行分页,并交换到磁盘。 该内存会一直驻留物理内存中

GPU知道了该内存的物理地址可以利用DMA(direct memory access)控制器和主机内存复制

页锁定主机内存比可分页内存性能高2倍左右

(3)       Hper-Q3

NVIDIA在开普勒架构后开始支持Hper-Q, Hper-Q支持不同流之间kernel的并发。

利用GPU改善程序性能的一点心得

Gtx960支持8个stream kernel并发。

  c.异构并发

主机和设备之间可以并发执行。

下面是两种pipleline的比较

同步执行:

利用GPU改善程序性能的一点心得

分析一帧耗时为   T = tg + tc

                     异步并发:

利用GPU改善程序性能的一点心得

分析一帧耗时为   T =  Max( tg , tc

参考资料:

1 cuda应用设计与开发:方法与最佳实践。

2 INVIDA 技术开发文档:CUDA C/C++ Streams and Concurrency

3  INVIDA 技术开发文档:Hyper-Q Example

  4  Cuda by example

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898