What If Autonomous Devices Could Program Themselves, Out in the Wild?

By USC Viterbi Staff | March 7, 2024

Paul Bogdan, fellow researchers publish research explaining how heterogeneous processors in cyber-physical systems could adapt and self-program.

Stock illustration depicting an autonomous vehicle.

(Illustration: iStock)

Machines that learn as they go, such as autonomous underwater/ground/aerial vehicles, are powered by a constellation of computing systems working together. They’re heterogeneous, a bunch of platforms put together, and they often learn at different paces depending on how they’re programmed.

The USC Viterbi School’s Paul Bogdan, his PhD students, and other researchers have been working on a framework to help autonomous systems mine the software and perform better on the fly, so they don’t have to be brought back to the shop for tinkering. The researchers call it a “unified, end-to-end, programmable graph representation learning (PGL)” framework, and its promising progress is outlined in a paper published in Nature Communications Engineering.

“The comprehensive evaluation of PGL on existing and emerging complex software demonstrates a 6.42x and 2.02x speedup compared to thread-based execution and state-of-the-art techniques, respectively,” the paper’s abstract states. “Our PGL framework leads to higher processing efficiency, which is crucial for future AI and high-performance computing applications such as autonomous vehicles and machine vision.”

Head shot of Professor Paul Bogdan of the USC Viterbi School.

Paul Bogdan

Bogdan, an associate professor of electrical and computer engineering in the USC School of Advanced Computing, a new unit of the Viterbi School, said: “If you figure out something is wrong with your program that is running on these computing platforms, you don’t want to recall the system to engineer it in-house and then let it go in the wild again. Our idea was, let’s have something that sits on top of the computing platform, like a local intelligence, that takes the new programs and then restructures, analyzes the programs and optimizes them on the fly.”

To optimize a system is to “find the degree of parallelization,” said Bogdan, the Jack Munushian Early Career Chair in the SAC’s Ming Hsieh Department of Electrical and Computer Engineering. “And this is actually a very hard problem in parallel computing: How do we find how to split a program into parallel threads, meaning parallel processes, and each process can compute on its own and interact with other processes when needed?”

Different processors serve different needs: a GPU (graphics processing unit) are tailored to more specific tasks than a CPU (central processing unit). “Or maybe you have some accelerators that do just matrix multiplication,” Bogdan said. “So, there is this concept of self-programmability, that we put forward. And this paper is about that while mining and exploiting for the first time the topological characteristics of complex software.”

Yao Xiao

Yao Xiao

The USC team striving to push this new paradigm of self-programmable heterogeneous computing systems includes Yao Xiao; Guixiang Ma; Nesreen K. Ahmed; Mihai Capota; Theodore L. Willke; and Shahin Nazarian.

“We are the first to analyze the topology of software and relate with the performance on computing system,” Bogdan said.

Published on March 7th, 2024

Last updated on March 7th, 2024

Share This Story