CUDA、BSGP及SPAP调研報告-肖韬南京大学计算机系.pdfVIP

  • 0
  • 0
  • 约4.28千字
  • 约 24页
  • 2018-04-13 发布于江苏
  • 举报

CUDA、BSGP及SPAP调研報告-肖韬南京大学计算机系.pdf

周昆教授的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)

1亿VIP精品文档

相关文档