Comparative analysis of software optimization methods in context of branch predication on GPUs

General Purpose computing for Graphical Processing Units (GPGPU) technology is a powerful tool for offloading parallel data processing tasks to Graphical Processing Units (GPUs). This technology finds its use in variety of domains – from science and commerce to hobbyists. GPU-run general-purpose pro...

Full description

Saved in:
Bibliographic Details
Main Authors: I. Yu. Sesin, R. G. Bolbakov
Format: Article
Language:Russian
Published: MIREA - Russian Technological University 2021-12-01
Series:Российский технологический журнал
Subjects:
Online Access:https://www.rtj-mirea.ru/jour/article/view/394
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1849249584093593600
author I. Yu. Sesin
R. G. Bolbakov
author_facet I. Yu. Sesin
R. G. Bolbakov
author_sort I. Yu. Sesin
collection DOAJ
description General Purpose computing for Graphical Processing Units (GPGPU) technology is a powerful tool for offloading parallel data processing tasks to Graphical Processing Units (GPUs). This technology finds its use in variety of domains – from science and commerce to hobbyists. GPU-run general-purpose programs will inevitably run into performance issues stemming from code branch predication. Code predication is a GPU feature that makes both conditional branches execute, masking the results of incorrect branch. This leads to considerable performance losses for GPU programs that have large amounts of code hidden away behind conditional operators. This paper focuses on the analysis of existing approaches to improving software performance in the context of relieving the aforementioned performance loss. Description of said approaches is provided, along with their upsides, downsides and extents of their applicability and whether they address the outlined problem. Covered approaches include: optimizing compilers, JIT-compilation, branch predictor, speculative execution, adaptive optimization, run-time algorithm specialization, profile-guided optimization. It is shown that the aforementioned methods are mostly catered to CPU-specific issues and are generally not applicable, as far as branch-predication performance loss is concerned. Lastly, we outline the need for a separate performance improving approach, addressing specifics of branch predication and GPGPU workflow.
format Article
id doaj-art-f638ee8a20ff417e9dffb1dc46896f3d
institution Kabale University
issn 2782-3210
2500-316X
language Russian
publishDate 2021-12-01
publisher MIREA - Russian Technological University
record_format Article
series Российский технологический журнал
spelling doaj-art-f638ee8a20ff417e9dffb1dc46896f3d2025-08-20T03:57:31ZrusMIREA - Russian Technological UniversityРоссийский технологический журнал2782-32102500-316X2021-12-019671510.32362/2500-316X-2021-9-6-7-15287Comparative analysis of software optimization methods in context of branch predication on GPUsI. Yu. Sesin0R. G. Bolbakov1MIREA – Russian Technological UniversityMIREA – Russian Technological UniversityGeneral Purpose computing for Graphical Processing Units (GPGPU) technology is a powerful tool for offloading parallel data processing tasks to Graphical Processing Units (GPUs). This technology finds its use in variety of domains – from science and commerce to hobbyists. GPU-run general-purpose programs will inevitably run into performance issues stemming from code branch predication. Code predication is a GPU feature that makes both conditional branches execute, masking the results of incorrect branch. This leads to considerable performance losses for GPU programs that have large amounts of code hidden away behind conditional operators. This paper focuses on the analysis of existing approaches to improving software performance in the context of relieving the aforementioned performance loss. Description of said approaches is provided, along with their upsides, downsides and extents of their applicability and whether they address the outlined problem. Covered approaches include: optimizing compilers, JIT-compilation, branch predictor, speculative execution, adaptive optimization, run-time algorithm specialization, profile-guided optimization. It is shown that the aforementioned methods are mostly catered to CPU-specific issues and are generally not applicable, as far as branch-predication performance loss is concerned. Lastly, we outline the need for a separate performance improving approach, addressing specifics of branch predication and GPGPU workflow.https://www.rtj-mirea.ru/jour/article/view/394general-purpose computing for graphical processing unitsoptimizing compilerspredication
spellingShingle I. Yu. Sesin
R. G. Bolbakov
Comparative analysis of software optimization methods in context of branch predication on GPUs
Российский технологический журнал
general-purpose computing for graphical processing units
optimizing compilers
predication
title Comparative analysis of software optimization methods in context of branch predication on GPUs
title_full Comparative analysis of software optimization methods in context of branch predication on GPUs
title_fullStr Comparative analysis of software optimization methods in context of branch predication on GPUs
title_full_unstemmed Comparative analysis of software optimization methods in context of branch predication on GPUs
title_short Comparative analysis of software optimization methods in context of branch predication on GPUs
title_sort comparative analysis of software optimization methods in context of branch predication on gpus
topic general-purpose computing for graphical processing units
optimizing compilers
predication
url https://www.rtj-mirea.ru/jour/article/view/394
work_keys_str_mv AT iyusesin comparativeanalysisofsoftwareoptimizationmethodsincontextofbranchpredicationongpus
AT rgbolbakov comparativeanalysisofsoftwareoptimizationmethodsincontextofbranchpredicationongpus