优异专业卡降临!CUDA市场总经理专访
● NVIDIA公司CUDA市场总经理Sanford Russell:
简单讲一下CUDA 4.0,这个是最新的版本。很快就会出货,现在还是属于RC的阶段(发行候选的阶段),等待着开发者给我们提供一些建议。这个上面是我们出的各个不同的版本以及所针对的目标,1.0主要是针对研究者和一些比较早尝试使用的人。在2.0的时候,就增加了一些双精度的library,主要是针对一些科学界的人士和一些HPC的运动。在3.0的时候,就有了更多的library,我们也有了开发的工具,使得在这个阶段就可以让一些软件的开发者也开始在使用。到4.0的时候,就使得整个使用更加的便利,所有的这些特性设计都有这一点考虑在内。
尽管CUDA 4.0有很多的特性,上面列出的三点对于现在的开发者来说是最为重要的。
第一个就是虚拟地址。左边这个就是原来的情况,对于原来的软件来说,开发者得自己知道这个内存到底在哪里。也就是说,对于每一个内存空间都有相应的独特的地址。到右边这个新的4.0就不一样了,整个系统内存,还有显存是有一个单一的地址空间。这个就好像一个图书馆一样,你把一本书放进去了,原来有几个房间,你得记住到底在什么地方,现在就变成一个房间,所以对于开发者来说,尤其刚刚用CUDA的开发者来说,会变得简单一些。要强调的是,所有这些新的改进特性都是基于我们所收到的客户反馈,这就是为什么在CUDA C上面有这么快的转变,我们收到反馈以后,做出一些调整,做出一些新的设计,新的设计让他们去试用,再听他们的意见,然后出去的结果再去试,再让整个市场受益。
● NVIDIA公司中国区公关经理金洋:
NVIDIA并不是闭门造车,我们CUDA之所以被这么多的用户所接受,是因为我们在开发的过程中跟他们进行沟通,他们的意见很大程度上都能在下一款的CUDA上得到改进。所以CUDA的目的以及CUDA在研发过程中,都是以用户的需求为最根本的问题来解决。
● NVIDIA公司CUDA市场总经理Sanford Russell:
第二个特性就是GPUDirect v2.0,原来有多个GPU,希望在两个GPU之间实现信息或者数据的传输,先需要把一个GPU的内容传到系统内存里面,再从系统内存考到另外一个GPU,然后还要释放系统内存,所以整个过程还是比较复杂的。2.0的不一样之处是实现了数据在两个GPU之间直接的传输,这样显然对于代码来说,相对来说比之前要减少,而且速度也会加快。应该说所有的这些改进都是以客户需求为本的,所以所有的这些都是以客户告诉我们他们需要什么,他们有什么问题,我们来提供解决办法,帮助客户、帮助行业来解决这个问题。
现在可以看到,这个上面两个版本的GPU Direct,1.0主要是同一个系统之间的;2.0是针对一个系统之内。所以现在开始解决这种非常大的集群之内的问题。
接下来这张图是Thrust,就是一个编程环境,类似于C++里面的标准模板库,这里只不过是在GPU里面提供了这么一个Thrust。这是我们所支持的一种非常标准的C++的编程模式。原来是来自于NVIDIA的研究项目,我们支持的open google这个项目有一年多的时间,后来把它拿到了我们这个产品当中,作为其中的特性之一。也很好的实现了CPU和GPU之间的合作,通过Thrust这个设计,可以让更适合的处理器完成相应的工作,主要看这个处理器有没有能力完成这项相应的工作而来分配这项任务。
刚才只是简单的讲了CUDA 4.0的三个特性,实际上有很多的特性,但我认为这三个是最重要的,有助于大家理解CUDA 4.0一些比较新的地方。