Despite the commercial success of machine learning, researchers should be exploring radically new and different computing paradigms if we ever hope to achieve brain-like capabilities with brain-like efficiencies. If the brain is a unary computer (and strong arguments can be put forward that it is), then it behooves the computer architecture research community to be studying and developing models for unary computation. Because unary computation has much broader application than neocortical operation, there is much to be gained by exploring unary computation as a general proposition. Until now, however, unary computing has been studied in a variety of contexts by different research groups. Hence, the primary objective of this workshop is to bring together computing researchers investigating unconventional computational paradigms based on unary computation.
Unary computing uses simple number representations to achieve highly efficient implementations for certain classes of applications. For those applications that are amenable to unary computation, improvements in performance and/or energy efficiency are often by multiple factors, if not orders of magnitude, when compared with conventional binary implementations. The workshop presentations provide an excellent overview of the properties and capabilities of unary processing.
Unary processing methods typically use pulses or spikes as the basic encoding mechanism. There are three basic unary encoding and processing methods, all of which are represented in this workshop.
Stochastic methods encode values as a count of pulses (or spikes) in a given time interval, and the pulses are stochastically generated.
Temporal methods encode values via timing relationships among pulses.
Deterministic methods, like stochastic methods encode values as a count of pulses, however, the individual pulses are deterministically produced rather than stochastic.
Applications, roughly speaking, are numerical (based on the common arithmetic operations of addition and multiplication) or non-numerical (based on comparisons, for example). The non-numerical applications sometimes allow the addition of constants, however.
Of recent interest are non-numerical applications based on temporal coding, these include an important class of spiking neural networks and other machine-learning methods that can exploit temporal relationships rather than arithmetic operations (besides addition of constants). They also have been applied to graph problems, image processing, and sorting problems. In this workshop, fuzzy logic operations (Paper 5) can be added to the growing list.
Numerical applications have a much longer history. In the current application environment, near-sensor processing typically demands extremely low power consumption and low hardware cost. Furthermore, sensor data is often in unary form to begin with. This makes near-sensor processing an excellent application area for unary processing. Paper 1 uses deterministic unary processing as the basis for a small convolution engine. The design is shown to be superior to conventional designs in both area and power consumption -- by large factors.
At a high level, the development of numerical applications is naturally based on conventional methods. However, at a lower level, unary processing has its own special features and constraints. Paper 2 proposes a domain specific language for developing systems based on either stochastic or deterministic bit streams. It provides a researcher or designer with a high level tool for architecting and constructing bit stream systems. As such, it is an important step in making unary-based computation accessible to engineers. Paper 3 focuses on a stochastic solution to a fundamental planning and navigation problem. It both illustrates the general nature of stochastic computing and demonstrates the area and power advantages of unary processing.
Despite its advantages, it is widely acknowledged that resolution (precision) imposes a practical limitation on unary processing: there is a dramatic loss of efficiency as the resolution of values increases. Consequently, an important research direction is extending the applicability of unary processing to higher resolutions while maintaining most of the advantages. Paper 4 hybridizes deterministic unary processing with residue arithmetic to yield practical, highly efficient multiplier implementations for resolutions significantly higher than can be achieved with unary methods alone. Paper 6 hybridizes temporal representations and positional representations. Paper 7 mitigates inefficiency encoding values by adjusting the number of encoding bits according to the resolution that is required.
Temporal processing applications have generally been developed in an ad hoc manner -- targeted at a specific application. Consequently, the development of more general design techniques is an important research direction. The recently proposed space-time algebra provides a mathematical underpinning for temporal processing. Paper 8 describes a systematic way of checking arbitrary functions for the space-time properties. Paper 9 provides a way tabular method for specifying general space-time functions and then minimizing their implementation via a Quine-McCluskey-like algorithm. Paper 10 proposes an alternative representation for space-time functions to provide the designer with an intuitive framework within which to reason about space-time functions.
James E. Smith John Paul Shen
9:00am - 9:30am
Opening Remarks -- "Your Brain is a Unary Computer"
Jim Smith, John Shen (Carnegie Mellon University)
9:30am - 10:30am
Keynote: "Unary Computing: The Stochastic Circuit Approach"
John P. Hayes (University of Michigan)
10:30am - 11:00am
1. Energy-Efficient Pulse-based Convolution Engine for Near-Sensor Processing (invited)
M. Hassan Najafi (University of Louisiana at Lafayette), S. Rasoul Faraji (University of Minnesota), Kia Bazargan (University of Minnesota) and David Lilja (University of Minnesota).
11:00am - 11:30am
11:30am - 12:00 noon
2. BitSAD: A Domain-Specific Language for Bitstream Processing (invited)
Kyle Daruwalla, Heng Zhuo and Mikko Lipasti, (University of Wisconsin-Madison).
12 noon - 12:30pm
3. Resource Efficient Navigation Using Bitstream Computing
Kyle Daruwalla and Mikko Lipasti, (University of Wisconsin-Madison).
12:30pm - 2:00pm
2:00pm - 2:30pm
4. Accelerating Unary Bit-Stream Processing Using Residue Numbers
Kamyar Givaki (University of Tehran), Reza Hojabr (University of Tehran), M.Hassan Najafi (University of Louisiana at Lafayette), Ahmad Khonsari (University of Tehran), Saeid Gorgin (Iranian Research Organization for Science and Technology) and Dara Rahmati (Institute for Research in Fundamental Sciences).
2:30pm - 3:00pm
5. Fuzzy-logic Processing using Unary Bit-Streams (invited)
Amir Hossein Jalilvand (Iran University of Science and Technology), M. Hassan Najafi (University of Louisiana at Lafayette) and Mahdi Fazeli (Iran University of Science and Technology).
3:00pm - 3:30pm
6. Temporal-Rate Encoding to Realize Unary Positional Representation in Spiking Neural Systems
Zhenduo Zhai and Ismail Akturk, (University of Missouri, Columbia).
3:30pm - 4:00pm
7. Context-Aware Bit-stream Generator for Deterministic Unary Processing
Sina Asadi and M. Hassan Najafi, (University of Louisiana at Lafayette).
4:00pm - 4:30pm
8. From Arbitrary Functions to Space-Time Implementations (invited)
Georgios Tzimpragos (UC Santa Barbara), Nestan Tsiskaridze (UC Santa Barbara), Kylie Huch (UC Santa Barbara), Advait Madhavan (NIST; Univ. of Maryland), and Timothy Sherwood (UC Santa Barbara).
4:30pm - 5:00pm
9. Delay Table Representation and Function Minimization in Space-Time Algebra (invited)
Ido Guy and Shlomo Weiss (Tel Aviv University).
5:00pm - 5:30pm
10. A Truth-Matrix view into Unary Computing
Advait Madhavan (NIST), Gerogios Tzimpragos (UC Santa Barbara), Mark Stiles(NIST) and Timothy Sherwood (UC Santa Barbara).
5:30pm - 5:40pm