CUDA、BSGP及SPAP调研报告 肖韬 南京市南京大学计算机系(0001).pdf

CUDA、BSGP及SPAP调研报告 肖韬 南京市南京大学计算机系(0001).pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
周昆教授的GPU 相关项目调研报告 肖韬 南京大学计算机系 2010.10.28 Kun Zhou •BSGP •SPAP •CUDA CUDA 简介 Compute Unified Device Architecture 统一计算架构模型 • CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使 GPU能够解决复杂的计算问题。 • 使用经过扩展的C语言来为CUDA™架构编写程序。 • 与CPU相比,GPU有更多的晶体管被用于数据处理。 通用并行计算模型 • 通用并行计算模型 –单指令、多数据执行模式 (SIMD) • 所有线程执行同一段代码(1000s threads on the fly) • 大量并行计算资源处理不同数据 GPU 的架构 ——Stream Processing Model • data centric model: 数据被组织成很多的stream • kernel: 并行地作用于每一个流中的数据 • stream/kernel抽象模型把数据间的依赖性暴露给了编程者。 BSGP - Bulk Synchronous GPU Programming BSP - 整体同步并行计算模型、大同步模型或BSP模型 • 第一个基于BSP 的GPU编程语言 • 在GPU上进行通用计算的类C 的串行编程语言 • 只需提供少量的信息(即barriers) 来描述GPU上的并行任务 • 易于编写、理解、维护 • 不牺牲运行性能(与CUDA语言编程相比) BSGP编程模型 • 不能与GPU的stream processing模型直接对应,因此需要BSGP编译器将 BSGP的源代码转换为GPU的stream代码 • 这就必须解决两大挑战: – barrier synchronization的同步问题 – 怎样生成高效的stream code 开始BSGP编程 需要的 • NVIDIA GeForce显卡 •对应版本的CUDA Toolkit和Driver • BSGP compiler 不需要的 •并行编程的经验 •使用CUDA的经验 •GPU体系结构知识 BSGP中的几个基本概念 barrier 关键字 • 两个barrier之间的代码块称为superstep ,会被BSGP编译成一个GPU kernel • 一个superstep可以在多个thread 中并行地执行 • 在多个superstep之间的局部变量是visiable和shared 的 barrier图示  所有的同一个kernel的所有线程执行流都要在同一个 barrier处同步  在流处理模型中,barrier只有一种形式:等待kernel终止  在某一个kernel的内部无法进行barrier Collective Operation 所谓collective operation,即指所有线程必须同时进行 的操作 求prefix sum的图示 collective scan size •线程的总数 rank •线程的ID,从0到size-1的整数,可变 pass •A kernel launch is traditionally called a pass in GPU programming spawn关键字 • s

您可能关注的文档

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档