July 26, 2022

Thought on the Future of Computers

I am going to make a prediction about the future of computing, not in a distant future but more likely what might be in a few decades. It's also not a particularly creative prediction, because the process that might eventually lead to it has already started. Yet it's interesting to imagine, so here it is:

Nowadays, the core of a computer is the CPU, the unit which runs the programs that you execute, performs arithmetic operations, memory access etc. I envision the future of processing to be separated into 4 distinct units, perhaps bundled into a single chip, perhaps each being provided by a specific cards. Ideally, these units could be accessed and operated within a single instruction set, allowing programmers to combine them in complex and efficient programs. The units would be:

  • The logic unit (LU). This is more or less just an evolution of the CPU, just as minimal to run basic programs as it is today. Its purpose is to offer implementations of arithmetic and logic operations, with predictable and consistent results. The parts of this "unit" nowadays are the ALU (arithmetic logic unit) and the FPU (floating-point unit), which I imagine will be more integrated into the CPU in the future. The support for vectorization is also going to increase, and full support for other "datatypes" like strings might be added.
  • The analog unit (AU). In contrast to the LU, the results of this unit are unpredictable and inconsistent, but highly efficient at the same time. With analog operations, one could perform complex arithmetic tasks like matrix multiplication, solving equations, or evaluation of complex functions which would otherwise take lots of operations and CPU cycles. By chaining basic operations, one could build a "program" operating on currents and voltages, and let the universe itself execute it. While the results may be imprecise, it doesn't matter at all in some applications like video playback, and the results could still be made more precise through the LU, the result of the AU serving as an initial imprecise but sufficiently accurate guess.
  • The highly-parallelized unit (HPU). This is an evolution of the GPU, able to perform operations on large-scale data, organized in a discrete vector space. It is suitable for the same tasks as today, like graphics processing or AI, thanks to its ability to run a single program in parallel (such as a texture mapping function, or a single layer in a neural network) over an immense number of spatially-connected inputs.
  • The quantum unit (QU). The future of quantum computing is not going to replace every computer with a qubit-based one, but once it becomes feasible, quantum units would provide everything needed to solve problems in ways that are simply impossible with traditional algorithms. The qubit exists in a superposition of 0 and 1, the values of a traditional bit, manipulated using quantum extensions of standard logic operations, and even some quantum-specific operations. A computer performing such operations would in a way be present in multiple, possibly infinite, different states simultaneously. We can then let the desired state interfere with the whole computation, allowing us to extract it at the point of measurement. Algorithms taking advantage of this fact have uses in cryptography, such as Shor's algorithm for factoring large integers (and breaking some cyphers as a result), but some general computing problems could be "miraculously" solved using quantum computing as well, such as Grover's algorithm being able to perform search on a collection that is proportional in its speed to the square root of the size of the collection (instead of simply linearly proportional to the size as one would expect), theoretically also possible to improve further to the cube root.

These are the possibilities that I think would be most likely, but there are other possibilities. Other units could be envisioned, for example a neural unit better suitable for modelling neural networks (but I think this can be spread over HPU and AU), or a hypercomputational unit which would, theoretically, be able to solve uncomputable problems, but at the moment this is more of a fantasy than a possibility, as we lack the knowledge of physical process should would enable us to build such a unit (unlike quantum computing).

No comments:

Post a Comment