------------------------------------------------------------------------ CS 262 project proposal 10/8/98 ------------------------------------------------------------------------ -------------------------------- Name: Eylon Caspi -------------------------------- E-Mail Addresses: eylon@cs.berkeley.edu mmchu@cs.berkeley.edu rhuang@cs.berkeley.edu -------------------------------- Concise Project Title: Scheduling for Virtualized FPGA Hardware -------------------------------- Names of Project Partners: Eylon Caspi Michael Chu Randy Huang -------------------------------- Provide an abstract of your project: (2-3 paragraphs) The BRASS (Berkeley Reconfigurable Architectures, Systems, and Software) HSRA (Hierarchical Synchronous Reconfigurable Array) is a high-speed, synchronous FPGA (field-programmable gate array) with hierarchical (tree-based) interconnect and embedded DRAM, to serve as a reconfigurable co-processor for a conventional RISC core. To be useful in a general-purpose, scalable computing environment, the array should support efficient scheduling of designs too large to fit on the array, as well as multi-processing of simultaneous, independent designs. The HSRA's solution to these problems involves (i) virtualizing hardware at a granularity of "sub-arrays" or "pages" containing some compute-cells and memory (presently 64 5-LUT cells with 2 Mbit DRAM), and (ii) using a stream-based, data-flow programming model which allows inter-page I/O to be buffered transparently through memory when communicating pages are not simultaneously loaded in hardware. In this CS 262 project, we wish to consider the problem of automatic scheduling of computations (which have been pre-partitioned into pages) on the HSRA. The project will involve formalizing some details of the HSRA's runtime model, developing one or more scheduling policies and corresponding performance metrics, and evaluating the performance of a workload of hand-partitioned multimedia programs. For performance evaluation, we intend to develop a behavioral simulator which schedules compute-pages as black-boxes (implemented by Java behavioral code) with known communication requirements. -------------------------------- What is the key contribution you hope to achieve with your project? What do you hope to prove (or disprove) with your project? What is the research hypothesis to be tested by the project? Who would be interested in your research results, and why? - virtualized FPGA pages are a "good thing" - develop placement/scheduling policy(s) for a time-shared FPGA - develop behavioral simulator for HSRA (for future BRASS work) - evaluate best compute-page size? -------------------------------- What is the methodology for your project? If you are building something, give the platform(s), language, and test cases. If is trace-based, describe how you will collect and analyze the traces. If it is an evaluation, list the input cases and describe why you believe (or will conclude) that these are representative. - Develop placement/scheduling policy(s) based on particular metrics (e.g. job or data throughput) - Develop behavioral simulator to schedule pre-partitioned designs. Compute pages will have (i) behavioral Java code and (ii) specified communication requirements (nodes, rates, real-time, etc.) - Write behavioral code for several multimedia applications * partition job into "pages" (estimate page size) * maybe multiple implementations for different design criteria (throughput, memory, etc.) or different page sizes? -------------------------------- How far do you expect to be by the next survey (November 5th)? The next major checkpoint is one month away. Think now about where you hope to be. - Study + refine (preliminary) HSRA runtime model - Read about resource-allocation + scheduling for: * producer-consumer problems (esp. on multiprocessors) * data-flow architectures - Propose performance metrics + scheduling policies tailored to them - Choose benchmarks & think about implementation / page-partitioning - Build behavioral simulator infrastructure (start on it?) - To do later: * implement benchmarks (most tedious part?) * run simulations * write report -------------------------------- What is your project's web page? We would like you to begin assembling a web page for your research project, incorporating your abstracts, plans, and incremental results. The instructor will begin visiting these sites from time to time to check on your progress. These will be linked to from the CS 262 Home Page. Remember, your colleagues in the course will be looking at these pages! http://www.cs.berkeley.edu/~eylon/cs262/ -------------------------------- What additional help do you need for your project? Resources, accounts, etc. - Pizza - Palm III's - Peace in the Middle East - A working version of JDK --------------------------------