有关PS3的话题似乎与今天访谈的主题远了一些。笔者提及,Intel在上海的IDF上目前花费了大量时间讨论了一个产品, Larrabee,不过更令大家感兴趣的是Intel的Ct,线程编程模型(threaded programming model)引起了广泛的讨论。笔者问David,Intel的Ct.与NVIDIA的CUDA之间有无相似之处?

“我认为这是相当有趣的,但是我现在还看不到Ct.的任何优势”,
David
Kirk回答,“它的原理看上去与CUDA异曲同工,Ct.模式底层架构要求非常多的effort去编写Ct 代码。”
“C++语言是一个巧妙的代码语言,但是有很多编程人员不用C++来写代码,……而且相当编程人员甚至不用C语言代码。“David解释道,“其实C语言是一中简单的代码去实现CUDA计算,如果像Ct这样基于CUDA上面一层的,它将会使整个运算更复杂,而且我不能确认的是,在同样的时间Ct是否能把工作变得更简单——我想Ct.是一种挑战!”
“尽管Ct有大量的设想空间,但是短期内我不认为Ct.会有很大作为。Ct的整个template library approach(模板)在编程考试中相当流行,但是在商业公司中却并不受欢迎。”
我觉得David上门说得有点太笼统,而且有点以偏盖全,于是要求他把这个解释清楚一些。“当然,不可否认,Ct在一部分商业公司还是受欢迎的,但是不是一些大型的公司,对于我们谈论所涉及的全部编程人员来说,Ct仅是一部分人会采用。”
“Ct不受欢迎,这是为什么呢?”笔者发问。
“它含有更多的包(Baggage)而且更复杂,举个例子来说,如果CT语言能够简化10倍,将会有成千上万倍的用户去使用它。“”他解释道,“Oh。。。同时,CUDA以后也将支持C++语言,这仅仅是多增加一些更多开发工具的问题。至于加入支持C++语言的原因,也仅仅是少部分人的要求,大部分开发人员并没有要求。”

接下来到了吃饭时间……等David吃饱了以后,我们决定逼他谈谈对Intel Ct的看法。这个问题在之前的演讲中,不少高校的研究者也问过,NVIDIA到底如何回应傲慢的对手(Intel)呢?
“Oh,yes”他说到,“首先,Intel掌握并引导未来的一个CPU并行计算(parallel programming)可能性,Ct是在此基础上的另外一种尝试。如果你感兴趣去研究Intel网页上的研究论文,你会发现,要想完成这样的宏大工程,Intel有至少30件类似的项目在进行研究。”
“我们已经做出了一个选择,为CUDA投入了大量的时间和金钱,我们对CUDA非常自信,因为对大部分用户而言它是一个非常不错的选择。像前面部分用户关心的CPU在CUDA下的通用代码问题,我们也在试着解决,并会最终带给实际的用户。”
“例如,部分人曾经表示希望GUDA能够兼容CPU运行——事实上我们能够做到并且正在增加这部分的代码编写工作,这说明我们会充分考虑用户的需求,尽量去逐字节实现他们的要求 。我现在不能确定CT能带来怎么样的具体特征,Intel是否将之视为一个完整的产品?是否已经准备好了未来10年的产品支持?但NVIDIA做出这方面的承诺,我们目前的G9X以及未来的产品都会对CUDA的支持。”

CUDA所提供的最重要的创新在于,它使得工作在GPU上的线程可以协作解决问题。在线程间通讯实现以后,CUDA将允许应用程序更加高效的执行。由NV GPUs的支持,CUDA有一个直接在GPU上的并行计算缓存,它用于保存频繁使用的信息。在GPU上保存信息可以让计算线程即刻得到共享数据而不是去漫长的等待off-chip的DRAM上的数据。它能让用户实时的计算出复杂问题的答案。

