PCEVA,PC绝对领域,探寻真正的电脑知识
  • 内容展现
  • 最新评论
Kepler架构火力全开 NVIDIA GeForce GTX TITAN评测
2013-3-4 20:10| 发布者: royalk| 查看: 54821| 评论: 87|原作者: royalk
摘要: 在去年下半年,GK110核心一直只以Tesla K20X/K20的专业计算卡身份出现,而如今,它已正式被用于民用级别。NVIDIA在2013年2月19日发布了GeForce GTX TITAN,就是采用GK110核心的Kepler旗舰级显卡。 ... ...
GeForce GTX TITAN新技术:通用计算特性


Dynamic Parallelism和Grid Management Unit
简单的说Dynamic Parallelism(动态并行)就是可以让GPU自己像一个主机端线程那样根据需要启动kernel,在自己的硬件上执行,而无需通过与CPU端通讯。动态并行通过Grid Management Unit管理、调度Kernel启动,避免了多次“返回CPU——再由CPU启动kernel”的繁琐过程,极大地简化了GPU编程,并且适用于加速一大类常见的算法。具体信息及grids、kernel、stream等CUDA相关术语的定义,可参考动态并行官方说明文档

以下通过CUDA 5.0 SDK中的一个简单实例来说明动态并行的运行。CPU首先通过两个线程启动2个kernel,运行cdp_kernel()函数,它是一个递归函数。然后GPU通过动态并行自己启动kernel实现递归,总共进行3次(max_depth=2)递归之后,程序执行完毕。因此GPU总共自己运行了8次这个函数,最后结果返回到CPU,输出打印我们看到的下面这个截图。

Hyper-Q
从Fermi开始,GPU开始拥有Kernel并行能力,同一stream串行执行,不同stream间顺序无要求,可以并行执行。例如NVIDIA官方Hyper-Q说明文档里举的例子,以下有3个stream,每个stream里有ABC三个Kernel。其中每个stream中ABC三个Kernel是互相依赖的,要串行执行,而每个stream之间是独立的,可以并行执行,且三个并行stream之间执行优先级没有先后。这里我引用说明文档里的图示,稍作修改,体现并行执行,Fermi的执行模式如下:

由于Fermi的整个队列只是由Work Distributor判断相邻两个Kernel的依赖关系,从而判断串行或并行执行,因此上述例子中可以同时并行执行的只是相邻的两个Kernel(A2和C1、A1和C0)。而我们知道不同stream中的B2、B1和B0这些都是独立的,可以并行执行,但实际上它们之间却是串行执行了,所以这样执行效率并不高。

而Kepler GK110则加入了Grid Management Unit,它可以把多个标记了归属stream的grids放入其中缓冲,从而智能地判断这些grids之间的依赖关系,并生成多个硬件的工作队列,以避免出现Fermi那样的不相邻kernel不能进行依赖性判断的问题,这样可以在硬件资源许可的情况下,尽可能地并行执行grids。Hyper-Q的“Q”我认为就是队列(Queue)的意思。GK110的执行模式就变成了这样:

简单来说,一个stream的执行流程是CPU(Host)复制要计算的数据到GPU(Device)->发射/启动kernel ->GPU将计算结果返回CPU,简单来说就是copy->kernel->copy的串行执行过程。所以不同的stream并行执行,就会出现copy和kernel并行,以及kernel和kernel的并行情况。

以往CUDA开发者在对copy和kernel并行任务执行代码的逻辑优化中,GT200和Fermi由于硬件设计的不同,不同的代码写法会表现出不同的执行效率,针对Fermi优化的执行代码到了GT200上执行效率会比较差。详细信息可参考一篇来自CUDA开发者地带的博文:How to Overlap Data Transfers in CUDA C/C++。而从Fermi开始就支持计算重叠(kernel与kernel并行),原本适用于GT200的执行代码可能还会有进一步优化空间。

有了Hyper-Q之后,由于在GK110上有Grid Management Unit的缓冲和调度,针对上述两种情况,无论是何种代码写法都会直接达到最佳执行效率。Hyper-Q特性需要CUDA SM 3.5的支持,也就是只有GK110支持,它的意义除了提高GPU利用率之外,还可以方便开发者,无需再针对不同的GPU架构进行代码优化,这是GK110架构的一个优点。

