You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,29 +27,30 @@ bibliography: paper.bib
27
27
28
28
# Summary
29
29
30
-
`diffblas` is a library that provides algorithmically differentiated [@griewank2008] BLAS routines from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade].
30
+
`diffblas` is a library that provides BLAS routines algorithmically differentiated using algorithmic differentiation principles [@griewank2008] from their reference implementations in [LAPACK](https://github.com/Reference-LAPACK/lapack) on GitHub using the automatic differentiation tool Tapenade [@tapenade].
31
31
It supports four modes: forward (`_d`), vector forward (`_dv`), reverse (`_b`), and vector reverse (`_bv`).
32
32
33
33
In addition to differentiating the standard Fortran-style `BLAS` interface, `diffblas` also provides differentiated `CBLAS` routines, facilitating interoperability with C and other languages.
34
-
Its API mirrors BLAS/CBLAS, with additional arguments specifying differentiation variables, making it straightforward to integrate into existing workflows.
34
+
Its API mirrors BLAS / CBLAS, with additional arguments specifying differentiation variables, making integration into existing workflows straightforward.
35
35
36
36
`diffblas` calls the underlying standard `BLAS `implementation, and is agnostic to the backend (OpenBLAS, BLIS, MKL, Apple Accelerate), ensuring both performance and portability.
37
+
Precompiled artifacts are available on GitHub to simplify installation and usage across different programming environments.
37
38
38
-
By providing accurate and efficient derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and a wide range of scientific computing applications
39
+
By providing efficient and accurate derivatives of linear algebra operations, `diffblas` facilitates gradient-based optimization, sensitivity analysis, and derivative-based workflows in scientific computing.
39
40
40
41
# Statement of need
41
42
42
-
Linear algebra routines such as those in LAPACK are fundamental to scientific computing, optimization, and machine learning.
43
-
However, they do not provide derivatives, which are often required for gradient-based algorithms.
44
-
Current approaches either rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone.
43
+
Linear algebra routines such as those in LAPACK are widely used in scientific computing, optimization, and machine learning. However, they do not provide derivatives, which are often required for gradient-based algorithms.
44
+
45
+
Existing approaches rely on hand-coded derivatives or generic automatic differentiation applied to high-level code, which can be inefficient or error-prone [@jonasson2020].
46
+
45
47
`diffblas` addresses this gap by providing algorithmically differentiated BLAS routines directly from reference LAPACK implementations and following relevant differntiation rules [@giles2008].
46
-
This enables accurate and efficient computation of derivatives while preserving compatibility with existing BLAS-based codes.
47
48
48
49
# State of the field
49
50
50
-
Automatic differentiation (AD) tools such as Tapenade [@tapenade], ADOL-C [@ADOLC], or Taf provide general mechanisms to compute derivatives of code.
51
-
However, applying AD naively to low-level BLAS or LAPACK routines can be inefficient due to loops, memory layout, and caching issues[@jonasson2020].
52
-
Specialized libraries like diffblas that generate differentiated routines directly from reference implementations combine the reliability of LAPACK with the efficiency of AD, bridging a gap in current scientific computing workflows.
51
+
Automatic source-to-source differentiation tools, such as Tapenade [@tapenade], ADOL-C [@ADOLC], or TAF [@TAF], provide general mechanisms to compute derivatives of code.
52
+
However, naively applying AD to low-level BLAS or LAPACK routines can be inefficient due to loop structures, memory layout, and caching constraints[@jonasson2020].
53
+
`diffblas` addresses these challenges by generating differentiated routines directly from reference LAPACK implementations, combining the reliability and performance of LAPACK with the efficiency of algorithmic differentiation.
0 commit comments