APP下载

CUDA和OpenGL互操作的实现及分析*

2011-07-28刘进锋

网络安全与数据管理 2011年23期
关键词:设置

刘进锋,郭 雷

(西北工业大学 自动化学院,陕西 西安 710129)

1 CUDA与OpenGL概述

OpenGL是图形硬件的软件接口,它是在SGI等多家世界著名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用、共享的、开放式的、性能卓越的三维图形标准。OpenGL在医学成像、地理信息、石油勘探、气候模拟以及娱乐动画上有着广泛应用,它已经成为高性能图形和交互式视景处理的工业标准。

OpenGL不是一种编程语言,而是一种 API(应用程序编程接口)。程序员可以使用某种编程语言 (如C或C++)编写绘图软件,其中调用了一个或多个 OpenGL库函数。作为一种API,OpenGL遵循C语言的调用约定。OpenGL开发资料可参考文献[1]和参考文献[2]。

图形处理器(GPU)原本是处理计算机图形的专用设备,近十年来,由于高清晰度复杂图形实时处理的需求,GPU发展成为高并行度、多线程、多核的处理器。目前,主流GPU的运算能力已超过主流通用CPU,从发展趋势上来看将来差距会越拉越大。为了合理地利用GPU资源,CUDA(统一计算设备架构)应运而生。CUDA是一种由NVIDIA推出的通用并行计算架构[3],该架构使GPU能够解决复杂的计算问题,并且由于CUDA编程语言基于标准的C语言,从而大大提高了可编程性。

CUDA和OpenGL互操作的基本方式是使用CUDA生成数据,然后使用OpenGL在屏幕上绘制出数据所表示的图形。两者的结合可以通过两种方式来实现:

(1)使用 OpenGL的 PBO(像素缓冲区对象)。在该方式下,CUDA直接生成像素数据,OpenGL显示这些像素;

(2)使用 OpenGL的 VBO(顶点缓冲区对象)。在该方式下,CUDA生成顶点网格数据,OpenGL可以根据需要绘制出平滑的表面图或线框图或一系列顶点。……

登录APP查看全文

猜你喜欢

设置
中队岗位该如何设置
船舶防火结构及设置的缺陷与整改
中外医学专业与专科设置对比分析及启示
特殊场景下列控等级转换的设置方案
7招教你手动设置参数
动车段(所)股道有效长设置研究
我国中小学将设置人工智能相关课程
吃纸的妖怪
本刊栏目设置说明
中俄临床医学专业课程设置的比较与思考