The Committee of the 2017 IEEE NEWCAS Conference will organize 3-hours tutorials on **Sunday, June 25, 2017**.

**Morning tutorials**

**T1 – CMOS circuits for low-power optical receivers**

** by Glenn Cowan (ECE, Concordia University – QC, Canada)**

Abstract

This tutorial will review the basics of optical communication for non-return-to-zero data before discussing traditional optical receiver designs. Limits and trade-offs for transimpedance gain and bandwidth will be covered. The growing range of equalizer-based receivers will be introduced including discrete-time equalizers, continuous-time linear equalizers and decision-feedback equalizers. Noise analysis in this context will be discussed.

Biography

**Glenn E. R. Cowan** received the B.A.Sc. degree from the University of Waterloo, Waterloo, ON, Canada in 1999, and the M.S. and Ph.D. degrees from Columbia University, New York, NY, in 2001 and 2005, respectively. During his graduate studies, he interned with Philips Research, Briarcliff Manor, NY. In 2005, he joined the Communications Technology Department at the IBM T. J. Watson Research Center, Yorktown Heights, NY. His research activities included CMOS circuits for high-speed communications, design for manufacturability, and circuits for the measurement of process variability.

In 2007, he joined the Department of Electrical and Computer Engineering at Concordia University in Montreal, QC, Canada, where he is an Associate Professor. At Columbia, Dr. Cowan was a 2003 recipient of Analog Device’s Outstanding Student Designer Award. He was the 2005 recipient of Columbia’s Eliahu I. Jury award for outstanding achievement by a graduate student in the areas of systems, communications, or signal processing. His current research activities include low-power mixed-signal circuits for wireless, wireline, and optical communication, as well as mixed-signal computation.

**T2 – Introduction to machine learning and (deep) neural networks**

** by Anne Jeannin-Girardon (ICube, University of Strasbourg – France)**

Abstract

Machine learning algorithms are used to give computers the ability to learn without being explicitly programmed. Applications range from self-driving cars, speech and text recognition, semantic web, etc. to data mining in general. This tutorial aims at providing an insight about machine learning techniques by covering different classes of problems and their dedicated solutions through supervised learning and unsupervised learning. In particular, a focus will be put on neural networks : we’ll discuss these architectures and associated algorithms and some applications cases in the form of a lab session. Discussions will also include a hardware consideration regarding the implementation of neural networks, in order to gain some understanding about the inherent constraints of such algorithms in terms of memory and computing power and how we can cope with these constraints using Graphics Processing Units (GPUs).

Biography

**Anne Jeannin-Girardon** received the PhD degree in computer science from the University of Western Brittany, Brest, France, in 2014 where she worked on the design of software architectures dedicated to the use of multi-core devices such as Graphics Processing Units for the modeling and the simulation of complex systems. In 2015, she joined the department of Applied Mathematics and Statistics of the State University of New York at Stony Brook as a postdoctoral associate. Her research interest included complex systems modeling as well as the conception of bio-informatics pipeline for high-throughput sequencing data analysis.

She joined the University of Strasbourg as an Associate Professor in 2016. She now specializes in the study of complex systems through the use of machine learning techniques. Her domains of applications range from the development of massively parallel computational ecosystems dedicated to deep learning, to health and educational ecosystems.

**Afternoon tutorials**

**T3 – One model to program them all: OpenCL for CPU, GPU and FPGA**

** by Franz Richter-Gottfried (Friedrich Alexander University, Erlangen-Nürnberg, Germany)**

Abstract

OpenCL promises a uniform programming model for different hardware. Drivers are available for CPUs, integrated and dedicated GPUs, and even FPGAs to execute the very same code on very different hardware, with the possibility to use target-specific optimization to exploit the architecture’s characteristics. Without having to write all new code, algorithmic peculiarities can be easily investigated and compared on different hardware, e.g., to chose the hardware which meets the requirements best.

OpenCL also allows different hardware to collaborate. Heterogeneous platforms, e.g., a CPU supported by a GPU, offers fast and efficient solutions to many problems. Using an FPGA instead of a GPU may even be more efficient because only resources needed on the chip are active, however designing problem specific hardware is challenging and time consuming. High level synthesis with OpenCL tries to ease this by deducing the synthesizable hardware from a description of the system’s

