- 0
- 0
- 约9.46千字
- 约 7页
- 2026-01-28 发布于浙江
- 举报
2014年
2014年5月15日
第37卷第10期
May2014Vol.37No.10
ModernElectronicsTechnique
缓存结构GPU矩阵乘法算法的自动优化
李晓雯1,崔翔2,殷瑞杰1,刘强1
(1.防空兵学院指挥控制系,河南郑州450000;2.河南大学计算机与信息工程学院,河南开封475003)
摘要:讨论在Fermi结构GPU使用CUDA对GEMM(单精度和双精度)算法进行优化,以及Fermi体系结构的新特性(如缓存)对性能的影响。GPU缓存一方面可以提高处理器在运行时数据访问的局部性,另一方面使得代码性能对与性能相关算法参数的依赖变得不可预测。自动优化技术可以用来解决这一问题。自动优化的SGEMM和DGEMM代码在TeslaC2050GPU上达到了563GFlops和253GFlops的性能。代码使用CUDA和C语言进行实现,未进行二进制代码级别的优化。
关键词:GPU程序设计;矩阵乘法;自动优化;GEMM模板
中图分类号:TN40;TP312文献标识码:A文章编号:1004-373X(2014)10-0137-04
Auto-tuningofmatrixmultiplicationforFermiGPU
LIXiao-wen,CUIXiang,YINRui-jie,LIUQiang,
(1.DepartmentofCommandandControl,AirDefenseForcesAcademy,Zhengzhou450000,China;
2.CollegeofComputerInformationEngineering,HenanUniversity,Kaifeng475003,China)
Abstract:AutomaticoptimizationofGEMMalgorithmonFermiGPUandtheimpactofFermiGPU’sarchitecturalfea-turesonperformancearediscussedinthispaper.ThecacheonGPUcannotonlyimprovethedataaccesslocalityofproces-sors,butalsomakethecodeperformancerelyingonrelativealgorithmparametersunpredictable.Auto-tuningcanbeusedtosolvethisproblem.Auto-tunedSGEMMandDGEMMcodesachieve563GFlopsand253GFlopsrespectivelyonC2050GPU.ThecodesareimplementedbyusingCUDAandClanguage,buttheoptimizationonthebinarylevelisnotinvolved.
Keywords:GPUprogramming;matrixmultiplication;automaticoptimization;GEMMtemplate
0引言
Fermi是Nvidia公司支持CUDA编程模型的新一代GPU。与GT200体系结构相比,新型的Tesla2050GPU具有一些新的特性:如增强的双精度浮点性能、L1/L2缓存结构、更多的寄存器、更大的共享存储器、ECC支持和更快的原子操作[1-3]。
收稿日期:2014-02-27基金项目:国家自然科学基金;博士后科学基金(2013M540821);河南省教育厅科学技术研究重点项目(13A520065)由于Tesla2050和GT200使用同样的编程模型,因此程序员期望在GT200上得到良好性能优化的代码也一样可以在Tesla2050上取得良好的性能。实际上,程序员依然需要调整他们运行在GT200上的代码以在Tesla2050上取得最高的性能。在Tesla2050上,虽然每一个MP的寄存器文件被加
原创力文档

文档评论(0)