Flow Graph Analyzer – Speed Up Your Applications

Sponsored Post

State of the art systems that need to be aware of an environment  must relying on sensors, radar, LIDAR, cameras and specialized computing in order to make sense of a chaotic world. Underneath all of the sensor information for systems that are part of autonomous driving vehicles are machine learning algorithms that continue to evolve. As more and more environmental information at higher resolution is obtained in real time, so must the computational efficiency of the overall system be increased. In addition to more information, the goal is to approach better and more perfect decisions.

These systems must decide what is important to analyze as the data is obtained. Certain regions of a frame may be more important to analyze than other regions of the same frame. These analytical processes can be run in parallel, from a frame by frame parallelism down to pixel level parallelism. The work unit could be considered a proposal in that a region of interest is identified and then must be worked upon.

Using the Intel® Advisor Flow Graph Analyzer (FGA), an application such as those that are needed for autonomous driving can be developed and implemented using very high performing underlying software and hardware. Under the Intel FGA, are the Intel Threaded Building Blocks which take advantage of the multiple cores that are available on all types of systems today. With heterogeneous systems that may be implemented in a variety of scenarios and workloads across a wide range of domains, a highly performance library is needed in order to assure portability where it makes sense.

[clickToTweet tweet=”Autonomous Driving is coming soon. Learn how Intel products can help to develop innovative systems.” quote=”Autonomous driving required advanced and optimized software.”]For example, while driving, there are multiple independent  proposals that need to be acted upon.  These can be front collision detection, lane departures and potential side collisions.  Each of the video frames or radar sensors may be feeding information into the system at the same time, and all of the proposals must be analyzed within a certain time frame.  A measure of how complete the overall system is working is to look at what percent of each frame is completed within the budgeted  time frame.

As with any computational intensive system, optimizations can be made through software which uses more computing power. Using tools in the Intel FGA, bottlenecks can be identified and then optimized. For example, in the example above, object recognition takes a significant amount of time of processing a single frame, and thus is a candidate for further parallelism and optimization. With the Intel Flow Graph Analyzer and Intel TBB, different portions of the flow of actions can be optimized and made to take advantage of the underlying hardware. The goal is to parallelize as many parts of an algorithm as possible and keep all processing cores as busy as possible.

Intel FGA gives developers a comprehensive set of tools to examine, debug, and analyze Intel TBB flow graphs. Applying it to the automated driving example, the tools were able to quickly identify the most important areas for optimization. While parallelism is used extensively, there are areas that cores could be used more efficiently, improving the overall time to process a given frame.

Learn more about advanced driver assistance systems here.

Intel® Threading Building Blocks: Free download