ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Announcing the Hardware Acceleration WG, meeting #1

Dear all,

For the past month we registered interest on Hardware Acceleration within the ROS 2 community. Thanks all those that showed support or contacted directly! We are excited to see that this topic has raised so much interest and we at Xilinx are motivated to push forward hardware acceleration in robotics and contribute in the open with tools and accelerators that impact ROS 2 and Gazebo flows. For all those that asked, our reference hardware platform will initially be the Kria K26 Adaptive SOM, with its reference carrier board for vision and perception.

If you’d like to stay more tuned to our progress and be notified of meetings, join the Google Group we’ve created. Also, you could check out the information below or simply stay tuned to the wg-acceleration tag:

More details about the Hardware Acceleration WG (HAWG)

With all this, we’re happy to call for the first official WG meeting:

Meeting #1

Come join us during the first meeting of the ROS 2 Hardware Acceleration Working Group. The plan for this first meeting is to ==demonstrate current hardware acceleration flows with ROS 2==. We also would like to discuss other hardware acceleration efforts and see how all this can be brought together. For the initial demonstrations we will focus on the following preliminar architecture we’ve been working on to bring acceleration natively to the ROS 2 build system (ament) and meta build tools (colcon). This should facilitate ROS 2 centric acceleration flows using both C++ and/or OpenCL:

        ROS 2 stack                        HAWG @ ROS 2 stack

+------------------------+             +--------------------+
|                        |             |  xilinx_examples   |
|       user land        |  +-------------------+-----------+-------+--------------+
|                        |  |       Drivers     |     Libraries     |    Cloud     |
+------------------------+  +---------------+---+--------+----------+--------------+
|                        |  |   ament_vitis | ament_rocm |          |  accel_fw    |
|                        |  +---------------+----------+-+----------+--------------+
|     ROS tooling        |  |     ament_acceleration   | colcon_accel |  accel_fw  |
|                        |  +------------------------------------------------------+
|                        |  |      build system        |   meta build |  firmware  |
+------------------------+  +--------------------------+--------------+------------+
|  ROS client library    |
+------------------------+
|  ROS middleware iface  |
+------------------------+
| middleware impl. adapt |
+------------------------+
|                        |
|    middleware impl.    |
|                        |
|                        |
+------------------------+

We’d love to hear about your acceleration projects so feel free to drop here a line of what you’d like to share with the group and we’ll coordinate time slots, either in this meeting or in follow up ones.

The fist meeting has been originally scheduled to be 30 minutes at a friendly time in America, late afternoon in Europe and horribly bad time in Asia (sorry for that). We’ll be rotating friendly-hours between America and Asia if anyone requests us to do so.

  • Time: 2021-06-30T18:00:00Z.
  • Coordinates: Zoom
    • Phone one-tap: US: +17209289299,99299967182#,0#,8504098917# or +19292056099,99299967182#,0#,8504098917#
    • Meeting URL: Launch Meeting - Zoom
    • Meeting ID: 992 9996 7182
    • Passcode: Xk.X73&rNY
  • Preliminary agenda:

    1. Introductions
    2. ROS 2 Hardware Acceleration WG, quick review of objectives, rationale and overview
    3. Initial hardware acceleration architecture for ROS 2
    4. Short demonstration and initial feedback/Q&A
    5. Community hardware platforms (e.g. Ultra96-v2), process and steps
    6. (your acceleration project)
6 Likes

Very exciting! That is also a nice looking board. It looks like the global shortages have caused it to have a really long lead time. I will order some now so I can try it out in a few months.

1 Like

Cool. I am very interested in participating but I am away for summer vacation. Will you record the meeting? I have not used ROS a lot but its extensively used here at my uni and I think easy integration with ROS could mean that more projects would consider using SoC FPGAs. I am very curios to hear what you guys over at Xilinx are thinking

1 Like

We will @erlingrj, or at least I’ll do my best on that end :slight_smile: . Minutes will also be available afterwards.

We are of the same opinion. Moreover, as discussed at https://discourse.ros.org/t/challenges-of-gpu-acceleration-in-ros/19297/12:

ROS 2 users have additional priorities computational graph-wise which should be considered. E.g. it appears to be quite a hot topic to optimize interactions betwen nodes (inter-process, intra-process and even over the network). Accelerators on this end will add significant value to the overall ROS 2 computational graphs (and even to the underlying data layer graphs, which at the end of the day, matter as most in real deployments). In other words, while it’d be great to have OpenCL kernels to accelerate specific computations, real impact won’t be achieved unless a holistic ROS view is applied (bottlenecks identified, etc.)

Real acceleration would require optimizations not just at the application layer itself, but also at the ROS underlayers so that they don’t impose bottlenecks on the computational graphs. That’s why we’ve set this as a key objective first.

As we mentioned in the past, our effort is also to fight against the Not Invented Here syndrome, which is a big thing in the acceleration/semiconductors world. Big silicon vendors are too self-centric and rather than contributing to expert communities, prefer to reinvent the wheel with their yet-not-new-feature-in-acceleration-language-A or a new GUI-for-robot-simulation-that-adds-nothing-but-looks-B . Our team at Xilinx wants to tackle this and contribute to the ROS 2 community directly, connecting to real ROS users.

I’d encourage you to participate in the future and send to us what you’re working on, so that we consider your needs.

1 Like

Hi,
I would like to add the Ultra96-v2 board to the list of community supported boards, because is popular (so more people could contribute), not so expensive, and is readily available so we can start working with it. What do you think?

regards,
Pedro

1 Like

Hola @Pedro :slight_smile: !

I think this is an awesome idea. I made a section for this at the community repo of the WG and will add your request to the Agenda above. We’ll allocate a few minutes and discuss this during the meeting.

I don’t have an Ultra96-v2 with me so I won’t be able to help much debugging, but I purposely architected things so that extending it to a new board is all about creating another custom acceleration_firmware branch with the firmware artifacts for that specific board (accel_fw in the following diagram):

               HAWG @ ROS 2 stack

           +--------------------+
           |  xilinx_examples   |
+-------------------+-----------+-------+--------------+
|       Drivers     |     Libraries     |    Cloud     |
+---------------+---+--------+-------------------------+
|   ament_vitis | ament_rocm |          |  accel_fw    |
+---------------+----------+-+----------+-+------------+
|     ament_acceleration   | colcon_accel |  accel_fw  |
+------------------------------------------------------+
|      build system        |   meta build |  firmware  |
+--------------------------+--------------+------------+

All of this will be detailed in the repo. If done properly, then ament_acceleration derived packages (e.g. ament_vitis) should pick all the artifacts automatically and connect it with the ROS build system and tools so that you’d only need to invoke colcon build with a mixin, that’ll be it. We sent these software components to legal for open sourcing them and they’ll be out as soon as we get the approvals. I’ll be demonstrating this in the first WG meeting. Also, I’ll make sure to detail the process of porting things to another board.

For new developments, I’d highly encourage to stick to the official reference hardware platform (K26) since that’s what we’ll be testing and where all the features will be confirmed to work and available.

If there’s anyone else interested in doing something similar, please speak out!

I will try to get a KV260 as soon as they are available but I would also like to have support for the Ultra96-v2. We have several of those that we use for teaching in a couple master courses.
In general this looks really interesting! Thanks for the effort in pushing this forward @vmayoral

1 Like

Noted, thanks @jopequ!