Futhark Vulkan Backend
Department of Computer Science, University of Copenhagen
University of Copenhagen, 2019
@article{larsen2019futhark,
title={Futhark Vulkan Backend},
author={Larsen, Steffen Holst},
year={2019}
}
This paper describes the effort, challenges, and limitations involved in the implementation of a Futhark compiler variant using the Vulkan API version 1.1 for compiling Futhark programs targeting GPUs. Compared to the existing OpenCL backend with the same purpose, the more modern Vulkan API could offer some performance benefits and may extend the scope of supported hardware for the Futhark programming language. The Futhark Vulkan backend comes as an extension upon the Futhark compiler pipeline with no changes to the structure, implementing both a host-todevice host code backend using the Vulkan API as well as an almost complete compiler from the intermediate kernel representation to SPIR-V shaders. Though most Futhark programs compile and run correctly using the Futhark Vulkan backend, there are still bugs and limitations residing in the implementation as well as volatile performance relative to that of the Futhark OpenCL backend tending towards a slowdown. However, now that the base implementation in place, with more work put into the Futhark Vulkan backend and potentially by giving the Vulkan API more time to further mature, the Futhark Vulkan backend may prove a valid alternative to the Futhark OpenCL backend in the future.
September 29, 2019 by hgpu