技 术 文 章
-
NVIDIA
CUDA统一计算设备架构编程手册(1)[03-10]
仅仅几年的时间,可编程图像处理器单元已经发展成为绝对的计算主力,如图1-1所示。由于具有由高内存带宽驱动的多个核心,今天的GPU为图像和非图像处理提供了难以置信的资源。发展背后的主要原因是GPU是特定于计算密集的、高并行的计算,而这正是图像渲染所需要的,因此GPU设计了更多的晶体管专用于数据处理,而非数据高速缓存和流控制,如图1-2所示。
>>查看详情
- NVIDIA
CUDA统一计算设备架构编程手册(2)[03-10]
通过CUDA编程时,将GPU看作可以并行执行非常多个线程的计算设备。它作为主CPU的协处理器或者主机来运作:换句话说,在主机上运行的应用程序的数据并行的、计算密集的部分卸载到此设备上。
更准确地说,多次但在不同数据上独立执行的应用程序部分可以独立放到在此设备上作为许多不同线程执行的函数中。要达到这种效果,可以将这样一个函数编译到设备的指令集合中,并将得到的程序(叫做内核)下载到设备上。
>>查看详情
- NVIDIA
CUDA统一计算设备架构编程手册(3) [03-10]
设备作为一组多处理器来实现,如图3-1所示。每个多处理器具有单指令多数据(SIMD)架构:在任何给定的时钟周期,多处理器的每个处理器执行相同的指令,但操作在不同的数据上。本地和全局内存空间实现为设备内存的读写区域,且无高速缓存。每个多处理器通过纹理单位访问纹理高速缓存,其中纹理单位实现2.3一节提到的各种寻址模式和数据筛选。
>>查看详情
- NVIDIA
CUDA统一计算设备架构编程手册(4)[03-10]
线程中共享变量的完全顺序一致性,但是在线程中放松的排序。仅在__syncthreads()(参见4.4.2)执行之后,来自其他线程的写入才能保证可见。除非变量声明为挥发,否则只要满足上一语句,编译器就可以优化对共享内存的读写。CUDA编程接口的目标是为熟悉C编程语言的用户提供相对简单的路径,以便容易地编写在设备上执行的程序。它包括:C语言的最小扩展集合,如4.2所述,允许程序员定位要在设备上执行的部分源码
>>查看详情
-
NVIDIA
CUDA统一计算设备架构编程手册 (5)[03-10]
对于单精度代码,我们强烈建议使用浮点类型和单精度数学函数。当在不支持原生双精度的设备(比如计算能力1.x的设备)上编译时,双精度类型默认降级为浮点数,双精度数学函数映射为其单精度对应值。但是,如果将来这些设备将支持双精度,则这些函数将映射为双精度实现。
>>查看详情
- CUDA统一计算设备架构编程手册
(6) [03-10]
计算两个维度分别为(wA, hA)和 (wB, wA) 的矩阵A和B的乘积C的任务以下列方式分为多个线程:每个线程负责计算C
的一个平方子矩阵Csub ;块内的每个线程负责计算Csub的一个元素。选择Csub的维度block_size等于16,以便每块的线程数是warp大小的倍数(参见5.2),并且保持低于每块的最大线程数(参见附录A)。
>>查看详情
- CUDA的功能定位及组成[03-10]
CUDA(Compute Unified
Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。
>>查看详情
- 走进GPU通用计算的世界—专访邓培智[03-10]
CUDA是基于GPU进行通用计算的开发平台,非常适合于大规模的并行数据计算。邓培智先生介绍了CUDA的技术原理、组成部分以及未来的发展。
邓培智先生从2002年开始加入NVIDIA公司,主要负责市场部技术相关业务。2006年11月NVIDIA推出的CUDA开发平台,将目前业界最领先的GPU的应用由图形计算领域推向了通用计算领域。我们认为GPU和相关开发领域的发展会为未来的数据计算开发带来深远的影响,让我们来听听邓培智先生是如何看待GPGPU和CUDA的。
>>查看详情
- CUDA软硬件环境简介
[03-10]
CUDA是用于GPU计算的开发环境,它是一个全新的软硬件架构,可以将GPU视为一个并行数据计算的设备,对所进行的计算进行分配和管理。在CUDA的架构中,这些计算不再像过去所谓的GPGPU架构那样必须将计算映射到图形API(OpenGL和Direct
3D)中,因此对于开发者来说,CUDA的开发门槛大大降低了。
>>查看详情
- CUDA的应用领域与发展前景
[03-10]
由于GPU的特点是处理密集型数据和并行数据计算,因此CUDA非常适合需要大规模并行计算的领域。目前CUDA除了可以用C语言开发,也已经提供FORTRAN的应用接口,未来可以预计CUDA会支持C++、Java、Python等各类语言。虽然现在更多的应用在游戏、图形动画、科学计算、地质、生物、物理模拟等领域。
>>查看详情
- NVIDIA计算、PTX系列—编程模型
[03-10]
GPU是能够并行执行大量线程的计算设备。它作为主GPU或主机的协处理器进行操作:换言之,在主机上运行的应用程序的数据并行、计算密集部分将卸载到此设备上。更准确地说,多次执行但操作不同数据的应用程序部分可以作为许多不同的线程分隔到在GPU上执行的函数中。也就是说,这种函数将编译到PTX指令集中,得到的内核将在安装时转换为目标GPU指令集。
>>查看详情
- CUBLAS库—BLAS1函数(二)
[03-10]
第一级基本线性代数子程序(Level 1 Basic Linear Algebra Subprogram,BLAS1)是执行标量、矢量和矢量-矢量操作的函数。CUBLAS
BLAS1实现的描述位于以下内容中:“单精度BLAS1函数”“单精度的复数BLAS1函数”。单精度的复数BLAS1函数:
>>查看详情