~/talk

Generating High Performance Code for Irregular Data Structures using Dependent Types

Talkat FHPNC 2021 · on Sunday, 2021-08-22· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Extends a data-parallel language with index-sequence types (nuts), a scoping primitive (lift_nut / lift_nuts) and dependent pairs so offsets and packed CSR arrays bundle safely; compiler derives closed-form flattening for indexing and emits OpenCL GPU code. Implements dense→CSR conversion and spMV (and BFS in paper), runs on an NVIDIA GTX1080 against cuSPARSE, reports typical speedups around 1.2–1.5× and competitive overall. Types drive fusion, index-simplification and loop-bounds inference rather than acting only as proofs.

AI-written summary · about

  1. 0:00Start
  2. 23:29Question Does the compiler rely on or take advantage of types during optimisation, or are types only used for verification?
  3. 24:24Nice presentation is there any strong reason to have a nats type separate from arrays of indices? We were thinking of implementing something similar, but were planning to use arrays that are in scope as sources of sizes for other arrays.
  4. 25:39Could similarly fast code be written with data- parallel FP without dependent types, by implementing the code with "flat" arrays with manual offset computation i.e. presumably what your compiler itself ends up generating/?
  5. 27:52Does the type checker provide any guidance on when the compiler is able to turn indexing into closed forms?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.