DaDianNao: A Neural Network Supercomputer

Many companies are deploying services largely based on machine-learning algorithms for sophisticated processing of large amounts of data, either for consumers or industry. The state-of-the-art and most popular such machine-learning algorithms are Convolutional and Deep Neural Networks (CNNs and DNNs), which are known to be computationally and memory intensive. A number of neural network accelerators have been recently proposed which can offer high computational capacity/area ratio, but which remain hampered by memory accesses. However, unlike the memory wall faced by processors on general-purpose workloads, the CNNs and DNNs memory footprint, while large, is not beyond the capability of the on-chip storage of a multi-chip system. This property, combined with the CNN/DNN algorithmic characteristics, can lead to high internal bandwidth and low external communications, which can in turn enable high-degree parallelism at a reasonable area cost. In this article, we introduce a custom multi-chip machine-learning architecture along those lines, and evaluate performance by integrating electrical and optical inter-chip interconnects separately. We show that, on a subset of the largest known neural network layers, it is possible to achieve a speedup of 656.63× over a GPU, and reduce the energy by 184.05× on average for a 64-chip system. We implement the node down to the place and route at 28 nm, containing a combination of custom storage and computational units, with electrical inter-chip interconnects.

 

 IEEE Transactions on Computers ( Volume: 66 , Issue: 1 , Jan. 1 2017 )

Browser Internet e fatti vostri

Vi sarete chiesti perchè quando entrate nell’area autenticata personale del sito che vi fornisce servizi, (self publishing, blog, etc…), vi compaiono pubblicità strettamente legate ad affari vostri presso altri siti che non hanno nulla a che fare con il sito su cui state operando…

Tutto questo, dipende dal browser che utilizzate, il browser (non tutti), memorizza tutte le vostre attività ed in ‘accordo’ con i fornitori di servizi publicitari ‘a pagamento’, personalizza la pubblicità che vi arriva su di un sito che apparentemente non c’entra niente.

Questo comportamento, erroneamente ritenuto intelligente, a qualcuno fa piacere, ma a qualcun altro da estremamente fastidio. Non illudetevi che semplicemente modificando le impostazioni sulla privacy, questo problema possa essere risolto…

Questo fenomeno, noto come Ingegneria Sociale, può essere arginato adottando un browser opportuno, come Opera, per citarne uno a caso.

Buona Navigazione!

A Role for IEEE in Quantum Computing

Erik P. DeBenedictis, Sandia National Laboratories

 

Will quantum computation become an
important milestone in human progress?
Passionate advocates and equally passionate
skeptics abound. IEEE already provides useful,
neutral forums for state-of-the-art science
and engineering knowledge as well as practical
benchmarks for quantum computation
evaluation. But could the organization do more?

 

COMPUTER      PUB L ISHED B Y THE I EEE COMPUTER SOCI E T Y

Taking the Human Out of the Loop: A Review of Bayesian Optimization

The paper introduces the reader to Bayesian optimization, highlighting its methodical aspects and showcasing its applications.

By Bobak Shahriari, Kevin Swersky, Ziyu Wang, Ryan P. Adams, and Nando de Freitas

 

ABSTRACT | Big Data applications are typically associated with
systems involving large numbers of users, massive complex
software systems, and large-scale heterogeneous computing
and storage architectures. The construction of such systems
involves many distributed design choices. The end products
(e.g., recommendation systems, medical analysis tools, realtime
game engines, speech recognizers) thus involve many
tunable configuration parameters. These parameters are
often specified and hard-coded into the software by various
developers or teams. If optimized jointly, these parameters
can result in significant improvements. Bayesian optimization
is a powerful tool for the joint optimization of design choices
that is gaining great popularity in recent years. It promises
greater automation so as to increase both product quality and
human productivity. This review paper introduces Bayesian
optimization, highlights some of its methodological aspects,
and showcases a wide range of applications.

KEYWORDS | Decision making; design of experiments; optimization;
response surface methodology; statistical learning

 

Proceedings of the IEEE | Vol. 104, No. 1, January 2016

Quantum Computers

About quantum computers

Quantum computers will use two fundamental properties of the quantum world: superposition and entanglement.
So, what is superposition? Qubits can be in the “|0⟩” state (called a zero-ket), the “|1⟩” state (called the one-ket), or a linear combination of the two (superposition). The half-angle bracket notation |⟩ is conventionally used to indicate qubits, as opposed to ordinary bits. When you measure the |0⟩ quantum state, you get a classical 0, and when you measure the |1⟩ quantum state, you get a classical 1. The |0⟩ state is sometimes called the ground state because in many physical implementations of quantum computing, including mine, it is the lowest energy state.

