programfpgas2019: Programming FPGAs for Performance with OpenCL, HLS, VHDL, and more - editted by Reinders |
Website | http://programfpgas.com/book |
Submission link | https://easychair.org/conferences/?conf=opencl4fpgas |
Abstract registration deadline | March 22, 2019 |
Submission deadline | July 10, 2019 |
Let's create a useful book - together - for software developers wanting to make effective use of FPGAs for high performance computations (as opposed to circuit replacement).
Programming FPGAs for Software Developers (working title)
[techniques and recipes for software developer use of FPGAs]
This book will be a ground-breaking compilation that explains how to program FPGAs, written to be approachable and exciting for software developers (with no assumed knowledge of FPGA hardware or VHDL). The book will be useful for instructors, students, and practicing software professionals.
Submission Guidelines
A chapter in a book offers a much different opportunity to teach than a conference or journal submission - because it can be longer, include much more code listings and discussion, write in an approachable style, and discuss actual source code.
James Reinders, is also a very experienced author and editor with whom you'll enjoy working. James will work tirelessly with you, to help bring your chapter to its full potential. James enjoys working with authors, to help create wonderful chapters. You will NOT be alone! Let's have fun together!
Abstracts are due by March 22 and should be 300-500 words long. Please explain what you envision for your chapter by including (1) who will contribute, (2) a summary of what you will show/teach, (3) explain the source code that will be discussed and how much will be shared (status of source code being open source for instance), and (4) any prior presentations/publications of your topic. Feel free to just point to a published paper, and explain how you plan to expand it into a teaching chapter.
Chapters should be original work and not simultaneously submitted to another book. Expanded versions of prior work are welcome (please let us know the prior publications).
Chapters should include the following:
- Have a teaching oriented, approachable, writing style
- Discussions of both what works, and what does not (yes - share your mistakes too!)
- Source code listings, and discussions
- Option to download the full source code (completely free for at least learning purposes)
- Feel free to ask the editor (James) to help with the teaching/approachability (James likes to help edit, offer feedback and suggestions)
- Feel free to propose very rough drawing/figures or ideas for such, and ask for help developing them (in other words, artwork does not need to be camera ready - James will HELP!)
Feedback/selection will occur by April 5.
Chapter submissions will be assigned one of 4 staggered assignments for delivery of the first complete draft (date will be selected together): April 24, May 26, June 19, or July 10
Feedback will be supplied within 2 weeks of receipt of submission, modified (final) copy due 3 weeks later.
Publication - we hope to have the book available by the end of 2019 (yes, we'd like to do sooner if practical).
Contributor’s agreement (available for review at https://tinyurl.com/FPGA-contribute) should be returned shortly after abstract acceptance, and definitely needs to be signed and returned before actual chapter submission is reviewed.
Contributors will be acknowledged in the book, and will receive choice of one print, or one e-book, copy for their own use.
Submission format: Microsoft Word preferred, LaTeX accepted, other formats at the discretion of the editor (James Reinders).
Length: Chapter length should be between 8 and 40 pages, with generous allowance for figures, diagrams, and code listings. A typical chapter will be 15-25 pages in final format, but some may be 40 pages long if appropriate (esp. if lots of code listings with discussions are involved).
List of Topics (you are invited to consider these, or suggest others!)
- OpenCL programming of FPGAs for compute
- HLS programming of FPGAs for compute
- VHDL programming of FPGAs for compute
- Any programming of FPGAs for compute
- Teach a particular technique for FPGA programming (might transcend implementation methods)
- Teach FPGA programming (a few introductory chapters are desired!)
- Lessons for FPGA programming appropriate for college course usage (and likely to be useful for any software developer)
- Performance tuning - considerations and techniques, role and types of simulations
- Case studies - esp. in-depth look at an FPGA algorithm end-to-end programming
- Unique needs for effective FPGA programming
- Overlays (time division multiplexing); Partial reconfigurability
- How to combine OpenCL / HLS / VHDL / IP blocks; includes “hacking the tool flow”
- Cloud access/use for FPGA
- Using direct I/O connections to FPGA
- Using memory connections to FPGA (including DMA)
- Memory coherency or not
- IP protection considerations
- Timing constraints
- If/how to think about FPGA components (DSP, registers, gates)
- Interchanging code/algorithms with GPUs/CPUs (what works, what does not)
- Bringing computation to the data (many angles possible)
- Future considerations / trends
- Interfacing with Fortran, C, C++, Python, others
Priority given to submissions which are:
- Teaching oriented: explain a challenge, discuss the best approaches to solve
- Show source code, make source code available (open source)
- Applicable to both Xilinx and Intel/Altera (editor will help adopt if needed)
- Do not assume a hardware background
Publication
The chapter will be edited by James Reinders (with approval and interaction with authors), and published as a book by CRC - hopefully before the end of 2019.
Programming FPGAs for Software Developers (working title)
[techniques and recipes for software developer use of FPGAs]
Contact
All questions about submissions should be emailed to fpgabook@jamesreinders.com.