CUDA中(如果在nVIDIA的GPU上,这些技巧同样适用于OpenCL),通常显式的让数据按照warp模式分配执行(指令在硬件层自动按照warp派发),通常可让程序性能优成倍提升。在这个系列中我们将介绍多个以warp mode执行且带来明显性能提升的例子(当然,计算规模要足够大)。
近日,CUDA 4.0已经对注册开发者开放,其中增加了不少的功能。其中P2P(Peer-to-Peer )与UVA(Unified Virtual Address Space )的引进最为大家关心。这里与大家一起分享下SDK中的simpleP2P这个例子,他展示了如何使用这两个功能。
CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动。开发库是基于CUDA技术所提供的应用开发库。
本文我们以Visual Studio 2005 为例演示CUDA的安装以及软件开发环境搭建,以及CUDA与MFC联调的实现。CUDA是免费使用的,各种操作系统下的CUDA安装包均可以在http://www.nvidia.cn/object/CUDA_get_cn.html上免费下载。
自2011年2月28日NVIDIA公司宣布新版GPU并行通用计算架构CUDA 4.0至今,已经出现了两个版本,分别是RC和RC2。RC2版本在功能特性上没有明显变化,在功能上主要的改进方向是简化并行编程,让更多开发人员能够将应用程序移植到GPU平台。
技术发展对日常生活一定是有影响的,但发生的时候你不一定感觉的到。比如蓝牙技术看不见,但我们有了方便使用的无线耳机,又比如无线电波感觉不到,但你肯定会觉得手机很方便,所以说科技就在你身边。CUDA技术也是如此,他已经开始影响很大一部分人的生活。
这里我们会简单介绍,NVIDIA 目前支持 CUDA 的 GPU,其在执行 CUDA 程序的部份(基本上就是其 shader 单元)的架构。主要的数据源包括:NVIDIA 的 CUDA Programming Guide 1.1、NVIDIA 在 Supercomputing '07 介绍 CUDA 的 session,以及 UIUC 的 CUDA 课程。
在《runtime API创建CUDA程序》中,我们做了一个计算一大堆数字的平方和的程序。不过,我们也提到这个程序的执行效率并不理想。当然,实际上来说,如果只是要做计算平方和的动作,用 CPU 做会比用 GPU 快得多。这是因为平方和的计算并不需要太多运算能力,所以几乎都是被内存带宽所限制。
之前我们为大家介绍了《利用GPU计算加法》这篇文章,今天介绍一下CUDA设备的相关属性,只有熟悉了硬件是相关属性,是怎么工作的,就能写出更适合硬件工作的代码。cudaDeviceProp这个结构体记录了设备的相关属性。
2011年7月7日消息,前些日子我们报道了AMD与高等院校联合,将面向开发人员出版一本新书:《Heterogeneous Computing with OpenCL》(OpenCL异构计算),而今天NVIDIA宣布与美国著名的大学斯坦福合作,后者专门开设了CUDA课程。
在GPU领域,NVIDIA推出的CUDA技术是一种并行计算体系架构,比单纯的CPU运算效率高至少十倍。在编程语言领域,C++在每瓦性能上存在绝对优势,与CUDA并行计算的高效节能异曲同工,C++ AMP的并行异构计算环境把两者结合在一起,这无疑是效能优化的最佳选择。
前面介绍的计算平方和的程序,似乎没有什么实用价值。所以我们的第二个 CUDA 程序,要做一个确实有(某些)实用价值的程序,也就是进行矩阵乘法。而且,这次我们会使用浮点数。虽然矩阵乘法有点老套,不过因为它相当简单,而且也可以用来介绍一些有关 CUDA 的有趣性质。
在《CUDA程序优化策略》这篇文章中,我们介绍过CUDA优化的常见策略。今天我们会对CUDA优化策略进行详细讲解。CUDA程序的优化至关重要,因此要做好优化工作需要掌握一定的技巧。
现在最新的CUDA工具包已经发布,与Visual Studio的集成也变得更容易了,在这篇文章中,我将介绍如何使用Visual Studio 2008创建一个CUDA应用程序。
CUDA目前有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围。由于 runtime API 较容易使用,一开始我们会以 runetime API 为主。
莫斯科国立大学正准备对自己的超级计算机系统“Lomonosov”进行升级,通过使用NVIDIA Tesla GPU加速计算卡,有望藉此成为全球最快的超级计算机之一。升级后的Lomonosov系统在俄罗斯高性能计算领域无可匹敌,全球范围内也算得上佼佼者。
几个星期前,微软发布C++ AMP,将C++扩展到GPU计算领域。作为一名C++爱好者和NVIDIA的GPU架构师,我非常高兴听到这一消息。Visual C++是我最喜欢的编程工具之一,它的更新可以与我帮助设计的并行处理器共同工作。我觉得这的确证明了我们这些年在GPU领域付出的辛勤工作没有白费。
著名市场调研机构John Peddie Research近日撰文,对NVIDIA日前宣布的CUDA-x86编译器进行了分析和评论,并探讨了CUDA、x86技术的彼此关系,特别是NVIDIA究竟为什么要这么做。
CUDA已经越来越广的覆盖到并行计算的各个领域,包括中国科学家在天河-1A上运行世界上最快的模拟器,以及微软宣布在他们主流的开发工具Visual Studio中支持GPU计算。日前,Portland集团(PGI)宣布,他们将发布新的针对x86的CPU的CUDA编译器。