This book describes how we can design and make efficient processors for high-performance computing, AI, and data science. Although there are many textbooks on the design of processors we do not have a widely accepted definition of the efficiency of a general-purpose computer architecture. Without a definition of the efficiency, it is difficult to make scientific approach to the processor design. In this book, a clear definition of efficiency is given and thus a scientific approach for processor design is made possible.
In chapter 2, the history of the development of high-performance processor is overviewed, to discuss what quantity we can use to measure the efficiency of these processors. The proposed quantity is the ratio between the minimum possible energy consumption and the actual energy consumption for a given application using a given semiconductor technology. In chapter 3, whether or not this quantity can be used in practice is discussed, for many real-world applications.
In chapter 4, general-purpose processors in the past and present are discussed from this viewpoint. In chapter 5, how we can actually design processors with near-optimal efficiencies is described, and in chapter 6 how we can program such processors. This book gives a new way to look at the field of the design of high-performance processors.
This book describes how we can design and make efficient processors for high-performance computing, AI, and data science. Although there are many textbooks on the design of processors we do not have a widely accepted definition of the efficiency of a general-purpose computer architecture. Without a definition of the efficiency, it is difficult to make scientific approach to the processor design. In this book, a clear definition of efficiency is given and thus a scientific approach for processor design is made possible.
In chapter 2, the history of the development of high-performance processor is overviewed, to discuss what quantity we can use to measure the efficiency of these processors. The proposed quantity is the ratio between the minimum possible energy consumption and the actual energy consumption for a given application using a given semiconductor technology. In chapter 3, whether or not this quantity can be used in practice is discussed, for many real-world applications.
In chapter 4, general-purpose processors in the past and present are discussed from this viewpoint. In chapter 5, how we can actually design processors with near-optimal efficiencies is described, and in chapter 6 how we can program such processors. This book gives a new way to look at the field of the design of high-performance processors.
This book gives a new view on how the processors for HPC, AI and Data Science should be designed. Traditional approaches are, even when called "quantitative", evolutionary, in the sense that the starting point is the existing software optimized to existing processors. In this book, first the applications are classified into several categories, so that their requirements can be summarized. Then the concept of the efficiency is introduced as the guiding principle for the processor design The efficiency is simply defined as the fraction of electricity (and also silicon die area) used in the combinatorial logics for arithmetic operations. In many of modern processors, efficiencies in this sense are surprisingly low, implying that there is huge room of improvements. Also, writing application software for these modern processors has become very difficult In this book, examples of designs with very high efficiency are presented, with the overview on how the application software can be developed, based on the author's experience on the development of SIMD parallel processors
Junichiro Makino
Computer Architecture Accelerator Heterogeneous Multicore Processors High-Performance Computing Parallel Computing Machine Learning Deep Neural Networks Energy Efficiency Finite Difference Method Particle-Based Method