近十年来,一种新的并行计算机系统得到了飞速发展,即集群系统。从高性能计算机的世界排名Top500榜单就可以看出。Top500在2003年6月的Top500榜单中,集群系统仅有149个,占29.8%的份额。而在2008年11月是409个,比例为81.8%;在2009年6月是410个,比例为82%。目前,基于集群架构的并行计算机在发展中遇到了很多困难,主要是能耗和散热问题,现在的一个解决思路就是混合架构,就是将GPU作为并行计算单元引入到并行机体系结构中来。世界排名第一的天河一号和排名第三的曙光星云都采用了这种混合架构。
 
由于图形处理器(Graphics Processing Unit)在处理能力和存储器带宽上相对CPU 有明显优势,在成本和功耗 上的代价节省也使得GPU 和基于GPU 的通用计算(General Purpose GPU, GPGPU) 显示了其极高的加速计算性能,并为解决CPU 并行的问题提供了新的解决方案。
2007 年6 月,NVIDIA 推出了统一计算设备架构(Computer Unified Device Architecture, CUDA),可以有效利用过去分布在顶点着色单元和像素着色单元上的计算资源,并引入了片内共享存储器,支持随机写入(scatter)和线程间通信。
2009 年8 月,AMD 首次发布了可支持X86 处理器的开发工具——ATI Stream SDK v2.0 Beta,首次包含了完整的适合于数据并行和任务并行的OpenCL 编程模式,使得开发人员可以轻松利用CPU 和GPU 的计算资源。
2008 年6 月,苹果在WWDC大会上率先提出了OpenCL规范,旨在提供一个通用的开放API,在此基础上开发GPU通用计算软件。随后,Khronos Group宣布成立GPU通用计算开放行业标准工作组,以苹果的提案为基础创立OpenCL行业规范。工作组的26 个成员来自各行各业,包括IBM、Intel、AMD、苹果、NVIDIA、三星、德州仪器等。2008 年12 月9 日,OpenCL 1.0 版本正式发布。2010 年6 月15 日,OpenCL通用计算标准的1.1 版本发布,开发者可以免费下载。
OpenCL(Open Computing Language)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell 类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。
 授课安排:
   Ⅰ理论部分
   第1章 概述 (2学时)
 高性能计算的意义;能够解决的科学和工程问题;历史和发展前景。
高性能计算硬件体系结构介绍;集群系统结构、特点和编程; GPU的结构、特点和编程。
 第2章 GPU架构与GPGPU (2学时)
 GPU的历史发展与硬件架构的核心变化。
  第3章 openCL(2学时)
 
 四个模型:平台模型、存储器模型、执行模型以及编程模型。
 第4章 openCL 编程1 (2学时)
 
在程序中使用OpenCL编程大致可分为6个步骤:
1. 查找支持OpenCL的硬件设备(Device),并创建上下文(Context)
2. 创建命令队列(Command Queue)及包含了内核的程序(Program);如果该程序是源代码,则还需进行在线编译。
3. 创建程序执行过程中需要的内存对象(Buffer)及图像对象(Image Object),并初始化
4. 创建内核对象(可理解为Kernel中的函数)并设置其所需参数
5. 设置内核的索引空间(NDRange)并执行内核。其中NDRange通过全局尺寸(GlobalSize)和工作包尺寸(WorkGroup)来进行管理。
6. 将运行的结果拷贝回主机(Host)内存。
 第5章 openCL 编程2(2学时)
 内存管理模块与内核模块等。
 第6章 GPU程序举例 (2学时)
 GPU开发环境的安装和配置,矢量相加与矩阵相乘。
 第7章 openCL程序优化 (2学时)
  数据传输的优化,内存访问的优化和计算及控制流优化。
  Ⅱ实验部分 (5次)
| 实验序号 | 实验内容 |
| 第一次 | GPU环境建立 |
| 第二次 | 编写矢量相加的程序 |
| 第三次 | 编写矩阵相乘的程序 |
| 第四次 | 矩阵相乘算法优化 |
| 第五次 | 基于GPU加速的Matlab程序设计 |
| 第六次 | 撰写实验报告 |
 
  衷心感谢AMD 中国公司的大力支持
  为了本次课程的顺利开设,AMD 中国公司向我们捐赠了价值数万元的高性能计算服务器和三百多本GPU计算教材。
2011年4月28和29号,AMD 中国公司高校关系部经理乐平,AMD上海研发中心朱淮冰和程宏路先生一行来我校交流访问,分别在北校区和南校区为师生们作了关于GPU的专题报告,并在高性能计算联合实验室进行了Open Computing Language(OpenCL)上机实践开发。
 
  相关资源链接
指导的研究生团队摘得AMD中国高校加速计算竞赛桂冠
参加高性能计算技术讲座
AMD发布OpenCL大学套件推动并行计算

  GPU 计算实验室

  上课场景