GPU Accelerated Automatic Differentiation With Clad

03/11/2022
by   Ioana Ifrim, et al.
0

Automatic Differentiation (AD) is instrumental for science and industry. It is a tool to evaluate the derivative of a function specified through a computer program. The range of AD application domain spans from Machine Learning to Robotics to High Energy Physics. Computing gradients with the help of AD is guaranteed to be more precise than the numerical alternative and have a low, constant factor more arithmetical operations compared to the original function. Moreover, AD applications to domain problems typically are computationally bound. They are often limited by the computational requirements of high-dimensional parameters and thus can benefit from parallel implementations on graphics processing units (GPUs). Clad aims to enable differential analysis for C/C++ and CUDA and is a compiler-assisted AD tool available both as a compiler extension and in ROOT. Moreover, Clad works as a plugin extending the Clang compiler; as a plugin extending the interactive interpreter Cling; and as a Jupyter kernel extension based on xeus-cling. We demonstrate the advantages of parallel gradient computations on GPUs with Clad. We explain how to bring forth a new layer of optimization and a proportional speed up by extending Clad to support CUDA. The gradients of well-behaved C++ functions can be automatically executed on a GPU. The library can be easily integrated into existing frameworks or used interactively. Furthermore, we demonstrate the achieved application performance improvements, including ( 10x) in ROOT histogram fitting and corresponding performance gains from offloading to GPUs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/04/2023

Automatic Differentiation of Binned Likelihoods With Roofit and Clad

RooFit is a toolkit for statistical modeling and fitting used by most ex...
research
04/09/2020

Automatic Differentiation in ROOT

In mathematics and computer algebra, automatic differentiation (AD) is a...
research
11/24/2015

DiffSharp: Automatic Differentiation Library

In this paper we introduce DiffSharp, an automatic differentiation (AD) ...
research
03/12/2018

Algorithmic Differentiation for Domain Specific Languages

Algorithmic Differentiation (AD) can be used to automate the generation ...
research
04/13/2023

Fast And Automatic Floating Point Error Analysis With CHEF-FP

As we reach the limit of Moore's Law, researchers are exploring differen...
research
10/26/2018

Automatic differentiation in ML: Where we are and where we should be going

We review the current state of automatic differentiation (AD) for array ...
research
04/15/2021

Performance Analysis and Optimization Opportunities for NVIDIA Automotive GPUs

Advanced Driver Assistance Systems (ADAS) and Autonomous Driving (AD) br...

Please sign up or login with your details

Forgot password? Click here to reset