Download Preface - The Computer Laboratory

Transcript
c 2011-17 DJ Greaves + S Singh
management, where all memory structures are allocated at compile-time and permanently allocated
to on-FPGA RAM or external DRAM. Release 2 of KiwiC, which has had some successful tests
already, supports arbitrary heap-allocation at run time but does not implement garbage collection.
The Kiwi performance predictor is an important design space exploration tool. It enables HPC users
to explore the expected speed up of their application as the modify it, without having to wait for
multi-hour FPGA compilations in each development iteration.
The Kiwi compiler, KiwiC, itself consists of about 22 klocs (thousand lines of code) of F# (FSharp)
code that is a front end to the HPR L/S logic synthesis library that is composed of another 60 or so
klocs of F#. The code density for F#, like other dialects of ML, is perhaps (conservatively perhaps)
3 times higher than for common imperative languages like C++, Java and C#, so it is a significant
project.
Note that the PDF version of this document tends to be more up-to-date than the HTML version.
http://www.cl.cam.ac.uk/research/srg/han/hprls/orangepath/manual/kiwic.pdf
Contents
0.1
1
Asymptotic Background Motivation for FPGA Computing . . . . . . . . . . . . . . 10
Download and License
1.1
10
Warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
I Scientific Users’ Guide
12
2
12
Kiwi Substrate
2.1
Console and LCD stdout I/O and LED GPIO . . . . . . . . . . . . . . . . . . . . . 14
2.2
Run-time Exception Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3
DRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Watchpoints and Start/Stop Control . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5
Framestore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6
Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
II Installation and Easy Get Started
15
3
15
Get Started (Mono on Linux)
3.1
Getting A K-Distro Binary Distribution . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2
Using A K-Distro Binary Distribution . . . . . . . . . . . . . . . . . . . . . . . . . 16
Kiwi Scientific Acceleration Manual
Rough Draft User Manual (KiwiC Version Alpha 0.3.2e) (Sept 2017)
2