What’s a QBit ?

A qubit is a quantum system consisting of two energy levels, labeled |0⟩ and |1⟩. The |0⟩ state is often called the ground state because it is the lower of the two energies. Together, |0⟩ and |1⟩ make up what we call “standard basis vectors”. Like all vectors, they point in a direction and have a magnitude. Defining basis vectors is a really useful trick we have borrowed from linear algebra. The basic idea is that once you have defined these vectors, you can construct any other vector from a linear combination of the basis vectors.
Additionally, qubits also have a “phase”, which results from the fact that superpositions can be complex. To represent these superpositions, we put a coefficient such as a or b in front of the state like so: a|0⟩+b|1⟩. Here’s what the formula is saying: “The state is made up of a linear combination of |0⟩ and |1⟩, where the proportion of each depends on the coefficients a and b.” The coefficients a and b could be positive, negative, or even complex. If we take the absolute value of a or b and square it (e.g. |a|2‘or:math:‘|b|2 ), we get the probability of measuring the 0 or 1 outcome, respectively.
The basis states |0⟩ and |1⟩ and their linear combinations a|0⟩ + b|1⟩ describe the state of a single qubit. But because the coefficients a and b are not just real numbers, but can be imaginary or even complex, visualizing a qubit requires a special tool called the Bloch Sphere. The Bloch Sphere is a sphere with a radius of one and a point on its surface represents the state of a qubit. Like a globe uses longitude and latitude to describe points on the surface, the Bloch sphere can also use angles to describe the state of a qubit. This representation allows any qubit state, including those with complex coefficients, to be represented as a point on the surface of the Bloch sphere. Points on the surface of the Bloch sphere which lie along the X, Y, or Z axis correspond to special states as described below.

Ottimizzazione

I problemi di ottimizzazione richiedono necessariamente la creazione di algoritmi efficienti in quanto, generalmente, un problema di ottimizzazione possiede uno spazio delle possibili soluzioni di cardinalità esponenziale, quindi anche possedendo il più potente dei computer non potremmo permetterci di enumerare tutte le possibili soluzioni e scegliere la migliore. A titolo di esempio supponiamo di avere n variabili x(i), i=1,…,n; che possono assumere d(i) valori diversi 0,1,2,…,d(i)-1; in questo caso avremo che il numero di soluzioni ammissibili per il problema sarebbe dato da: ns=d(1)*d(2)*…*d(n). Considerando n=20 e d(i)=4 per ogni i, si otterrebbe ns=4^20, cioè circa 10^12! (il simbolo ^ sta per elevamento a potenza; 10^12=1,000,000,000,000, cioè un milione di milioni). Di conseguenza un algoritmo enumerativo richiederebbe un tempo di esecuzione proporzionale a 10^12 con soli 20 elementi.

L’ottimizzazione può essere suddivisa in due grandi categorie: dinamica e statica. Nell’ottimizzazione dinamica i vincoli e le variabili che esprimono il modello del problema possono variare nel tempo. Nella ottimizzazione statica vincoli e variabili sono costanti. A sua volta l’ottimizzazione statica si divide in continua e discreta in funzione del fatto che le variabili possano assumere valori contini o discreti. Nell’ambito della programmazione continua distinguiamo tra programmazione lineare, se funzione obiettivo e vincoli sono lineari, e programmazione non lineare altrimenti.

Un lettore non addetto potrebbe domandarsi come sia possibile trovare la soluzione ottima senza verificare una per una tutte le soluzioni disponibili. Questo può avvenire grazie a meccanismi di classificazione; il dominio delle soluzioni viene organizzato secondo una struttura che le ordina in funzione di determinate caratteristiche, quindi è possibile scartare a priori alcuni sottoinsiemi del dominio delle soluzioni senza esaminarle essendo sicuri del fatto che queste non potranno fornire soluzioni migliori di un determinato obiettivo. È un po’ come entrare in una biblioteca e cercare un libro; il libri sono organizzati per argomento e per titolo alfabeticamente, quindi non sarà necessario esplorare tutti i libri della biblioteca per trovare quello che cerchiamo ma solo un sottoinsieme. Questo è il meccanismo di funzionamento degli algoritmi e delle metodologie di risoluzione dei problemi di ottimizzazione tra cui ricordiamo il metodo del simplesso e la tecnica del branch and bound.