基于CUDA的GPU条件分支分歧聚合优化策略

2014-10-24 22:25:12刘素芹安仲奇杨娜利王俊爽
中国石油大学学报(自然科学版) 2014年3期
关键词:指令优化策略

刘素芹,王 鑫,安仲奇,杨娜利,王俊爽

(中国石油大学计算机与通信工程学院,山东青岛 266580)

近年来由GPU作为加速部件的异构计算系统和技术,如CUDA[1]产生并得到发展。GPU擅长的SIMD(single instruction multiple data)执行方式提高了系统的计算效率,但当程序出现条件分支分歧时,会部分或完全退化成串行执行,性能损失严重。条件分支是控制程序执行流的基本方式,易大量出现,并且算法越复杂,对分支的利用就会越频繁。因此,需要优化GPU对条件分支的处理以更充分地发挥其并行计算的潜力。目前的研究主要集中在硬件层面设计线程调度器方面[2-5],对普通用户而言实现难度较大,而利用现有体系结构从软件层面优化条件分支处理流程方面的研究还较少,因此笔者探索实现难度较低、可操作性较强的优化方法。

1 GPU条件分支处理机制分析

1.1 基于CUDA的GPU处理条件分支的机制

基于CUDA的GPU执行没有分支的语句时,线程束(warp[6])中的线程按照SIMD的方式步调一致地执行,而遇到条件分支分歧时,处理过程则有所不同。对于较简单的IF-ELSE语句,PTX[7]汇编器将PTX语句只编译为GPU断言指令。此时GPU的断言设置指令处理IF语句的条件部分,并根据判断结果设置断言寄存器的各位,从而启用或禁用对应的SIMD道。当执行IF内部的语句时,操作被广播至所有SIMD道,但只有断言寄存器设为启用的道执行操作并流出结果,设为禁用的道并不执行操作也不保存结果。ELSE部分处理方式与之类似。分支语句执行结束后,SIMD道不再受断言影响,继续一致地执行后续指令。……

登录APP查看全文

猜你喜欢
指令优化策略
听我指令:大催眠术
超限高层建筑结构设计与优化思考
房地产导刊(2022年5期)2022-06-01 06:20:14
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
例谈未知角三角函数值的求解策略
我说你做讲策略
ARINC661显控指令快速验证方法
测控技术(2018年5期)2018-12-09 09:04:26
LED照明产品欧盟ErP指令要求解读
电子测试(2018年18期)2018-11-14 02:30:34
高中数学复习的具体策略
数学大世界(2018年1期)2018-04-12 05:39:14