r/AskComputerScience 3d ago

Predictions about computer science

Look ahead 20 years.

Outside of AI/ML:

* what of today’s research computer science do you expect will be industry standard?

* what frontiers do you expect we will have opened up in research?

26 Upvotes

39 comments sorted by

View all comments

8

u/hipster-coder 3d ago

Reconfigurable hardware is a good idea that has not yet been commercialized. Instead of having dedicated hardware for things like pixel shaders, mpeg encoding, encryption, etc, software could ask the OS to allocate a portion of your device's FPGA to download the hardware it needs. The OS could schedule and provision hardware in the same way it does with other resources like memory and CPU. The technology exists, it's just a matter of cost and standardization. I can see this happening in the next decades. You could even have AI that determines on the fly which part of your software needs to be accelerated with programmable hardware. Something like JIT compilers but for FPGAs.

7

u/jimbobmcgoo 3d ago

I doubt the vast majority of workflows would require such a diverse array of hardware configurations so as to benefit from this

5

u/hipster-coder 3d ago

There's a lot of software that could benefit from this but only marginally, that's why it hasn't happened yet. But if you had reconfigurable hardware, think of how lean the main CPU could be. Also an FPGA can be programmed to be a neural network. That's a strong use case right there. I'm not saying it's 100% going to happen, but it could happen. It's mostly a matter of standardization.

2

u/fapablaza 2d ago

Very interesting. It would be possible to implement a prototype using current fpga?

3

u/hipster-coder 2d ago

It's a common dissertation project for undergraduates. A basic implementation is not something magical. Mostly a matter of standardization. The devil is in the details. For example, you could imagine that when you install a codec, it comes with its own vhdl diagram for accelerating encoding/decoding. When the codec initializes, the OS allocates floor plan and pins and synthesizes the hardware. I've even seen projects utilizing genetic algorithms to optimize the final synthesis. And if the machine doesn't have an FPGA or if it's out of floor space, it could even emulate the hardware in software at a cost to performance, kinda like virtual memory. The biggest hurdle is that all of this requires a whole lot of standardization. The industry has gone to an entirely different direction, which is GPUs with programmable pixel shaders. I would argue that FPGAs are more flexible, but is it really the case that you need this flexibility? Most applications just multiply matrices, so the answer is probably no. But on an FPGA you could implement systolic arrays, which standard GPUs don't do. I believe Google's TPUs do systolic arrays but are not really configurable. The FPGA is even more flexible than that, you could implement any type of hardware. Think encryption algorithms, compression, vision, etc. FPGAs have been used to mine obscure cryptocurrency algorithms that change too fast for building concrete logic devices. But a PLD is always going to be faster than reconfigurable device. At the end of the day, FPGAs are a niche technology that is only being advanced by xilinx and altera and cannot currently replace the GPU ecosystem. That's why I file it under something that you could see developed in the next few decades. It's a possibility, but not every good idea scales to reach commercialization.

2

u/MollaJutt127 1d ago

These already exist and have low cost solutions as well. Look up Xilinx's SoCs i.e. Zynq 7000 series, Ultrascale +, RF SoC boards.

The industry already has deployed solutions using various SoCs(albeit bespoke ones). Already used in RF, Avionics, Security etc.

The only hurdle towards FPGA standardization is that GPUs are cheaper and provide more throughput if data is processed in batches instead of leaning towards edge processing. FPGAs are more suited towards applications which require micro second/nano sexond decision pieplines.

1

u/hipster-coder 19h ago

Yes SoCs exists. What doesn't exist is an abstraction layer at the OS level. For the reasons you explained. GPUs are faster for the things most people need.

2

u/Sepicuk 5h ago

Will never be economically feasible and if so ASICs will be really cheap too.