In this section, we will focus on implementing an optimized hand-coded version of the Sobel operator in HLS and comparing its performance with the Sobel operator from the Vitis Vision Library. The first challenge we will encounter is the installation and configuration of the Vitis Vision Library, with all installation details provided in this document. Next, we will deploy the different versions of the Sobel HLS kernel onto the board and test the hardware acceleration performance within the PYNQ framework. A comparison of different implementations of the Sobel operator shows that using the Vitis Vision Library is more than three times faster than the Hand-Coded Sobel acceleration kernel when run on the same device and interface. Therefore, we need to master not only the design process and optimization techniques for HLS kernels but also learn to implement suitable operators using the existing Vitis Acceleration library.
The advantages and disadvantages of the two methods are as follows:
Method | Advantages | Disadvantages |
---|---|---|
Hand-Coded Sobel | Highly customizable | Time-consuming to develop and optimize |
Potential for tailored optimization for specific needs | Requires deep knowledge of HLS and algorithm intricacies | |
Vitis Vision Library | Faster development time | Less flexibility in customization |
Pre-optimized for performance | Dependent on library updates | |
Easier to implement |
Part | Topic | Description | Environment |
---|---|---|---|
1 | Software Implementation | Software Implementation with OpenCV-Python Library | Jupyter Notebook |
2 | HLS Kernel Programming | Hand-Coded Sobel HLS Kernel to Extract Image edges | AMD Vitis HLS 2023.2 |
Using Sobel in Vitis Vision Library to Extract Image Edges | |||
3 | System-level Integration | Create the kernel Graph and the test bench | Jupyter Notebook |
Load the overlay and run the application on the PYNQ framework | |||
Visualize the results and analyze the performance |
Hand-Coded Version:
Vitis Vision Library Version :
Copyright© 2024 Advanced Micro Devices