futhark-0.25.27: An optimising compiler for a functional, array-oriented language.

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.Optimise.MergeGPUBodies

Description

This module implements an optimization pass that merges `GPUBody` kernels to eliminate memory transactions and reduce the number of kernel launches. This is useful because the Futhark.Optimise.ReduceDeviceSyncs pass introduces `GPUBody` kernels that only execute single statements.

To merge as many `GPUBody` kernels as possible, this pass reorders statements with the goal of bringing as many `GPUBody` statements next to each other in a sequence. Such sequence can then trivially be merged.

Synopsis

- mergeGPUBodies :: Pass GPU GPU

# Documentation

mergeGPUBodies :: Pass GPU GPU Source #

An optimization pass that reorders and merges `GPUBody` statements to eliminate memory transactions and reduce the number of kernel launches.