设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

国人开发支持GPU的OpenCL通用计算测试程序

2010-5-4 08:31| 发布者: walkerxk| 查看: 2225| 评论: 0

高性能计算网发布首款国人开发的支持GPU的OpenCL通用计算测试程序GPCBenchmark(中文版下载英文版下载)。 首款国人开发的支持GPU的OpenCL通用计算测试程序OpenCL General Purpose Computing Benchmark (简称GPCBenchMarkOCL)是由国内几名高性能计算从业人员和爱好者合作编写的,目的是为了评估在不同的OpenCL平台上一些基本算法和应 用的性能。与目前流行的一些OpenCL、DirectCompute通用计算测试程序的不同在于,目前这些测试程序测试项目过于单一,基本上就是某一两 种算法的性能测试,甚至干脆就是理论峰值计算性能的测试。而实际上,OpenCL计算设备包括GPU的计算性能是受非常多因素影响的,除了计算单元的频率 和数量之外,还有计算单元架构、Global memory(显存)带宽、Local memory(GPU内的片上存储器,NVIDIA称为Shared memory,AMD称为Local Data Share)带宽和Bank conflict、存储器合并访问情况、存储器同步成本、缓存等各种因素。因此某些纸面计算性能非常高的GPU执行某些计算时性能却不一定好;又或者,某 GPU在执行某种计算时虽然性能落后于另一架构的GPU,但是在执行另一种计算时性能反而超前。GPCBenchMarkOCL集合了高性能计算领域多种 常见的基础算法和应用,能比较全面地评估GPU及其它OpenCL计算设备在通用计算应用中的性能。 目前GPCBenchMarkOCL的测试项目包括:
1、Global Memory带宽(读、写、拷贝以及PCI-E总线带宽) - 主要考察不同传输尺寸下各种访存操作的性能
2、Local Memory带宽(带宽和Bank conflict) - 分析Local memory带宽与数据类型、Bank conflict的关系
3、32位整数性能(加法、乘法、乘加和位运算) - 分析处理器32位整数处理性能
4、单精度浮点性能(加法、乘法、乘加和特殊函数如sqrt、sin等) - 分析处理器单精度浮点数处理性能
5、 双精度浮点性能(加法、乘法、乘加和特殊函数如sqrt、sin等) - 分析处理器双精度浮点数处理性能
6、常用计算(单精度和双精度浮点的大 矩阵乘法、大矩阵转置、归约、DCT8x8) - 分析处理器在进行一些常用矩阵与信号处理运算中的表现
7、图像处理(亮度直方图、2维卷积、降 噪、双立方插值缩放) - 分析处理器在进行一些常用图像处理中的表现
8、密码学(目前只有SHA-1 Hash Loop,以后将加入盒型加密和彩虹表) - 分析处理器在密码学应用中的性能

在GPCBenchMarkOCL中,所有测试都会在 CPU和GPU(包括其它OpenCL设备)上运行并给出性能结果,不过CPU上运行的并非OpenCL代码而是用常规C语言实现的并行算法(会调度全部 的CPU核)。而GPU上运行的OpenCL代码经过试验能正确运行在NVIDIA GTX285和AMD HD5870上。各算法的OpenCL实现有部分修改自NVIDIA和AMD的SDK,部分是由相关从业人员和爱好者提供的。由于NVIDIA和AMD的 GPU架构上有很大区别,对于某些算法也许能专门针对NVIDIA或AMD的GPU架构写出非常难看的比较极端优化的OpenCL代码,但考虑编程难度、 程序的可读性和普遍意义,GPCBenchMarkOCL只使用了一般的GPU编程优化方法做了简单优化(例如使用Local memory暂存数据、利用合并访问规则等),并且在不同的OpenCL计算设备上也是运行相同的OpenCL代码来进行测试。

GPCBenchMarkOCL 支持AMD RV770及Evergreen系列,以及NVIDIA G8x、G9x、GT200、GT21x、GF100等GPU的OpenCL平台。

运行环境要求:
操作系统: Windows XP 32/64bit Windows Vista 32/64bit Windows 7 32/64bit 驱动程序: AMD GPU:催化剂10.2或以上版本,且需安装AMD Stream SDK 2.01或以上版本(目前AMD GPU的驱动程序还没有正式加入OpenCL支持) NVIDIA GPU:只需安装197.14或以上版本的驱动程序 注意事项: AMD OpenCL平台目前(催化剂10.3 + Stream SDK 2.01)仍不支持双精度浮点数操作,但实际上经过试验,该平台是可以执行部分双精度浮点数操作的(特殊函数及乘加指令等除外)。如果需要在AMD OpenCL平台上测试双精度浮点性能,必须在配置页打开“强制支持双精度浮点(强制cl_khr_fp64)”选项。 AMD OpenCL平台目前(催化剂10.3 + Stream SDK 2.01)尚未添加对Image访问(通过纹理访问数据)的支持,限制了AMD OpenCL平台在图像处理应用方面的性能。

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部