behavior.

The tutorial first explains the basic concept of OpenCL, the problem space and the abstract view on physical resources of CPUs, GPUs and FPGAs. Tasks like data transfer, synchronization or design optimization are conveyed with comprehensible examples, leveraging unique features of the architectures.

Biography

**Franz Richter-Gottfried** received his diploma (M.Sc.) with distinction in Computer Science from the Friedrich-Alexander-University Erlangen-Nürnberg (FAU), Germany, in 2011. Since then, he works at the Chair for Computer Architecture, FAU. His research is focused on high level FPGA design for embedded and high-performance computing. His publications deal with OpenCL in general [1] as well as using OpenCL for FPGA design [2]. His teaching experience includes classes in basic computer architecture for undergraduate students and workshops on performance engeneering [3] and OpenCL.

[1] Richter-Gottfried Franz, Kreutzer Patrick, Ditter Alexander, Schneider Max, Fey Dietmar, “C++ Classes and Templates for OpenCL Kernels with PATOS”, Proceedings of the 4th International Workshop on OpenCL (IWOCL ’16, Vienna, Austria), New York, NY, USA: ACM, 2016. – ISBN 978-1-4503-4338-1

[2] Richter-Gottfried Franz, Fey Dietmar, “Cellular Neural Networks for FPGAs with OpenCL”, CNNA 2016; 15th International Workshop on Cellular Nanoscale Networks and their Applications, 23-25 Aug. 2016

[3] Hofmann Johannes, Richter-Gottfried Franz, “Performance-Engineering-Techniken für moderne Multi- und Manycore-Systeme. Talk: Softwarekonferenz für Parallel Programming, Concurrency und Multicore-Systeme, d.punkt Verlag, Heidelberg, 8.4.2016

**T4 – Design Automation for Quantum Computing**

** by Mathias Soeken, (Ecole Polytechnique Fédérale de Lausanne, Lausanne, Switzerland)**

Abstract

Quantum computing is getting real. Last year, researchers have fabricated quantum computers that implement well-known quantum algorithms reliably [6] or perform practical applications such as high-energy physics simulation [10] and electronic structure computation [13]. Since all such examples involve circuits of very limited depth, hand designed circuits suffice. This year is predicted to be the year in which quantum computing moves from pure science towards engineering [4], mainly due to the advances in fabricating universal quantum computers [7] in the labs of Google [2, 9] and Microsoft [12]. Since as a result quantum computers scale up, design automation is necessary in order to fully leverage the power of this emerging computational model.

In order to be prepared for a broader availability of quantum computers, researchers from academia and industry are developing software chains in order to program quantum computers (see, e.g., Microsoft LIQUiji and Quipper [8]). These programs take as input a quantum algorithm, written as a software program, and translate it into quantum gate networks. Fundamental differences between quantum and classical computing pose serious design challenges. One is that the basic fault-tolerant gate sets do not include a universal set of classical gates as fundamental instructions. Instead, one can implement a universal set of reversible gates by applying a so-called T gate to the underlying quantum bits (or qubits, or lines). This gate is sufficiently expensive [1] that it is customary to neglect all other gates when costing a quantum algorithm. Decomposing the reversible logic that arises in such algorithms into quantum gate networks that minimize T gates and qubits is therefore a central challenge in quantum computing.

This tutorial will give an introduction into the whole design flow and demonstrates how a Verilog gate level design can be translated into quantum gate network. During this demonstration several algorithms from classical and reversible logic synthesis are explained (including algorithms proposed in [11, 5, 14, 16, 17]). The tutorial will only use algorithms for which open source implementations are available (e.g., RevKit [15] and ABC [3]), and show their usages during the talk. This allows the participants to repeat the design flow on their own computers with their own designs. After the tutorial, the participants will have a good understanding of today’s design flow for the technology-independent part to implement quantum algorithms as well as a good overview of existing algorithms and tools. The tutorial will close with open questions and next challenges in the eld.

**References**

[1] M. Amy, D. Maslov, M. Mosca, and M. Roetteler. A meet-in-the-middle algorithm for fast synthesis of depth-optimal quantum circuits. IEEE Trans. on CAD of Integrated Circuits and

