No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
Package Summary
Tags | No category tags. |
Version | 0.3.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 package examples demonstrating the use of hardware acceleration. |
Checkout URI | https://github.com/ros-acceleration/acceleration_examples.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-12-13 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | fpga gpu hardware-acceleration ros2 |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
A trivial double vector-add ROS 2 publisher that adds two
inputs to a vector in a loop and attempts to publish them on the go
at 10 Hz. Vector add operations are offloaded into to the FPGA.
This example builds on top of "doublevadd_publisher" which is only
able to publish at 2 Hz on the quad-core Cortex-A53 Application
Processing Units (APUs) of the Zynq Ultrascale+ (ZU+) SoC.
The acceleration operation into the FPGA (or to the Programmable Logic (PL))
allows the publisher to improve its publishing rate from 2 Hz, up to 6 Hz.
For that, the HLS INTERFACE pragma is used. The HLS INTERFACE specifies
how RTL ports are created from the function definition during interface
synthesis. Sharing ports helps save FPGA resources by eliminating AXI
interfaces, but it can limit the performance of the kernel because all the
memory transfers have to go through a single port. The m_axi port has
independent READ and WRITE channels, so with a single m_axi port, we can do
reads and writes simultaneously but since the kernel (vadd) has two vectors
from where its reading (simultaneously), we can optimize the dataflows by
simply asking for an extra AXI interface.
After using the PL, accelerated_doublevadd_publisher is able to publish at 6 Hz
in the ZU+, still far from its targeted rate (10 Hz). See "doublevadd_publisher"
for a version running purely on the APUs (2 Hz). See "faster_doublevadd_publisher"
for yet another version of this publisher which further leverages parallelism to
meet the targeted rate (10 Hz).
Additional Links
No additional links.
Maintainers
- Víctor Mayoral Vilches
Authors
- Víctor Mayoral Vilches
README
No README found.
See repository README.
CHANGELOG
No CHANGELOG found.
Wiki Tutorials
This package does not provide any links to tutorials in it's rosindex metadata.
You can check on the ROS Wiki Tutorials page for the package.
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
std_msgs | |
vitis_common | |
tracetools | |
ament_cmake | |
ament_vitis | |
ament_oneapi | |
acceleration_firmware_agilex7 | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
No direct system dependencies.
Dependant Packages
Name | Deps |
---|---|
accelerated_vadd_publisher |
Launch files
No launch files found
Messages
No message files found.
Services
No service files found
Plugins
No plugins found.
Recent questions tagged accelerated_doublevadd_publisher at Robotics Stack Exchange
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.