google / google/xls

Create example flow for numerical exploration

Open
#309 1 comment 0 reactions 0 assignees View on GitHub
long-term-enhancement
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

For the JPEG decoder example I expect we'll want some of the capability to play with numerical precision (i.e. quantization) and determine its impact on final result accuracy, since for the IDCT you can reduce the precision -- it's not specified precisely by the standard or anything (to make room for different possible implementations of IDCT).

What could be good is if in the DSL you can make parametric code independent of numerical type and then easily instantiate different ones to observe error bars, and sweep some corpus (using native JIT presumably) to observe the tradeoff space. This will tie into @RobSpringer's work on parametric floats, but we'll need to extend to fixed point library as well, and want (compile-time) polymorphism to enable the operators to work across these disparate types. If we do IDCT as a systolic array (since it's a little matmul), as I expect we will, we'd want accumulator and multiplier width to be parametric, and want to ensure earlier accumulators were getting culled down in size from the maximum accumulation width via range analysis.

Najjar's group paper on this I had read in the past which is likely relevant/interesting: https://www.cs.colostate.edu/cameron/Publications/bins_spie99.pdf

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.