Systems, 32(6):818{830, 2013.

[2] R. Barends et al. Digitized adiabatic quantum computing with a superconducting circuit. Nature, 534(7606):222{226, 2016.

[3] R. K. Brayton and A. Mishchenko. ABC: an academic industrial-strength verication tool. In Computer Aided Verication, pages 24{40, 2010.

[4] D. Castelvecchi. Quantum computers ready to leap out of the lab in 2017. Nature, 541(7635):9{10, 2017.

[5] A. De Vos and Y. Van Rentergem. Young subgroups for reversible computers. Advances in Mathematics of Communications, 2(2):183{200, 2008.

[6] S. Debnath, N. M. Linke, C. Figgatt, K. A. Landsman, K. Wright, and C. Monroe. Demonstration of a small programmable quantum computer with atomic qubits. Nature, 536:63{66, 2016.

[7] E. Gibney. Physics: Quantum computer quest. Nature, 516(7529):24{26, 2014.

[8] A. S. Green, P. L. Lumsdaine, N. J. Ross, P. Selinger, and B. Valiron. Quipper: a scalable quantum programming language. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 333{342, 2013.

[9] J. Kelly et al. State preservation by repetitive error detection in a superconducting quantum circuit. Nature, 519(7541):66{69, 2015.

[10] E. A. Martinez, C. A. Muschik, P. Schindler, D. Nigg, A. Erhard, M. Heyl, P. Hauke, M. Dalmonte, T. Monz, P. Zoller, and R. Blatt. Real-time dynamics of lattice gauge theories with a few-qubit quantum computer. Nature, 534:516{519, 2016.

[11] D. M. Miller, D. Maslov, and G. W. Dueck. A transformation based algorithm for reversible logic synthesis. In Design Automation Conference, pages 318{323, 2003.

[12] V. Mourik, K. Zuo, S. M. Frolov, S. R. Plissard, E. P. A. M. Bakkers, and L. P. Kouwenhoven. Signatures of Majorana fermions in hybrid superconductor-semiconductor nanowire devices. Science, 336(6084):1003{1007, 2012.

[13] P. J. J. O’Malley et al. Scalable quantum simulation of molecular energies. Physical Review X, 6:031007, 2016.

[14] M. Soeken, G. W. Dueck, and D. M. Miller. A fast symbolic transformation based algorithm for reversible logic synthesis. In Int’l Conf. on Reversible Computation, pages 307{321, 2016.

[15] M. Soeken, S. Frehse, R. Wille, and R. Drechsler. RevKit: A toolkit for reversible circuit design. Multiple-Valued Logic and Soft Computing, 18(1):55{65, 2012.

[16] M. Soeken, M. Roetteler, N. Wiebe, and G. De Micheli. Design automation and design space exploration for quantum computers. In Design, Automation and Test in Europe, 2017.

[17] M. Soeken, R. Wille, O. Keszocze, D. M. Miller, and R. Drechsler. Embedding of large Boolean functions for reversible logic. ACM Journal on Emerging Technologies in Computing Systems, 12(4):41:1{41:26, 2016.

Biography

**Mathias Soeken** works as a researcher at the Integrated Systems Laboratory at EPFL, Lausanne, Switzerland in the group of Giovanni De Micheli. From 2009 to 2015 he worked at the University of Bremen, Germany in the group of Rolf Drechsler. Since 2014, he is a regularly visiting post doc at UC Berkeley, CA, USA in the group of Robert K. Brayton. He holds a Ph.D. degree (Dr.-Ing.) in Computer Science from University of Bremen, Germany (2013). His research interests are logic synthesis, reverse engineering, formal verication, and quantum computing. He is involved in active collaborations with the quantum architectures and computation group at Microsoft Research. He is maintaining the logic synthesis frameworks CirKit and RevKit. Dr. Soeken received a scholarship from the German Academic Scholarship Foundation, Germany’s oldest and largest organisation that sponsors outstanding students in the Federal Republic of Germany. He has been serving as TPC member for several conferences, including DAC’17 and ICCAD’17 and is reviewer for Mathematical Reviews as well as for serveral journals.