CUDA:一个以GPU为中心的运算平台
2009-09-16 15:13:22| 分类:
vision
| 标签:
|举报
|字号大中小 订阅
CUDA(Compute Unified Device Architecture)是一种由NVIDIA推出的通用并行计算架构,这种架构不依赖任何的图形API接口,仅仅通过驱动程序与硬件通信,可以说是一种基于GPU软件层的通信技术。该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA架构编写程序。开发人员可以使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到产品设计、地球科学、分子生物学和医学诊断领域的高性能计算,涵盖了各个领域。
GPU与CPU拥有不同的核心架构,CPU的架构是有利于X86指令集的串行架构,CPU从设计思路上适合尽可能快的完成一个任务;而对于GPU来说,它的任务是在屏幕上合成显示数百万个像素的图像——也就是同时拥有几百万个任务需要并行处理,因此GPU被设计成可并行处理很多任务,而不是像CPU那样完成单任务。以前的科学家就一直在积极地考虑发挥GPU的高度并行优势,但之前的应用主要基于OpenGL的API上,对开发人员的门槛比较高,随着CUDA的发布,GPU进行高性能科学计算的优势显露无疑。
CUDA程序的编译方式也是非常有趣的,整个编译过程需要几个阶段。首先,所有的代码都要让CPU来处理,这些都会从文件中提取,并且他们都会通过标准的编译器。用于GPU处理的代码,首先要转换成中间媒介性语言——PTX。中间语言更像是一种汇编程序,并且能够中和潜在的无效代码。在最后的阶段,中间语言会转换成指令。这些指令会被GPU所认同,并且会以二进制的形式被执行。
评论这张
转发至微博
转发至微博
评论