ICFP 2023
Mon 4 - Sat 9 September 2023 Seattle, Washington, United States
Mon 4 Sep 2023 09:45 - 10:30 at Olympic - FHPNC Talk #1 Chair(s): Gabriele Keller

Many numerical algorithms on matrices or tensors can be formulated in a
blocking style which improves performance due to better cache locality.
In imperative
languages, blocking is achieved by introducing additional layers of loops in a
nested fashion alongside with suitable adjustments in index computations.
While this process is tedious and error-prone, it
is also difficult to implement a \emph{generically} blocked version
that would support arbitrary levels of blocking.

At the example of matrix multiply, this paper
demonstrates how rank-polymorphic array languages enable the specification
of such generically blocked algorithms in a simple, recursive form.
The depth of the blocking as well as blocking factors can be encoded in
the structure of array shapes. In turn, reshaping arrays makes it possible to switch
between blocked and non-blocked arrays.
Through rank-polymorphic array combinators, any specification of loop boundaries
or explicit index computations can be avoided.

Firstly, we propose a dependently-typed framework for rank-polymorphic
arrays. We use it to demonstrate that all blocked algorithms can be
naturally derived by induction on the argument shapes. Our framework
guarantees lack of out-of-bound indexing, and we also prove that all the
blocked versions compute the same results as the canonical algorithm.
Secondly, we translate our specification to the array language SaC. Not
only do we show that we achieve similar conciseness in the implementation, but
we also observe good performance of the generated code. We achieve
a 7% improvement compared to the highly-optimised OpenBLAS library,
and 3% compared to Intel's MKL library when running on a 32-core shared-memory system.

Mon 4 Sep

Displayed time zone: Pacific Time (US & Canada) change

09:00 - 10:30
FHPNC Talk #1FHPNC at Olympic
Chair(s): Gabriele Keller Utrecht University
09:00
45m
Keynote
Programming the Groq TSP Architecture in Haskell with Haste
FHPNC
09:45
45m
Talk
Rank-Polymorphism for Shape-Guided Blocking
FHPNC
Artjoms Šinkarovs Heriot-Watt University, UK, Thomas Koopman Radboud University, Sven-Bodo Scholz Heriot-Watt University
DOI