Acceleration Concepts - 2023.1 English

Vitis Tutorials: Hardware Acceleration (XD099)

Document ID
Release Date
2023.1 English

Rather than diving immediately into the API, especially if you do not have much experience with acceleration, start with a simplified analogy to help explain what must happen in an acceleration system.

Imagine that you have been given the job of giving tours of your city. Your city may be large or small, dense or sparse, and can have specific traffic rules that you must follow. This is your application space. Along the way, you are tasked with teaching your wards a specific set of facts about your city, and you must hit a particular set of sights (and shops — you have to get paid, after all). This set of things you must do is your algorithm.

Given your application space and your algorithm, you started small; your tours fit into one car, and every year you would buy a new one that was a bit bigger, a bit faster, and so on. But, as your popularity grew, more and more people started to sign up for the tours. There is a limit to how fast your car can go (even the sports model), so how can you scale? This is the problem with CPU acceleration.

The answer is a tour bus! It might have a lower top speed and take much longer to load and unload than your earlier sports car idea, but you can transport many more people — much more data through your algorithm. Over time, your fleet of buses can expand, and you can get more and more people through the tour. This is the model for GPU acceleration. It scales very well — until, that is, your fuel bills start to add up, there is a traffic jam in front of the fountain, and the World Cup is coming to town!

If only the city would allow you to build a monorail. On their dollar, with the permits pre-approved. Train after train, each one full, making all the stops along the way (and with full flexibility to bulldoze and change the route as needed). For the tour guide in our increasingly tortured metaphor, this is fantasy. But for you, this is the model for Vitis acceleration. FPGAs and AMD Versal™ adaptive SoCs combine the parallelism of a GPU with the low-latency streaming of a domain-specific architecture for unparalleled performance.