Lessons and Learning Resources
Note: | Please
see Amathuba site for latest lecture
slides and course
handout. The course structure and pracs are being reworked for 2024. |
Week 1: | Intro to HPES and Essential Terms (12-16 Feb) |
Lecture 01 This is the first lecture for this course, mainly a Meet & Greet and explanation of how the course is structured and what is involved. Have a look though this lecture and then give Quiz0 a try.. Read L01:
Asanovic et al., The landscape of parallel
computing research: A view from Berkeley |
|
Lecture 02 Terms, Validation vs. Verification, Commonly used verification Amdahl’s Law, Dealing with reading assignments. Then discussion bridging to Prac1 and use of golden measure. Discuss reading R01. Lecture2(notes).pdf : lecture printed with in notes view. Watch: Linux Magazine Video: Understanding Parallel Computing (Part 1): Amdahl's LawWatch (optional): Understanding Parallel Computing (Part 2): The Lawn Mower Law |
|
Week 2: | Towards Digital Accelerators. Benchmarking Techniques. (19-23 Feb) |
Lecture 03 Reading tasks
Links (suggested further reading or activities): |
|
Lecture
04 OpenCL Overview. How to program in OpenCL. You may
want to hyperspace to slide 42 if you want to get
going with Prac2 asap. (some clickable Voice
annotations in the PowerPoint
slides updated). |
|
Lecture 05 Code mentioned in the
slides:
|
|
Week 3: | Parallel programming & Performance Benchmarks (27 Feb – 3 Mar) |
Lecture
06 Performance benchmarking (Part 2). Links (suggested further reading or activities): |
|
Lecture
07 Parallel Computing Fundamentals. Large Scale Parallelism. Mainstream parallel. Classic Parallel approaches. Flynns Taxonomy. Some Calculations - effective parallelism, parallel Efficiency, Gustafson's Law. L7_learning_activity_A.pdf:
Considering if SPMD or MPMD better than SPSD (Excel document that illustrates to the solution discussed in slides: L7-activity calc.xlsx) Watch:
|
|
Lecture
08 Amdahl's Law for the Multicore Era and Base Core Equivalents (BCE). - Understanding Amdahl's Law for the Multicore Era- Base Core Equivalents (BCEs) - Calculating performance using BCEs Reading: Hill and Marty 2008: "Amdahl's Law in the Multicore Era" source: https://ieeexplore.ieee.org/abstract/document/4563876 |
|
Week 4: | Design of Parallel Systems and Programs (6-10 Mar) |
Lecture
09 Steps in parallelizing programs. Understand the problem. Partitioning. Granularity. Identify data dependencies. In these presentation covering steps 1-3: 1) Understand the problem, 2) Partitioning (i.e. separation into main tasks), 3) Granularity (assessing granularity of the problem vs. the parallelism). Note: refined description to explain the difference between 'granularity of problem' vs. 'granularity of parallelism'. (Discussion brings in issues and thinking points of GA2 Conceptual Assignment) |
|
Lecture
10 Continuing the steps of designing parallel systems. Covering Steps 5-7: 5) Synchronization, 6) Load balancing, 7) Performance analysis and tuning. (Step 4 is a rather elaborate step, involving communication and integration of subsystems and is therefore covered in a lecture on its own). |
|
Week 5: | Communication and Memory Architecture (13-17 Mar) |
Lecture
11 Step 4: communication: Factors related to
Communication; Cost of communications; Latency vs.
Bandwidth; Baud rate vs. Bandwidth; Effective
bandwidth; Visibility of Communications; Synchronous
vs. asynchronous; Scope of communications;
Collective communications; Efficiency of
communications. |
|
Lecture
12 Distributed and Shared Memory Architectures: Distributed memory infrastructure; Shared memory infrastructure; Hybrid memory infrastructure; Warming up for MMU, DMA and memory considerations (to be delved into next term). |
|
Week 6: | Intro to YODA Project and Verilog Refresher (20-24 Mar) |
Lecture
13 Your Own Digital Accelerator (YODA) Project;
Discussion of Digital Accelerators. |
|
Lecture
14 Programmable Logics and FPGAs Interns. Topics covered:
|
|
Lecture
15 Coding in Verilog: Basics of Verilog coding. Exercise in Verilog. Verilog simulators. Intro to Verilog in Vivado/ISE. Test bench. Generating Verilog from Schematic Editors. (This presentation does recap various aspects covered in EEE3096S ES-II). Watch:
Recommended: give EDA playground (www.edaplayground.com) a try, you may want to set up your own login for using the tool. Take a look at the useful tutorial and support that is available on ASIC World at www.asic-world.com/examples/verilog. |
|
Week 7: | Class Test. YODA Project Planning & Term 1 catch-up (3-7 Apr) |
Test 1. Progress and planing of your YODA projects. Catch up on practical assignments. | |
Week 8: | More Verilog HDL and Simulation Techniques (10-14 Apr) |
Lecture
16 Topics include: Brief recap (of Verilog items from
lect 15); Busses and Endianness; Functions in
Verilog; Implementing state machines; Blocking and non-blocking simulation example. |
|
Lecture
17 Topics covered: Attributes; Constraints; UCF Files; Xilinx Design Constraints {many of these slides won't be examinable, slides relevant to exams: 4-7, don't need to know syntax for UCF (skip 8-13), be familar with what XDC is but won't be expected to know use this tool and don't need to worry with the UCF tutorial, although useful to try it if you plan to use a Xilinx FPGA board.} |
|
Week 9: | FPGA systems and related architecture (17-21 Apr) |
Lecture
18 FPGA and CPU Performance Comparison (audio
annotations in pptx). |
|
Lecture
19 HDL Imitation method. Using standard benchmarks for FPGAs. Amdahl's Law for FPGAs. The 'HDL Imitation' method is a suggested approach to quickly get together both a golden measure and a start on a HDL solution. Various case studies are used in these slides for examples of how the methods are applied. |
|
Project
MS-1 Tips on strategizing your YODA projects, and deciding roles for the team members. Plans on marking and review of MS1 submission and onward to MS2 and expectations for that milestone. |
|
Week 10: | Config architecture, Interconnects, Apr (24-28 May) |
Lecture
20 More Verilog; Configuration Architectures; RC
Building Blocks (for IP Cores); Basic handshaking,
latches and other interface ingredients. |
|
Week 11: | More HDL methods; RC Design Process (1-5 May) |
Lecture
21 On-chip interconnection bus topologies; Interfacing standards; Memory types; Memory Control Unit (MCU) (Part 1 of 2); Using Memory and MCU in Verilog Example single-port memory unit in Verilog: RAM MCUramc.v testbench: ramc_tb.v |
|
Lecture
22 Memory Control Units (part 2 of 2): Dual-port memory control unit, Setting up memory in code and in simulation; FIFO and LIFO. {optional reading: On-chip Interfacing Standards: Wishbone and how it works, The Altera/Intel Avalon Bus}. Example half-duplex single-port memory unit in Verilog: HDP-RAM MCUhdp_ram.v testbench: hdp_ram_tb.v Example full-duplex single-port memory unit in Verilog: FDP-RAM MCU fdp_ram.v testbench: fdp_ram_tb.v |
|
Week 12: | HPES and Reconfigurable Computing Design Process; Softcores (8-12 May) |
Lecture
23 HPES Development Process and Management Aspects: Where work is done; Division of Labour (DoL); HPES development process; Setting system objectives; Costs and risks; Monitoring progress; Documentation; Effort, Productivity and Progress. (Indeed, design and development team factors that university graduates working on advanced embedded systems should be aware of.) (Optional extra slides re intro to Doxygen) |
|
Lecture
24 Note that slide 15 onward are optional reading and will not be examined this year. Comments/study tips: '[Software] Quality Assurance'. NB: For the exam, you can skip most of this lecture, it is largely optional additional reading and will not be examined! However, as per my earlier comment, it is good for a university graduate to know about these issues. The '[software]' is in square brackets because, while much of these slides do related to software, much of the aspects also relate to HPES and FPGA-based HDL disign work. Topics: What is quality?; Software quality; Software quality assurance (SQA); Software quality systems; Consequences of bad SQA; An evolutionary model of SQA in organizations; Kaizen of software and Formal Specifications as getting closer to accurately specifying quality. |
|
Summary: | Summary and study tips (17 May) |
Summary slides will to be provided soon |