Xilinx, known over the years for its brand of embedded field-programmable gate arrays (FPGAs), has come out with a new open-source development platform that enables developers to use familiar languages such as C++ and Python to create new applications for its programmable chips.
An FPGA is an electronic component used to build reconfigurable digital circuits. Historically, these required non-standard programming languages, thus needing specialized developers (who also must have a good knowledge of processors) to handle the work.
The dev platform, dubbed Vitis and announced at Xilinx’s recent developer conference in its hometown of San Jose, Calif., is the result of a five-year initiative whose purpose is to simplify the development of FPGAs, which are embedded in millions of devices globally.
It’s well-established that it is difficult to recruit good developers in any area of IT right now, so recruiting specialists in obscure programming languages for under-the-radar hardware makes it even more challenging.
Enables Accelerated Development of Apps
The Vitis environment supports heterogeneous architectures that include Xilinx’s Zynq system-on-chips (SoC), MPSoCs and Versal ACAPs (adaptive compute acceleration platforms). Vitis is designed to enable highly optimized, domain-specific acceleration for a variety of applications, ranging from standard desktop and cloud deployments to business analytics, IoT and edge computing uses.
Ramine Roane, Xilinx Vice-President of Software Product Management, told eWEEK that the Vitis platform enables more than 400 functions on a single FPGA fabric.
“These are hardware-enabled functions that are optimal for edge computing use cases, such as automotive, video applications, surveillance, drones and things like that,” Roane said. “Because FPGAs are really good at getting multiple types of data, and because our I/Os are programmable—and because cars have multiple cameras, Lidar, radar and different types of sensors—FPGAs are ideal to do sensor fusion for automated vehicles. Vitis is a huge need there because customers don’t want to do hardware development.”
The Vitis platform is constructed on a stack-based architecture that plugs into open-source standard development systems and build packages. The base layer is comprised of a board and pre-programmed I/O; the second layer includes the Vitis core development kit, along with analyzers, compilers and debuggers from Xilinx and its partners.
Supports Tensorflow, Caffee and PyTorch, Among Others
The third layer consists of eight Vitis libraries that provide a wealth of open-source applications—more than 400 of them. Included in this package is Vitis’s own AI component, which supports the popular TensorFlow, Caffe and PyTorch frameworks for distributed neural network processing. When it becomes available, Vitis Video aims to support FFmpeg for video processing engines in the cloud. Xilinx offers its current toolkit, the Vivado Design Suite, for developers who want to program by using standard hardware code.
Xilinx also announced its Developer.Xilinx.com site that will connect developers to experts in various disciplines and will make projects from these experts freely available for use, Roane said.
Key features of the new platform include:
- comprehensive core development kit to build accelerated applications;
- rich set of hardware-accelerated open-source libraries optimized for Xilinx hardware platforms;
- plug-in domain-specific development environments enabling development directly in familiar, higher-level frameworks; and
- a growing ecosystem of hardware-accelerated partner libraries and pre-built applications.
Key Components of Vitis Unified Software Platform
Vitis AI Development Environment: A specialized development environment for accelerating AI inference on Xilinx Embedded platforms, Alveo Accelerator cards, or on the FPGA-instances in the cloud. Vitis AI supports industry’s leading deep-learning frameworks like Tensorflow and Caffe, and offers comprehensive APIs to prune, quantize, optimize and compile your trained networks to achieve a high AI inference performance for a deployed application.
Vitis Accelerated Libraries: Open-source, performance-optimized libraries that offer out-of-the-box acceleration with minimal to zero-code changes to your existing applications, written in C, C++ or Python. Users can leverage the domain-specific accelerated libraries as-is, modify to suit requirements or use as algorithmic building blocks in custom accelerators.
Vitis Core Development Kit: Complete set of graphical and command-line developer tools that include the Vitis compilers, analyzers and debuggers to build, analyze performance bottlenecks and debug accelerated algorithms, developed in C, C++ or OpenCL. Leverage these features within IDEs or use the standalone Vitis ID.
Xilinx Runtime library: Xilinx Runtime library (XRT) facilitates communication between application code (running on an embedded ARM or x86 Host) and the accelerators deployed on the reconfigurable portion of PCIe based Xilinx accelerator cards, MPSoC based embedded platforms or ACAPs. It includes user-space libraries and APIs, kernel drivers, board utilities and firmware.
Vitis Target Platforms: The Vitis target platform defines base hardware and software architecture and application context for Xilinx platforms, including external memory interfaces, custom input/output interfaces and software runtime.
- For Xilinx Accelerator cards on-premise or in the cloud, the Vitis target platform automatically configures the PCIe interfaces that connect and manage communication between FPGA accelerators and x86 application code; users don’t need to implement any connection details.
- For Xilinx Embedded devices, the Vitis target platform also includes the operating system for the processor on the platform, boot loader and drivers for platform peripherals and root file system. Users can deploy predefined Vitis target platforms for Xilinx evaluation boards or define their own in Vivado Design Suite.
The Vitis unified software platform is free for Xilinx boards and will be available for download in November.