MSLGNov 10, 2016

DiffSharp: An AD Library for .NET Languages

arXiv:1611.03423v114 citations
Originality Synthesis-oriented
AI Analysis

It provides a new AD tool for the .NET ecosystem, addressing a gap for developers in that domain, but is incremental as it adapts existing AD concepts to this specific platform.

DiffSharp is an algorithmic differentiation library for .NET languages like C# and F#, designed for machine learning to enable succinct model implementations and optimization routines, with high-performance linear algebra using OpenBLAS and plans for GPU support.

DiffSharp is an algorithmic differentiation or automatic differentiation (AD) library for the .NET ecosystem, which is targeted by the C# and F# languages, among others. The library has been designed with machine learning applications in mind, allowing very succinct implementations of models and optimization routines. DiffSharp is implemented in F# and exposes forward and reverse AD operators as general nestable higher-order functions, usable by any .NET language. It provides high-performance linear algebra primitives---scalars, vectors, and matrices, with a generalization to tensors underway---that are fully supported by all the AD operators, and which use a BLAS/LAPACK backend via the highly optimized OpenBLAS library. DiffSharp currently uses operator overloading, but we are developing a transformation-based version of the library using F#'s "code quotation" metaprogramming facility. Work on a CUDA-based GPU backend is also underway.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes