I use this blog as a soap box to preach (ahem... to talk :-) about subjects that interest me.

Sunday, July 25, 2010

Machines that can think

Only a few decades ago computers filled up entire rooms and only accepted inputs via switches on their front panels or punched cards. The continuing increase in processing power and decrease in size has made possible to fit computers into smaller and smaller packages. In two decades we have gone from the size of a small suitcase to something comparable in size with a pack of cigarettes.

Computers are devices consisting of many electronic switches packed into integrated circuits. As the simplest electronic switch is the transistor, it makes sense to measure computing power in terms of transistors per integrated circuit. The more transistors we manage to pack into chips, the more powerful and small our computers become.

In 1965 Gordon Moore, a co-founder of Intel, estimated that chip density was doubling every year. Figure 1(1), based on more than three decades of data, shows that the doubling actually occurs every 24 months or so. Although lower than the original estimate, such a rate of increase still means an explosion of computing power.

Figure 1: Moore’s Law

But computing power is a very generic term. The speed at which computers can perform calculations is not just related to the number of transistors you manage to squeeze into their microprocessors, but also to how quickly you operate them. That's why the MHz (Megahertz = 1 million cycles per second) and GHz (Gigaherz = 1 billion cycles/s) of clocking frequencies advertised by the computer manufacturers are important in determining how fast your programs will execute.

Today's programs require a lot of memory to run. If the computers don't have enough of it, they are forced to juggle data in such a way that their performance significantly drops. As memory chips, like all integrated circuits, follow Moore’s law, larger amounts of memory packaged more tightly and running faster have become available. This has further increased the efficiency of computers.

To top it off, it turns out that Moore’s two-year doubling also applies to computer clocking. That’s why the power of modern computers increases at the neck-breaking rate we observe today.

Ray Kurzweil, in his book The Singularity is Near, looks at the evolution through time of the number of calculations per second you can buy for 1,000 US dollars. This indicator of computing power is more useful than a straight count of transistors in a chip. It measures what computers can do at a certain cost, rather than how complex they are. Kurzweil’s study includes forty-nine systems spanning in time the whole twentieth century. The results (see Figure 2(2)) show continuity across all technologies used to construct computational machines.

At least three independent factors contribute to the trend displayed in Kurzweil’s plot. Firstly, the number of calculations per second increases as new architectures take advantage of the increasing number of transistors available in individual computer chips. Secondly, calculations quicken as clock speeds of computers increase according to their own Moore’s law. Thirdly, more efficient manufacturing processes and larger production batches reduce prices.

Figure 2: Price-Performance of Computing in the 20th Century

Notice that the plot shown in Figure 2 curves up. This means that the time necessary to double the number of computations per second per $1 000 has itself shrunk over the decades. It was two years at the beginning of the century but decreased to a single year towards its end. That is, the same amount of money will buy you in one year a computer twice as powerful as the computer you could buy now.

In 2007 Intel introduced a family of microprocessors with a transistor size of 45 nm (1 nm = one billionth of a metre, or one millionth of a millimetre), corresponding to a few hundred atoms(3). In the same year Intel also announced a further reduction of transistor size to 32 nm planned for production in 2009(4). The photolithographic techniques used to produce computer chips by engraving increasingly small patterns on silicon wafers are probably close to reaching their physical limits. Therefore, it is not clear for how long the chip manufacturers will be able to shrink the transistor size.
But there are techniques to pack more transistors into a single processor. In 2007 IBM announced a chip-stacking technology that makes possible to build three-dimensional chips, as opposed to the current flat layouts(5). This will increase the number of transistors packed into a processor and reduce the distance between parts of the chip, thereby increasing internal communication speed.

Another way of increasing processing power is to do calculations in parallel. The most powerful PCs on the market at the time of writing have quad-core microprocessors. This means that a single microprocessor contains in fact four processing units sharing the load. But molecular and quantum computers will be able to execute trillions of operations simultaneously. That will sustain the exponential growth of computing power for decades to come.

A molecular computer stores and processes data using DNA fragments or other organic molecules. DNA (deoxyribonucleic acid) is the molecule that encodes the genetic instructions of living organisms, including ourselves. It consists of two chains of basic components(6) linked in pairs. A molecular computer exploits the fact that a sequence of base pairs can encode any information, exactly like a sequence of zeroes and ones in a digital computer.

To solve a problem with a DNA computer, you encode your input data in DNA fragments and let them join with each other. You then apply one or more enzymes which represent the constraints of the problem you are trying to solve. These enzymes destroy some sequences and leave other sequences unchanged. If you choose the correct enzymes, the sequences left at the end of the process represent the solution — or solutions — of the problem. This might sound tricky, but the potential is enormous, because all possible solutions form simultaneously. This is the essence of parallelism. Also consider that the base pairs have a size of 0.33 nm, one hundred and fifty times smaller than the transistors packed in today’s most advanced microprocessors. This means that DNA computers are much more densely packed than computers based on silicon.

This technique is still in its infancy, but it is reasonable to expect that in a few years the complexity of the process will be hidden inside bio-chips. Already in October 2006, researchers from Columbia University Medical Center and the University of New Mexico built a DNA-based integrated circuit with one hundred logic elements(7).

Quantum computers will achieve a level of parallelism even higher than that of molecular computing. While digital computers operate with bits, which can only assume the values 0 and 1, quantum computers operate with quantum bits — called for brevity qubits — which can have simultaneously the values 0 and 1.

To explain it rigorously, I would have to introduce quantum mechanics, but that would be outside the scope of this book. I will instead give you an idea of how that is possible by using a simple example.
Consider a spinning top. You could associate 0 to a clockwise spin and 1 to a counterclockwise spin. If you look at the top, you are able to see whether the spin is 0 or 1. The fact that you look at the top doesn’t change its spinning status. You see 0 if the spin is 0 and 1 if the spin is 1. You could use a bit in the memory of a digital computer to record the spin status of the top.

The situation is completely different at the atomic and subatomic level, where quantum mechanics applies. Electrons have a property called spin, which can only have the values ½ and -½. If you don’t observe the electron, its spin is undefined. This is different from the case of the top, where the spin was defined regardless of whether you looked at it or not. By observing the spin of an electron, you force it to be either ½ or -½. In other words, the act of observing the electron changes its spin to a defined value. You can use the spin status of an electron as a qubit of a quantum computer, with 0 corresponding to a spin of ½ and 1 to a spin of -½.

The big advantage of quantum computing is that you can simultaneously represent several data values with a single set of qubits. This is possible because each qubit can hold an undefined value. But the same property of qubits also causes problems. First of all, it is difficult to handle qubits because they only hold their undefined state if you don’t observe them. Secondly, the results obtained from a quantum computer are probabilistic. In other words, if you repeat the same calculation you can get different results, each with its frequency of occurrence.

The researchers are making progress in setting up qubits and finding ways of using them. For example, the company D-Wave introduced in February 2007 a 16-qubit quantum computer based on superconductors. Towards the end of the same year, they then demonstrated a 28-qubit quantum computer(8) and announced their plan to reach 1024 qubits by the end of 2008.

It will take several years before molecular and quantum computers will become commonplace, but it will happen. Computers will certainly overtake the processing capacity of the human brain during our lifetime.

Hans Moravec, research professor at the Robotic Institute of Carnegie Mellon University, estimates that computer hardware will match the human brain in 2020(9). Kurzweil, in the already cited book, calculates that a computer performing ten million billion calculations per second — a one followed by sixteen zeroes, or 1016 — would be capable of simulating a human brain.

Well, on May 25th, 2008, IBM's Roadrunner supercomputer became the first computer in the world performing more than one million billion calculations per second. It took four years to build and two more years to make it fully operational. The National Nuclear Security Administration of the U.S. Department of Energy operates the Roadrunner at the Los Alamos National Laboratory, in New Mexico. They use it to simulate complex technical, scientific, and financial events and phenomena, like the aging of nuclear materials.

It will only take another handful of years before a supercomputer ten times as powerful as Roadrunner will come into existence. It will happen. And within the next decade some American institution will use it to emulate the functions of a human brain. Can we say that such a machine will think? My answer is a definite yes.

Alan Turing, in his article Computing Machinery and Intelligence of 1950(10), proposed a way for deciding whether a machine is capable of thinking. His proposal is known today as the Turing test and goes as follows. We ask as many questions as we like both to the machine being tested and to a person. As a result, we receive two sets of written answers, one from the machine and one from the person. If we cannot decide which set was provided by the machine, we should conclude that the machine is a thinking artificial being.

We should only pose questions that a human being could reasonably answer. If we asked to perform very complex mathematical calculation, the person would not be able to provide correct answers in a reasonable amount of time. It would then be easy to identify the machine. Unless, that is, the machine were aware of our limitations and provided wrong answers in order to appear human.

From now on, I will use the term AI (Artificial Intelligence) to indicate a machine capable of passing the Turing test. It seems only fair. I predict that the first AI will become operational around 2015, at a price of a few million dollars(11). Then, in another decade or so, you will be able to buy an AI from Dell for a few thousand dollars.

To be honest, I have to tell you that Kurzweil is one the most optimistic researchers. Almost everybody else believes that computers will need to perform ten to one hundred times more operations per second — one hundred million billion to one billion billion, or 1017 to 1018 — before being able to simulate a human brain. Nevertheless, with computing power growing exponentially, this would only add a delay of some years, not decades or centuries.

(1) Freely licensed by Wikimedia Commons as
(2) Freely licensed by Wikimedia Commons as http://en.wikipedia.org/wiki/Image:PPTMooresLawai.jpg
(3) Atoms have diameters of one to three tenths of a nanometre.
(4) See: http://www.intel.com/pressroom/archive/releases/20070918corp_a.htm
(5) http://www-03.ibm.com/press/us/en/pressrelease/21350.wss
(6) Adenine (A), Thymine (T), Guanine (G), and Cytosine (C).
(7) http://www.medgadget.com/archives/2006/10/computer_with_d.html
(8) http://www.dwavesys.com/index.php?mact=News,cntnt01,detail&cntnt01articleid=9
(9) When will computer hardware match the human brain?, Journal of Evolution and Technology, 1998, Vol. 1, http://www.transhumanist.com/volume1/moravec.htm
(10) In the journal Mind, Vol. 59, No. 236, October 1950. Available online at
(11) In August 2007, IBM announced that it would sell a supercomputer capable of 1015 cps for less than one hundred million dollars (see http://www.pcworld.com/article/135334/ibm_drops_price_on_supercomputer.html). In 2015, eight years later, a machine ten times as powerful will cost less than 4 million dollars (calculated as 100 x 10 / 28).


  1. My latest graphic card can process up to 10**12 floating point operation per second using CUDA, well above the output of Intel CPU. Next year I hope to upgrade to 10**13 FLOPS...
    On the other hand, I would say computing a single synapse may ask up to 10**6 FLOPS. It must be done 10**3 time per second, one pyramidal neuron has up to 10**4 synapse, yet it has at least 10x more dendritic spine (what is costly to simulate in a synapse.
    So, a single neuron can ask for up to 10**14 FLOPS. My "personal supercomputer" would have 1% of that power. Think about 10**10 neurons in a brain... Brain simulation would request 10**24 FLOPS, twelve power of ten from the current technology. This is forty doubling or 60 - 80 years.

    Well, may be you could design a far faster processing system...?

    Yvan Bozzonetti

  2. Kurzweil probably is a bit optimistic.
    Still, the currently most powerful supercomputers have passed the 10**15 FLOPS mark. With your estimate of 10**24 FLOPS, we would need an increase of a factor of 10**9. During the last ten years the speed of the fastest supercomputer has increased by a factor of 1000, or 10**3. If that rate were sustained, we would only need to wait for 30 years, rather than 60-80...
    Further, you apply the upper limit of neuron connectivity to all neurons. Also, we could perhaps get away with fewer and less connected neurons running at a lower speed. That said, I realise that by halving some counts we don't gain many orders of magnitude...
    In any case, as I am now sixty years old, I haven't given up on the hope of real AI happening during my lifetime. Uploading consciousness might just remain too far in the future for me, though.

  3. What take as the today computing power? Well, my choice is to stay with what is in the mass market (general purpose graphical processing units: nVIDIA using CUDA and AMD-ATI Radeon using OpenCL). I have not taken in account supercomputer built as a single unit for the exclusive use of government agencies.
    One way to wait beyond the normal lifespan is using cryonics (Cryonics Institute, Alcor in the US, Cryoruss in Russia).
    Another solution is to stay in the living cohort: Start with B vitamins and RNA from Vegemite for example, there are other tricks of the same kind, each can keep you above Earth for some years.

    Yvan Bozzonetti

  4. I agree with you that Moore's law normally refers to commercially available chips. But I believe that to estimate when a brain emulation would be first possible, we should look at the most powerful systems.

    Hey, now I remember why your name sounded familiar! Sorry I didn't realised it before! It must really be that my short/medium-term memory is failing...

    We talked about Kyle 7 just a few months ago. I am happy to see that you discovered my blog.

    Let other people know that I exist! :-)

  5. I have followed your advice abiout object oriented programming: I have moved from C to C++ and into Python. I am now on CUDA C.

    Not interested in Kyle 001?
    I suggested a GRAPPA MRI with high definition. Not a too big project. Present day scanner can do it yet they have not the computing power to do that, a distributed system could fit the bill.

  6. Are you looking for collaborators? :-)

  7. Collaborators, no, may be associates to push in a given direction.
    I think something can be done right now on these subjects.

  8. YB has been working on this for a while. If he provided more information on his plans and if Montecristo told him/us what his experience is, a collaboration/association would perhaps become possible.

    Montecristo, if you were interested in exploring this possibility, you might like to send me an email directly to giulio@giuliozambon.org and I could forward it to YB, of whom I already have the email address. Then, you/we could discuss the matter offline.

    Incidentally, Montecristo and YB, you might find out that you are neighbours in the real world!