Xilinx Pitches Open-Source Framework for Heterogeneous Programming

Oct. 1, 2019
Vitis is a new tool for delivering applications and artificial-intelligence solutions across multiple platforms from FGPAs to multicore CPUs.

Xilinx is known for high-performance FPGAs. The company delivered impressive development tools for hardware and software that takes advantage of its FPGA and SoC platforms, such as the Vivado Design Suite and SDSoC environment. Its Versal Adaptive Compute Acceleration Platform (ACAP) incorporates artificial-intelligence (AI) acceleration.

The challenge with these advanced platforms is programming the hardware fabric and matching software to get the most out of the system. Likewise, systems are occasionally built with a single FPGA or SoC, but typically these are just part of a larger system. Cloud systems that employ FPGA cards like Xilinx’s Alveo often have hundreds of cards in a system. Mapping applications across CPUs, GPUs, FPGAs, and AI hardware is complex and error-prone when done manually.

Xilinx’s new Vitis environment is designed to automate the task to mapping applications across a wide range of hardware platforms up to clouds that could contain FPGA cards (see figure). Vitis brings a unified approach to software development. Applications built using the tool can target FPGAs and other customizable hardware, although it works equally well for solutions that only include CPUs and GPUs.  

Xilinx’s Vitis is designed to map applications across multiple targets from processors to the cloud.

Vitis is an open-source platform that includes open-source libraries and runtimes optimized for conventional CPU and GPU platforms as well as Xilinx FPGA and SoC hardware. It features libraries like the OpenCV video processing library, the BLAS (basic linear algebra subprograms) library, a finance library, the Vitis Video library based on FFMEG, and a TensorFlow Vitis AI library. It also supports third-party libraries such as GTAK genomic and data-analytic tools. These domain-specific architecture (DSA) libraries have become popular among designers.

Vitis doesn’t provide new compilers and debuggers. Instead, it’s designed to integrate existing tools to be applied to the application code provided by the developer. The same code is used regardless of the underlying hardware.

The Xilinx runtime library is the basis for the Vitis-created solution. This isn’t a virtual-machine system—rather, it’s a way to provide an interface to the multiple hardware platforms more akin to device drivers within an operating system.

The Xilinx development website provides more details about Vitis as well as the libraries and Vitis software.

The company has provided a development environment, but Vitis tools are designed to work with existing development platforms like Visual Studio Code and Eclipse. The tools are mostly command-line applications that are easily integrated with existing development flows and tools.

One point that may be lost in this massive release of software is that it should make the development job easier when targeting AI and FPGA acceleration. It’s still possible to build systems that utilize IP developed using Vivado. However, more developers will simply take advantage of the standard APIs provided by libraries such as OpenCV, BLAS, and TensorFlow that can target the acceleration when necessary without dealing with FPGA IP directly.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations


To join the conversation, and become an exclusive member of Electronic Design, create an account today!