Windows下搭建GPU编程环境.pdf
文本预览下载声明
第二讲
Windows下搭建GPU编程环境
程俊
2011.11.17
本节安排
什么是GPU
多核计算的发展
CPU多核并行
超级计算机、集群不分布式计算
CPU+GPU异构并行
GPU的发展
传统GPGPU开发
CUDA开发
CUDA的安装
windows编程环境搭建
准备工作
搭建过程
对python的支持
准备工作
配置过程
什么是GPU
GPU
Graphic Processing Unit 图形处理器
传统上,GPU只负责图形渲染,而大部分的处理
都交给了CPU
多核计算的发展
并行计算
集群或分布式并行(cluster/distributed parallel )
多处理器并行(multi-processor parallel )
多核并行(multi-core parallel )
单核指令集并行
多核计算的发展
CPU多核并行
CPU提高单个核心性能的主要手段达到瓶颈
• 提高处理器的工作频率
• 增加指令级并行
单核CPU向多核CPU发展
• 2005年双核、2007年4核、2009年8核……
• 伴随着多线程编程的发展
常见的多线程编程语言扩展
• OpenMP
• Intel的TBB
多核计算的发展
超级计算机、集群与分布式计算
超级计算机
• 性能上居亍世界领先地位
• 成千上万个处理器,以及与门设计的内存和I/O系统
• 架构不个人计算机差别很大
• 使用的技术随时代和具体应用丌断变劢
集群
• 一组松散集成的计算机软件和/或硬件
• 它们连接起来高度紧密地协作
分布式计算
• 计算任务和数据的分割
• 多台计算机分别计算并将结果上传后合并
多核计算的发展
CPU+GPU异构并行
典型任务:图形实时渲染
• CPU负责根据用户输入和一定的规则确定在下一帧需要显示的
物体及其位置
• GPU根据这些信息绘制物体并显示出来
• GPU绘制当前帧的时候,CPU可以计算下一帧需要绘制的内容
CPU负责逻辑性较强的事务计算
GPU负责计算密度高地图形渲染
设计目的丌同决定了架构和性能上的巨大差异
GPU的发展
GPU渲染流水线
完成3D模型到图像的渲染工作
常用的图形学API有Direct3D、OpenGL
渲染过程被分为几个并行处理的阶段
着色器模型
可编程计算单元
最主要的是顶点着色器和像素着色器
统一着色器架构适应通用计算的需要
GPU的发展
从GPGPU到CUDA
传统GPGPU开发
• 顶点着色器和像素着色器在物理上分离,性能很难同时完全得
到利用
• 丌允许计算单元之间通过片内的存储器进行通信
• 直接使用图形学API编程,对编程人员要求较高,开发难度大
CUDA
• 2007年NVIDIA公司推出
• 全称是Compute Unified Device Architecture统一计算设备
架构
• 将GPU作为数据并行计算设备的软硬件体系
显示全部