节点文献

Bypass-Enabled Thread Compaction for Divergent Control Flow in Graphics Processing Units

  • 推荐 CAJ下载
  • PDF下载
  • 不支持迅雷等下载工具,请取消加速工具后下载。

【作者】 李炳超魏继增郭炜孙济洲

【Author】 LI Bingchao;WEI Jizeng;GUO Wei;SUN Jizhou;College of Computer Science and Technology,Civil Aviation University of China;College of Intelligence and Computing,Tianjin University;

【通讯作者】 魏继增;

【机构】 College of Computer Science and Technology,Civil Aviation University of ChinaCollege of Intelligence and Computing,Tianjin University

【摘要】 Graphics processing units (GPUs) employ the single instruction multiple data (SIMD) hardware to run threads in parallel and allow each thread to maintain an arbitrary control flow.Threads running concurrently within a warp may jump to different paths after conditional branches.Such divergent control flow makes some lanes idle and hence reduces the SIMD utilization of GPUs.To alleviate the waste of SIMD lanes,threads from multiple warps can be collected together to improve the SIMD lane utilization by compacting threads into idle lanes.However,this mechanism induces extra barrier synchronizations since warps have to be stalled to wait for other warps for compactions,resulting in that no warps are scheduled in some cases.In this paper,we propose an approach to reduce the overhead of barrier synchronizations induced by compactions.In our approach,a compaction is bypassed by warps whose threads all jump to the same path after branches.Moreover,warps waiting for a compaction can also bypass this compaction when no warps are ready for issuing.In addition,a compaction is canceled if idle lanes can not be reduced via this compaction.The experimental results demonstrate that our approach provides an average improvement of 21%over the baseline GPU for applications with massive divergent branches,while recovering the performance loss induced by compactions by 13%on average for applications with many non-divergent control flows.

【Abstract】 Graphics processing units (GPUs) employ the single instruction multiple data (SIMD) hardware to run threads in parallel and allow each thread to maintain an arbitrary control flow.Threads running concurrently within a warp may jump to different paths after conditional branches.Such divergent control flow makes some lanes idle and hence reduces the SIMD utilization of GPUs.To alleviate the waste of SIMD lanes,threads from multiple warps can be collected together to improve the SIMD lane utilization by compacting threads into idle lanes.However,this mechanism induces extra barrier synchronizations since warps have to be stalled to wait for other warps for compactions,resulting in that no warps are scheduled in some cases.In this paper,we propose an approach to reduce the overhead of barrier synchronizations induced by compactions.In our approach,a compaction is bypassed by warps whose threads all jump to the same path after branches.Moreover,warps waiting for a compaction can also bypass this compaction when no warps are ready for issuing.In addition,a compaction is canceled if idle lanes can not be reduced via this compaction.The experimental results demonstrate that our approach provides an average improvement of 21%over the baseline GPU for applications with massive divergent branches,while recovering the performance loss induced by compactions by 13%on average for applications with many non-divergent control flows.

【基金】 the National Natural Science Foundation of China (No.61702521);the Natural Science Foundation of Tianjin (No.18JCQNJC00400);the Scientific Research Foundation of Civil Aviation University of China (No.2017QD12S);the Fundamental Research Funds for the Central Universities of Civil Aviation University of China (Nos.3122018C023 and 3122018C021)
  • 【文献出处】 Journal of Shanghai Jiao Tong University(Science) ,上海交通大学学报(英文版) , 编辑部邮箱 ,2021年02期
  • 【分类号】TP391.41
节点文献中: 

本文链接的文献网络图示:

本文的引文网络