Inevitability of FPGA penetration into data centers

image

You don’t need to be a chip developer to program for FPGA, you don’t need to be a C ++ programmer to write Java code. However, in both cases, probably, it will not be superfluous.

The goal of commercializing both technologies, Java and FPGA, is to refute the latest statement. The good news for FPGAs is that with the use of suitable levels of abstraction and toolkit in the last 35 years, since the invention of the programmable logic device, creating algorithms and data streams for FPGAs instead of CPUs, DSPs, GPUs or any other form of special ASIC easier.

The amazing timeliness of their creation is manifested in the fact that just when the CPU could no longer remain the only computing module of data centers to perform many tasks - for various reasons - FPGAs achieved their effectiveness by offering speed, low latency, network capabilities and memory - heterogeneous Computing capabilities of modern FPGA SoCs, which are almost complete computing systems. However, FPGAs successfully combine with other devices in hybrid systems, and, in our opinion, are just beginning to find their rightful place in the hierarchy of computing.

So we organized The Next FPGA Platform in San Jose on January 22nd. Naturally, one of the main suppliers of FPGAs in the world and a pioneer in this area is Xilinx. Ivo Bolsens, Senior Vice President and CTO of Xilinx, made a presentation at the conference and told us about his thoughts today on how Xilinx helps create changeable computing systems for data centers.

System architects and programmers took enough time from to come to a heterogeneous data center, which will present various kinds of computer capacities that solve problems of computing, storage and networking. This seems necessary due to the fact that following Moore’s law using various CMOS is becoming increasingly difficult. While our language is still tied to the CPU, and we are still talking about "application acceleration", referring to the improvement of the programs compared to what can be done on the CPU alone. After some time, data centers will turn into sets of computing power, data warehousing and protocols connecting everything together, and we will return to such terms as “computing” and “applications”. Hybrid computing will be the same as today's cloud services,working on the basis of conventional or virtual machines, and at some point we will just use the word “computing” to describe their work. At some point - and probably the advent of this era will be actively facilitated by the FPGA - we will again call it data processing.

To implement FPGA in data centers, you need to change your mindset. “When thinking about ways to speed up today's applications, you have to get to the bottom of how they run, what resources are used, what takes time,” Bolsens explains. - You need to study the general problem that you are trying to solve. Many applications running in data centers today are scalable, capturing a large number of resources. Take machine learning, for example, using a huge number of computing nodes. But speaking of acceleration, we need to think not only about accelerating computing, but also about accelerating infrastructure. ”

For example, in those machine learning operations that Bolsens studied in practice, about 50% of the time is spent transferring data to and fro between scattered computing power, and only the remaining half of the time is wasted on the calculations themselves.

“It is here, it seems to me, that FPGA will be able to help, since we can provide optimization of both the computational aspects and the data transfer aspects for the application. And we can do this at the general infrastructure level, and at the chip level. This is one of the great advantages of FPGAs that allow you to create communication networks for the specific needs of the application. Watching the typical patterns of data movement in tasks related to the work of artificial intelligence, I do not see the need for a complex architecture based on switches. You can build a network with a large flow of data. The same applies to the tasks of training neural networks - you can build a mesh network with packet sizes that adapt to a specific task. Using FPGA, you can scale and fine-tune data transfer protocols and circuit topology for a specific application.And in the case of machine learning, it’s also clear that we don’t need double-precision floating-point numbers, and we can adjust this too. ”

The difference between FPGA and CPU or specialized ASIC is that the latter are programmed during production, and after that you can’t change your mind about the types of calculated data or calculated elements, or about the nature of the data stream going through the device. FPGAs let you change your mind if working conditions change.

In the past, this advantage was expensive when programming for FPGA was not intended for the faint of heart. You need to open compilers for FPGAs so that they integrate better with the tools used by programmers to create parallel computing applications for CPUs in C, C ++ or Python, and give some of the work to libraries that speed up procedures on FPGAs. This is what the Vitis machine learning stack, which is the basis of such platforms for MOs as Caffe and TensorFlow, and which has libraries for launching ordinary AI models or adding FPGA capabilities to tasks such as video transcoding, object recognition on video, data analysis, is engaged in this , financial risk management and any third-party libraries.

This concept is not very different from the CUDA project from Nvidia, launched ten years ago, and shifting parallel computing to GPU accelerators, or from the ROCm toolkit from AMD, or from the promises of the Intel project, OneAPI, which should run on different CPUs, GPUs and FPGA

The only question is how all these tools will be connected together so that anyone can program a set of computing power at their discretion. This is important because FPGAs have become more complex, much more complex than any of the available CPUs. They are made with the most advanced technological processes and with the help of the most modern chip packaging technologies. And they will find their niche, because we can no longer waste time, money, energy and intelligence - all these are too expensive resources.

“FPGA offers technological advantages,” says Bolsens. - And this is not just ordinary advertising about adaptability and readjustability. In all important applications - machine learning, graph analysis, high-speed trading, etc. - they have the opportunity to adapt to a specific task not only the data distribution path, but also the memory architecture - the way the data moves within the chip. And FPGA has a lot more memory built in than other devices. It should also be noted that if the task does not fit in one FPGA, you can scale it to several chips without encountering the disadvantages that await you when scaling tasks to several CPUs or GPUs. ”

Source: https://habr.com/ru/post/undefined/


All Articles