您的位置:首页 > 编程语言

[大规模并行处理器编程实战]读书笔记_Heterogeneous Parallel Programming_CHAPTER_01

2015-01-12 13:07 351 查看
看了第一章,了解了并行计算相关历史和GPU并行计算的相关知识。

概述

GFLOPS (Giga FLoating-point OPerations per Second) 每秒十亿次浮点运算

Processor Core 处理器内核

一个串行程序只能在一个微处理器内核中运行

并行程序最初采用多线程协作的执行方式,称为并行程序设计,影响巨大称为“并行革命”(concurrency revolution),但是它们都只能在大型计算机上运行。

1.1 GPU与并行计算

多核处理器,每个处理器由两个硬件线程来支持超线程,这种设计使得串行程序的执行速度得以最大化。

众核处理器,由大量较小的内核组成,GeForce GTX 280 系列采用的是240个内核组成的图型处理单元(Graphics Processing Unit, GPU),每个内核都是一个支持多线程的、顺序执行的、单指令流出的处理器,并且可以与其他7个内核共享控制器和指令缓存。

多核处理器和众核处理器的性能差距(电位)主要因为设计不同、内存带宽差距。

GPU负责大规模的密
4000
集型数据并行计算,CPU负责不适合数据并行的计算。

CUDA(Compute Unified Device Architecture, 统一计算设备架构)

GPU设备应用非常广泛,符合浮点运算的标准IEEE(Institute of Electrical and Electronics Engineers)。

GPU 很好的支持单精度浮点运算,现在也支持了双精度浮点运算。

1.2 现代GPU的体系结构

高度线程化的多核处理器(Streaming Multiprocessor, SM)陈列组成。

两个或多个SM形成一个构建块

SM 包含多个流处理器(Streaming Processor, SP),他们之前共享控制逻辑和指令缓存。

每个SP都有一个 MAD(Multiply-ADd)单元和一附加的乘法单元,特殊单元用于执行如平方根(SQuare RooT,SQRT)之类的浮点运算以及超越函数。

图形双速率(Graphics Double Data Rate, GDDR)DRAM。称为全局存储器(Global memory)



GT200 中有240个SP,计算速度已经超过 1 teraflops.  组织良好可以同时运行5 000-12 000 个线程。

1.3 为什么需要更高的速度和并行化

生物学领域、视频音频编解码领域、消费电子游戏、虚拟仿真。

应用程序可加速的倍数取决于应用程序可并行化的部分。

如何突破存储器(DRAM)的限制,这需要用GPU芯片hr存储器减少访问DRAM的次数,还需要限制片上存储器的容量。

GPU作为CPU执行的补充,才能更好的利用CPU/GPU异构系统的并行计算能力。

1.4 并行编程语言与模型

使用最广泛的并行编程模型:为可扩展的集群计算设计的消息传递接口(Message Passing Interface, MPI)、为共享存储器的多处理器系统设计的 OpenMP.

MPI模型缺乏共享存储器的机制,CUDA采用的方式类似于“单向”消息传递弥补了这一缺点。

OpenMP模型的缺点是并行计算的节点规模不能超过200个。

OpenCL编程模型定义了一套通用API,但是实际性能不如 CUDA,并且和CUDA使用方式非常类似。

1.5 综合目标

并行容易高性能难所以高性能是学习目标,高可靠性也是学习目标,最后一个目标是可扩展性。

1.6 本书的组织结构

1-3 章看完了就能写最简单的CUDA并行程序

4-7 熟识CUDA模型,并行计算基础

8-9 优化思维加速程序

10 进一步提升并行计算开发的思维

11 通过CUDA 学习OpenCL

12 展望未来



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