ARM分享:如何優化汽車駕駛AR應用

與傳統應用程序相比,增強現實需要更優的系統性能。由於長久的適應,人眼可以輕鬆感知到物理世界斷斷續續且緩慢發展的表現。但對於AR應用,即便渲染或幀率出現微小的錯誤,這都可能產生糟糕的用戶體驗。

清晰一致的應用性能對汽車領域尤其重要。汽車廠商正越來越多地將增強現實納入至核心用戶體驗,如通過直接在駕駛員的視場中渲染導航信息。在這種情況下,分散注意力的延遲或不清晰的可視化效果都會造成災難性的事故。

日前,Arm通過博文介紹了其AR技術的用例和開發方法,尤其著重於如何優化性能以提供最佳用戶體驗。

ARM分享:如何优化汽车驾驶AR应用

1. 當前的狀態

無論編碼好壞,軟件最終都取決於它所運行的硬件。當前,AR應用沒有專用於增強現實的ECU(電子控制單元),所以它們通常藉助車輛中現有的ECU。這限制了性能,所以AR應用必須與在相同硬件運行的其他應用程序隔開。為避免用戶出現暈動症及顯示清晰度,應以穩定的幀頻顯示AR應用的內容。增強對象外觀的延遲應保持在一定範圍內,這對於優化AR應用功能至關重要。由於傳感器或軟件性能的原因,即使是行駛車輛的顯示延遲很小,這都可能導致較大的失配。在以100km/h的速度行駛時,200ms的延遲將導致增強對象位置與現實世界最多錯位5米。對於安全性至關重要的汽車而言,這種程度的誤差不可接受。

當前使用的ECU是Samsung Exynos V9 Auto汽車芯片。它必須運行Apostera AR應用程序和其他各種軟件模塊,並支持廣泛的性能和I/O功能。

AR應用需要實時運行才能發揮作用並提供無縫的用戶體驗。但大多數Linux變體不是實時。Exynos V9 Auto汽車芯片所運行的OS是製造商提供的BSD Linux版本,並且不支持實時例程。 為了支持算法能夠正確計算增強對象的位置,AR應用必須實現實時架構和方法。這可以通過向用戶提供信息時補償測量延遲來進行滿足。

對於嚴格的要求,至關重要的是:

持續監控效果分析AR應用程序以發現瓶頸確保所有操作均按時完成,並且輸出中沒有丟幀或數據放置錯誤。

全面且易於使用的性能分析器工具是提供高質量解決方案的關鍵。

ARM分享:如何优化汽车驾驶AR应用

2. 用例

德國慕尼黑軟件公司Apostera為汽車製造商開發了一種混合現實導航制導系統,並旨在為提高自動駕駛的未來鋪平道路。當前的應用程序可以將汽車擋風玻璃轉換成混合現實屏幕,並在其中顯示重要信息,從而實現安全有效的導航。

3. 代碼優化

3.1 傳統的方法

對於Apostera,分析AR應用程序的性能通常意味著實現特殊的分析和性能指標庫。所述庫的輸出是通過一個特殊的日誌系統進行記錄,並同時包含性能指標。接下來,系統將於運行時或運行後在脫機數據檢索設置中從目標平臺提取所述數據。對於複雜的調試和優化案例,內核軌跡可用於更深入的分析和瓶頸識別。

使用所述數據來確定優化路線非常繁瑣且效率低下。無法在運行時分析數據,並且無法長時間記錄眾多事件。全面理解系統性能並查看性能瓶頸是一項挑戰。

3.2 新穎的方法

在將AR應用移植到新硬件時,Apostera決定使用Arm Streamline Performance Analyzer(Arm Development Studio的一個組件)來優化性能。Streamline是完整的軟件系統分析器。它會輪詢系統的硬件計數器,從而確定在代碼執行過程中耗時最大的地方,並顯示在易於理解的GUI中。所述工具可快速識別Arm CPU和GPU中的代碼“熱點”,例如在執行過程中佔用最多硬件資源時間的軟件。這可以幫助開發者專注於優化問題代碼。

設置Streamline來剖析AR應用非常容易。這個文檔介紹瞭如何激活Linux內核的特定選項,以及如何在目標平臺安裝gatord精靈虛擬光驅。

通過Streamline剖析應用程序的主要方法有兩種:

精靈虛擬光驅(在線)模式:將目標接到Streamline工具,並在運行期間將應用程序性能直接實時記錄到Streamline中。本地捕獲(離線)模式:1.設置目標以將應用程序性能數據記錄到內存中;2.使用Streamline將生成的文件傳輸到主機;3.運行完成後進行分析

對於Apostera的情況,任意一種模式都適用,而他們最後決定通過離線方法來收集數據。在設置並記錄了數次AR應用運行之,他們將概要文件數據轉移到Streamline並開始進行分析。

4. 分析

Streamline提供了幾種不同的方式來可視化記錄數據。

“Timeline(時間軸)”選項卡顯示隨時間推移的CPU和GPU活動,以及指定的PMU指標圖表。

ARM分享:如何优化汽车驾驶AR应用

“Function(功能)”選項卡顯示代碼中所有功能的熱圖。在這裡,Linux內核在編譯時沒有調試符號,從而導致了未知的代碼消息。

ARM分享:如何优化汽车驾驶AR应用

“Code(代碼)”選項卡顯示指定源文件在每個源代碼行所花費的時間。

ARM分享:如何优化汽车驾驶AR应用

“Call Paths(調用路徑)”選項卡顯示代碼線程的熱圖,並顯示執行期間耗時最多的地方。

ARM分享:如何优化汽车驾驶AR应用

Apostera指出:“我們發現調用路徑視圖特別具有啟發性,它顯示了每個編譯單元和子單元中調用的樣本數量。我們立即在時間軸熱圖中確定了耗時最多的代碼區域。另外,將源代碼接到工具,並將應用程序調試信息加載到Streamline有助於我們發現問題代碼的確切文件和行數。這種快速的問題識別和專一性簡化了我們的性能分析和重構建議過程。”

Streamline工具簡化了性能剖析和分析,為Apostera應用程序在運行期間的行為提供了簡便的概覽。作為Arm Development Studio的組件,Streamline可以免費下載並使用30天。

原文鏈接:https://yivian.com/news/72806.html


分享到:


相關文章: