Lecture Slides

Lecture 1 Lecture 01

This is the first lectures for this course, mainly a meet & greet and explanation of how the course is structured and what is involved.

Lecture 1 Lecture 02

Terms, Validation vs. Verification, Commonly used verification methods, Class Activity – Quiz#0

Lecture 3 Lecture 03
Lecture 4 Lecture 04

Parallel computing fundamentals, Large Scale Parallelism, Amdahl’s Law Revisited, Base Core Equivalents (BCEs), Calculating performance using BCEs

Lecture 5 Lecture 05

Parallel Languages, Automatic Parallelization, Performance Benchmarking, Metrics of Performance

Lecture 5 Lecture 06

Benchmarking cont, Introduction to pThreads.

Seminars
HPEC Seminar Series

The slides for the seminars will be made available on the VULA site for this course.
Lecture 7

Lecture 07

  • Power concerns
  • GST and socially conscious computer engineers
  • Grosch's 'law'
  • Supercomputer performance and the Top500
Lecture 8

Lecture 08

  • Parallel Programming Models
  • Parallel System Approaches
  • Parallel Programming Tools
  • Parallelizing Compilers
  • Shared Memory Models
  • Shared Memory Terms
Lecture 9

Lecture 09

  • Why OpenCL
  • Brief overview of OpenCL
  • Abstractions and platform model
  • OpenCL Scenario & Prac3 Prep
  • TestDevices.zip (test your OpenCL device)
Lecture 10

Lecture 10

  • Classic parallel programming techniques
  • Processor Architecture Types
  • Von Neumann
  • Flynn’s Taxonomy
  • Memory access architectures
  • Case Studies of classic microprocessor/microcontroller architectures
Lecture 11

Lecture 11

  • Cloud computing
  • Virtualization
Lecture 12

Lecture 12

  • Where work is done, division of labour
  • HPEC management
  • HPEC development process
  • Setting system objectives
  • Monitoring progress
  • Documentation
  • Effort, Productivity and Progress
  • (Optional extra slides re intro to Doxygen)
Lecture 13

Lecture 13

  • What is quality?
  • Software quality
  • Software quality assurance (SQA)
  • Software quality systems
  • Consequences of bad SQA
  • Evolutionary model of SQA in organizations
  • Kaizen of software
Lecture 14

Lecture 14

  • MPI
  • OpenMP
  • Best of both
Lecture 15

Lecture 15

  • Development Environment
  • What are productivity tools?
  • An effective selection of productivity tools
Lecture 16

Lecture 16

  • Your Own Digital Accelerator (YODA) project
Lecture 17

Lecture 17

  • Programmable Logic Devices
  • What is so special about FPGAs
  • FPGA interns
  • Xilinx Slices
Lecture 18

Lecture 18

  • Why Verilog?
  • Basics of Verilog coding
  • Exercise
  • Verilog simulators
  • Intro to Verilog in ISE/Vivado
  • Test bench
  • Generating Verilog from Schematic Editor
Lecture 18X

Lecture 18X

As you might anticipate the 'X' means it's not in the test or exam syllabus
  • HDL and VHDL Recap
Lecture 19

Lecture 19

  • FPGA performance evaluation
  • FPGA vs CPU performance
  • FPGA families
  • YODA issues
Lecture 20

Lecture 20

  • Brief recap
  • Busses and endianess
  • Functions in Verilog
  • Implementing state machines
  • Constraints
  • UCF Files
suggested reading Recommended reading: Xilinx learning module on UCF Editing
Lecture 21

Lecture 21

  • When to use assign
  • Blocking and non-blocking simulation and potential pitfalls
  • The unconditional always
  • Configuration architectures
  • Digital signals, Interface basics, Using latches
Lecture 22

Lecture 22

  • Interconnection on-chip bus topologies
  • Interfacing standards
  • A look at Wishbone and how it works
  • Standard memory interfaces
  • DMA transfers
  • Memory types
Lecture 23

Lecture 23

  • Softcore processors
  • Case studies:
    • Xilinx Microblaze
    • Xilinx Picoblaze
    • DUGONG (a 'sort of' interface control processor)
    • [Optional: Altera/Intel NIOS2]
Lecture 24

Lecture 24

RC Platform Case Studies 1/2: Tools and toolchain considerations and The Cell Processor
Lecture 24X

Lecture 24X

24X is not in exam!!
RC Platform Case Studies 1/2: Large and small FPGA-based RC systems - the FPGA-based PAM, VCC, SPLASH systems
Lecture 25

Lecture 25

Heterogeneous Computing Solutions Part 1/4
Step 1: understanding the problem
Step 2: partitioning
Step 3: decomposition and granularity
Lecture 26

Lecture 26

Heterogeneous Computing Solutions Part 2/4
Step 4: communication (yes, there's a lot to say about comms so it needs it own lecture)
Lecture 27

Lecture 27

Heterogeneous Computing Solutions Part 3,4/4
DeepQA – a HPEC case study
Step 5: Identify data dependencies
Step 6: Synchronization
Step 7: Load balancing
Step 8: Performance analysis and tuning
Lecture 25

Lecture 28X

28X is not in exam!!
MIPS and FLOPS are not enough...
C to HDL automatic conversion

HandleC_Syntax.pdf (condensed version)
C to HDL Example
Review Lecture

Review Lecture

summary
Review lecture will be available soon