在CUDA SDK 5.0中也有一个关于Hyper-Q的简单实例,启动32个并行stream,预计如果这32个stream串行执行,需要0.640秒,如果并行执行,理论上需要的时间只有1/32也就是0.020秒,但实际上执行了0.053秒。当然了理想状态和实际还是有一定差距的,但这也足以体现出并行执行的速度优势了。

GPUDirect
GPUDirect可以直接允许周边设备,如网络介质、存储介质等直接访问GPU的显存,而不需要通过CPU和内存作缓冲,这就消除了CPU方面的延迟和带宽瓶颈,也可以让两台独立的电脑的GPU和GPU之间通过网络进行点对点的数据传输。不过这个特性只有Tesla计算卡才支持,TITAN就无缘了。

由于我不是CUDA软件开发人员,对通用计算工作流程了解也有限,在这里谨以对GK110新特性的个人理解解释给大家看看,如想进一步了解CUDA编程相关知识,可访问NVIDIA CUDA Zone大陆官方论坛

综合来看,GK110从Tesla K20X转变为GeForce GTX TITAN并没有过多阉割Kepler计算显卡新增的硬件功能及特色技术,并且这些特色技术也使得CUDA计算版本升级到3.5,与不支持这些特性的GK104使用的3.0计算版本区别开。然而TITAN作为非专业显卡,显存的ECC就没有了,核心频率也进一步提升并带有Boost功能,因此也换来了更高的显存频率(5.2GHz提升到6GHz)及显存带宽。


收藏 邀请
0
本文版权归 PCEVA,PC绝对领域,探寻真正的电脑知识 原作者所有 转载请注明出处
发表评论

最新评论

引用 cnzyan 2013-3-4 20:00
沙发?
来自:PC绝对领域 Windows Phone 7 客户端
引用 111alan 2013-3-4 20:18
散热器设计一般...
引用 wsy2220 2013-3-4 20:24
本帖最后由 wsy2220 于 2013-3-4 21:22 编辑

太贵了啊....

3年以后如果降到可以承受的价位再弄一块试试

PS.r总什么时候玩上big bang了啊,出个评测呗
引用 jyagsy 2013-3-4 20:31
性能很牛x 价格很坑爹的 真680 我等只能观望
引用 allegg 2013-3-4 20:35
顶R大~评测很详细~PS:卡是好卡但公版散热真心无爱
引用 大D来了 2013-3-4 20:38
前排占位
引用 Chervona 2013-3-4 20:44
看完了,前排留名
引用 bfkx 2013-3-4 20:57
Titan的确是卡皇
引用 tanlwowo 2013-3-4 21:06
今年AMD压力不小啊,希望多降价大家都得实惠。
引用 roy.xiang 2013-3-4 21:21
已经开始降价了,跪求多降点
引用 jyst 2013-3-4 22:00
看看口袋里的票子,于是决定当titan是不存在的好了
引用 qin0008 2013-3-4 22:04
R 大辛苦。。神级评测。。。。。好多不懂。。。。。。。
引用 有点小烦 2013-3-4 22:05
哎哟呵!最近论坛各版主管理都诗兴大发了?~
老规矩,先顶再看~
引用 zhubo88597171 2013-3-4 22:13
前排看来是占不上了,好贴必须要顶起
引用 陈佳鑫陈帆 2013-3-4 22:42
前排占座,只看r大测评。
引用 efgking01 2013-3-4 22:48
本帖最后由 efgking01 于 2013-3-4 22:49 编辑

非公4G版680好少,今年2G的估计会被很多游戏爆显存了
引用 hyenax1950xtx 2013-3-4 22:48
没得测到泰坦
引用 amx004 2013-3-4 22:50
不错, 突然很期待A家下一代的表现, 不求超越titan, 只求把价格拉下来
引用 hjhham 2013-3-4 23:12
3999我就承认它,不然我还是倾向680/7970

查看全部评论(87)

热门评论
    热门评论
      返回顶部