應用程序開發(fā)人員喜歡通過將應用程序的邏輯設計為不同對象實體之間的交互來堅持面向對象的編程風格。在這個過程中,每個實體都被建模為C++類或結構。結構數(shù)組(AOS)維護這些實體的集合,這使得代碼更可讀,更易于維護。但是,這種用戶友好的代碼可能會面臨一個挑戰(zhàn)時,涉及到矢量化效率。通常,由于在主存儲器中以非單位步長的方式布置數(shù)據,所以收集用于填充向量寄存器所需的數(shù)據。為了使數(shù)據布局更加矢量友好,開發(fā)人員經常需要手動將數(shù)據結構從AoS更改為數(shù)組結構(SoA)。Intel的單指令多數(shù)據(SIMD)布局模板幫助開發(fā)人員在編程時保留AoS接口,但是在幕后,數(shù)據結構以SoA格式布局。這是一個雙贏的解決方案,面向對象和矢量友好的編程。
本演示文稿演示了如何分析性能敏感循環(huán)中的內存訪問模式,以及如何使布局模板能夠盡可能地從常量和變量跨行內存訪問更改為單元跨行內存訪問。
-
內存
+關注
關注
8文章
3125瀏覽量
75275 -
編程
+關注
關注
88文章
3689瀏覽量
95271 -
C++
+關注
關注
22文章
2119瀏覽量
75333
發(fā)布評論請先 登錄
什么是CAD矢量化?
使用SVE對HACCmk進行矢量化的案例研究
RealView編譯工具NEON矢量化編譯器指南
一種優(yōu)化的鞋樣圖像矢量化方法
阿郎“零接觸矢量化”技術實現(xiàn)寬帶服務提速
使用線程和矢量化將串行代碼轉換為并行
矢量化數(shù)據并行性的程序方面的作用
使用英特爾SIMD數(shù)據布局模板提高矢量化效率
矢量化或性能模具:調整最新的AVX SIMD指令
一種全新的視角去理解和處理地圖矢量化的任務

基于矢量化場景表征的端到端自動駕駛算法框架

評論