《基于CUDA的并行图像处理性能优化》由会员分享,可在线阅读,更多相关《基于CUDA的并行图像处理性能优化(29页珍藏版)》请在金锄头文库上搜索。
1、答辩人:郭忠明 学号:31017022基于CUDA的并行图像处理性能优化Contents研究现状2性能优化策略3实验结果及性能分析4研究背景及工作意义1研究背景及工作意义研究背景1.大规模图像数据的处理、实时图像处理。 2.基于CUDA的大规模并行计算。选题来源1.优化基于CUDA平台的并行图像处理实现; 2.扩展至基于CUDA平台的通用并行计算。工作意义选题来源于实际工程项目研究现状指令优化内存访问优化解循环优化基于软件架构的 优化策略线程过载优化特定硬件体系结构下的优化基于硬件架构的优化策略性能优化策略性能优化策略性能优化策略不同的性能优化策略 可以相互结合使用内存访问 优化指令及程 序流
2、程 优化并行度 优化数据表示 优化性能优化策略内存访问优化性能优化策略内存访问优化共享内存访问优化常量内存访问优化纹理内存访问优化适宜于没有块间数据重叠 访问的情况适宜于处理Host端单线 程执行具有复杂参数列 表核函数的场景适宜应用于图像处理算 法的实现性能优化策略指令及程序流程优化1. 尽量使用执行周期数较少的指令。 2. 避免使用逻辑分支控制语句。 3. 比较简短的循环应当解开。 4. 尽量合并、提取公共运算。基本思想提高指令吞吐量、减少Device核函数内运算操作总次数性能优化策略指令及程序流程优化Compute Capability 1.xCompute Capability 2.0
3、Compute Capability 2.164-bit floating-point add, multiply, multiply-add8324864-bit floating-point add, multiply, multiply-add116432-bit integer add, logical operation8324832-bit integer shift, compare8161632-bit integer multiply, multiply-add, sum of absolute differenceMultiple instructions161632-bi
4、t floating-point reciprocal, reciprocal square root8Multiple instructionsMultiple instructionsType conversions161616性能优化策略指令及程序流程优化100010001使用模板操 作时,需要 涉及到图像 边界区域处 理问题性能优化策略指令及程序流程优化方案1: 直接依据4个顶点和4条边界的不同情况予以分别处理。 优点: 算法基本思想简单、易转化成实际代码。 缺点: 实际算法逻辑复杂、代码量较大、有大量的逻辑分支控制语句。方案2: 显示扩展图像边界。 优点: 处理逻辑归一化、代码简洁。
5、 缺点: 需要申请释放额外的空间、增加了处理步骤。方案3: 隐式扩展图像边界。 优点: 处理逻辑归一化、代码简洁,不需要存储中间结果图像。 缺点: 不同的算法需要有不同的返回值模式、增加了大量的逻辑运算。方案4: 利用纹理内存的越界自动处理功能。 优点: 处理逻辑归一化、代码简洁、不需要存储中间结果图像。 缺点: 处理模式制约于纹理内存提供的寻址模式,欠缺灵活性。区分边界处理显式扩边处理隐扩边处理算法执行平均时间 (ms/次)82.621345.736237.2112隐扩边处理纹理内存越界访问机制算法执行平均时间( ms/次)2.00101.6023性能优化策略并行度优化密集排列稀疏排列横向排
6、列纵向排列性能优化策略并行度优化密集排列时的数据访问性能优化策略并行度优化稀疏排列时的数据访问性能优化策略并行度优化横向排列时的数据访问性能优化策略并行度优化纵向排列时的数据访问性能优化策略数据表示优化0011010100,0,1;1,0,1;0,1,0普通模板表示1,-1;-1,0;1,0;0,1稀疏模板表示实验结果与性能分析实验环境硬件环境: CPU:Core i7 2600 显卡:NVIDIA Tesla C1060(4GB显存)软件环境: 操作系统:Ubuntu 10.04 x64 Server 显卡驱动:版本号480.17 编译环境:CUDA ToolKit 4.0算法: 图像形态学
7、基本算法:腐蚀、膨胀、开运算、闭运算。基本参数: 图像分辨率:1024 768 模板分辨率:3 3实验结果与性能分析常量内存访问冲突实验实验结果与性能分析常量内存性能优化验证不使用常量内存使用常量内存算法执行平均时间 (ms/次)82.621345.7362Back实验结果与性能分析共享内存性能优化验证不使用共享内存使用共享内存 (块内隐扩边)使用共享内存 (预加载冗余数据 ) 算法执行平均时间 (ms/次)82.621324.192329.7706不使用共享内存使用共享内存 算法执行平均时间( ms/次)74.86011.4405矩阵乘法运算Back实验结果与性能分析纹理内存性能优化验证未使
8、用纹理内存使用1D纹理内存使用2D纹理内存算法执行平均时间 (ms/次)82.62135.03222.3041Back实验结果与性能分析并行度优化验证实验结果与性能分析并行度优化验证实验结果与性能分析并行度优化验证1246816325125120.30470.25390.23320.27500.27760.62010.869110247680.75760.59800.53770.59300.58431.42223.0381102410240.99220.77670.68492.44750.73871.64353.9600实验结果与性能分析并行度优化验证普通模板稀疏模板 算法执行平均时间 (ms/次)0.53770.5124实验结果与性能分析与其他平台性能对比未来工作展望1. 新的内存访问优化策略 2. 并行度优化的动态模型研究。 3. 通用并行计算领域的扩展应用。答辩人:郭忠明 学号:31017022