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