- 已加入
- 3/16/09
- 訊息
- 4,130
- 互動分數
- 37
- 點數
- 48

支援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平台在圖像處理應用方面的性能
ATI Stream SDK
官方網站 - HPCtech
GPCBenchMarkOCL中文版
GPCBenchMarkOCL英文版