CAS CS 591, Programmable Smart Machines

Schedule

Thu -- 6:00pm-9:00pm

Course Outline

A longstanding goal in computer science has been to build machines capable of automatically improving based on their experience and size. In his 1968 paper, 'Memo' Functions and Machine Learning (Nature, Apr. '68), Donald Michie challenged computer scientists with the following goal:

"It would be useful if computers could learn from experience and thus automatically improve the efficiency of their own programs during execution... When I write a clumsy program for a contemporary computer a thousand runs on the machine do not re-educate my handiwork. On every execution, each time-wasting blemish and crudity, each needless test and redundant evaluation, is meticulously reproduced."
Over the past several years the instructors of this course have been developing the concept of Programmable Smart Machines (PSMs): hybrid computing systems whose output is as programmed but which transparently learn and automatically improve their operation. Both from the theoretical and practical point of view, our work attempts to side-step the traditional bottlenecks associated with the von Neumann architecture while preserving its programming model. In this course we will look at a cross section of the material that has informed our work, encompassing applied and theoretical topics. Topics will include material from complexity theory, computer architecture, operating systems, machine learning and biologically inspired computation. A fundmental aspect of this course is to identify and clearly state open questions in this area of work.

The course will be predominantly structured as a seminar in which each week we will be looking at one or two research papers. You will be required to submit weekly reviews and actively participate in the discussions. Each student will conduct and a term long project.

Instructors

Jonathan Appavoo: jappavoo@bu.edu

Steve Homer: homer@cs.bu.edu

Amos Waterland: apw@seas.harvard.edu

Target audience

This course is targeted towards graduate and advanced undergraduate students. We encourage enrollment by both theory and systems students, especially those of you willing to push the boundaries of what you have been thinking about. You are encouraged to incorporate your personal interests and background into the class material.

Prerequisites

Students taking this class must have permision from the instructors, be a either a senior or graduate student, and be proficient in the core material of systems and theory.

Workload

Each week we will be covering on average one to two research papers that you will be expected to read, review and discuss. These papers will likely require that you find and read additional material as necessary to ensure your comprehension. Do not underestimate the amount of work this can be. You will be required to submit a written review of the papers prior to class. You will also be expected to actively participate in the in-class discussion. Each student is expected to lead one of the class discussions by summarizing the paper and seeding conversation with questions and observations from the paper.

In addition to the weekly paper reviews there will be a final project in which you will explore in detail an aspect of Programmable Smart Machines. Projects can range from a theoretical exploration to an applied experimental evaluation. The topic of your project must be approved by the instructors. You will be expected to present a poster about your project and to submit a brief written report by the end of the term. As part of the project you will be expected to establish in conjunction with the instructors the goals and criteria for its evalution. Each week you will provide a brief update on the progess of your project.

The project is due by the end of the lecture period. The project presentations will be given in the form of a final poster during the scheduled final exam slot.

Students are expected to work individually on the weekly reviews. With instructor approval the final project may be done in groups of up to two. There will be no final exam other than the poster presentations.

Grading

Reviews, Discussions, paper presentation: 40%

Project Poster and Report: 60%

Tentative schedule

>
Date Description Links Deadlines
01/20Class 1: Overview and Introductions
01/22Class 2: ASC Presentation & Discussion 1: ASC: Automatically Scalable Computation
2: ieee draft
01/27Class 3: ASC Tutorial 1: ASC: Automatically Scalable Computation
2: ieee draft
01/29Class 4: Discussion of Projects and Papers Instructors will update lists by this point. You must be ready to discuss your interests.
02/03Class 5: History and Foundations 1: First Draft of a Report on the EDVAC
02/05Class 6: History and Foundations 1: A LOGICAL CALCULUS OF THE IDEAS IMMANENT IN NERVOUS ACTIVITY Pick Project and Paper
02/10Class 7: History and Foundations 1: "Memo" functions and Machine Learning
2: Advice, Space Complexity and Approximate Counting Lecture Notes on Complexity Theory (focus on Lectures 8 and 10 depends on 1 and 2) by Oded Goldreich
02/12Class 8: History and Foundations 1: THE PERCEPTRON: A PROBABILISTIC MODEL FOR INFORMATION STORAGE AND ORGANIZATION IN THE BRAIN
02/19Class 9: History and Foundations One Page Project Topic Proposal Due
02/26Class 11: TBA
03/05Class 13: Neuromorphic 1: Neuromorphic Electronic Systems
2: Neuromorphic Computing Gets Ready for the (Really) Big Time Follow up on references
03/19Class 15: Chris "Cognitive Computing Programming Paradigm: A Corelet Language for Composing Networks of Neurosynaptic Cores", Amir et al. Three Page Project Overview Due
03/26Class 17: Adam and Andrew 1. "Cognitive Computing Programming Paradigm: A Corelet Language for Composing Networks of Neurosynaptic Cores", Amir et al.
2. A Case for Neuromorphic ISAs
04/02Class 19: TomislavLimits to Parallel Computation: Chapter 2
04/09Class 21: Allan A Brief Introduction to Fourier Analysis on the Boolean Cube
04/16Class 23: Thomas and Steve 1. "Project Adam: Building an Efficient and Scalable Deep Learning Training System", Chilimbi et al.
2. Spontaneous Retrieval from Long-Term Memory for a Cognitive Architecture
04/23Class 25: William"Convolutional Networks and Applications in Vision",LeCun et al.Poster Outline Due
04/30Class 27: Alexandar "Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging", Srinivasan et al.Project Report Due
TBAEXAM: POSTER SESSION

Papers & Project Details

adamperson.pdf
Name Paper Date Project
William "Convolutional Networks and Applications in Vision",LeCun et al. 04/23 Adding Convolutional Neural Network Support to ASC
Alexandar "Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging", Srinivasan et al. 04/30 Extending ASC to support peer-to-peer exchange of data
Andrew A Case for Neuromorphic ISAs 03/26 Training and Evaluating a game playing network on ASC
Christopher General-Purpose Code Acceleration with Limited-Precision Analog Computation 03/19 ASC for Amateur Programmers
Steve Spontaneous Retrieval from Long-Term Memory for a Cognitive Architecture 04/16 The Brain and AI
Thomas "Project Adam: Building an Efficient and Scalable Deep Learning Training System", Chilimbi et al. 04/16
Adam "Cognitive Computing Programming Paradigm: A Corelet Language for Composing Networks of Neurosynaptic Cores", Amir et al. 03/26 Specialization vs Generalization in the context of learning state space structure.
Tomislav Limits to Parallel Computation: Chapter 2 04/02
Allan A Brief Introduction to Fourier Analysis on the Boolean Cube 04/09 Fourier Analysis of known compromised Crypto Software

List of some possible papers:

This list will be extended in the first few weeks of class based on students back grounds and interests
    Theory
  1. Kushilevitz Mansour learning algorithm via Fourier coefficient analysis. link KUSHILEVITZ, E., and MANSOUR, Y., "Learning decision trees using the Fourier spectrum", SIAM Journal on Computing, Vol. 22, No. 6, pp. 1331-1348, 1993. If you want to dig deeper you can look up the by paper Goldreich and Levin which is referenced in the KUSHILEVITZ, E., and MANSOUR, Y paper and forms the basis for their method.
  2. Fourier analysis on the cube."A Brief Introduction to Fourier Analysis on the Boolean Cube" By Ron de Wolf. link This is a good intro to some of the ideas underlying the learning theory above.
  3. Paul Vitanyi et al on compression, relative compressibility, normalized compression distance and various thing related to Kolmogorov complexity: "Clustering by compression", by Vitanyi and Cilibrasi (link) and follow the backward and forward references to many related papers. Other papers by Vitanyi and others include: Nonapproximablity of the Normalized Information Distance, New applications of the incompressibility method: Part II Harry Buhrman, Tao Jiang, Ming Li, Paul Vitanyi, Philosophical Issues in Kolmogorov Complexity, Normalized Information Distance is Not Semicomputable, On Prediction by Data Compression
  4. "Memo" functions and Machine Learning
    D. Michie
    Nature, 1968
  5. A bridging model for parallel computation
    L. Valiant
    CACM, 1990
  6. Limits to Parallel Computation (Chapter 2)
    R. Greenlaw
    1991
  7. Systems
  8. Learning
  9. Neuromorphic

Project Ideas

This list will be extended in the first few weeks of class based on students' backgrounds and interests.
    Fourier Analysis
  1. Study a set of functions using Fourier Analysis
  2. ASC
  3. Add Input output support
  4. Break on PC values of read write open extend for IO
  5. Build OS calls into ASC
  6. Visualization
  7. Speculative execution with IO
  8. Study / explore a class of programs in asc

  9. Neueral Network Hardware
  10. Add a UART TX/RX wrapper interface to a version of DANA that can be used to communication an NN Transaction to DANA
  11. Currently, the modified FANN configuration only supports an all-to-all connectivity subset of FANN configurations. This needs to be relaxed to enable more limited connection strategies. This is a precursor to enabling Convolutional Neural Network (CNN) support. Note, that this specific issue does not allow for connections that skip layers.
  12. There exists the potential for some fault-tolerance within neural networks as evidenced by previous work with modular redundancy and no voting, see BARC 2015. A more advanced approach involves dynamically splitting "important" nodes or ignoring "un-important" nodes while an NN is executing (on an NN accelerator like DANA or simply in software). Much of this work is TBD, but this should be at least one publishable unit of work, here.
  13. The FANN should be generic enough to support Convolutional Neural Networks (CNNs). However, this support doesn't already exist. At the software level, we need to add support for this. What is primarily needed: 1) Add max-pooling activation function 2) Possibly some support for describing a CNN and then mapping this to a FANN configuration 3) Evaluation and testing
  14. The current version of DANA (at least at the level of gem5 integration) uses an x86 ISA interface. This needs to be moved to the RISC-V ISA. Note, that the RISC-V ISA should have support for generic "accelerator" extensions. However, we may need more support than this currently offers.

Collaboration and Academic Honesty

All course participants must adhere to the CAS Academic Conduct Code. Instances of academic dishonesty will be reported to the academic conduct committee.