簡體   English   中英

使用具有 SIMD 內部函數的結構

[英]Using a Struct with SIMD Intrinsics

假設我有一個結構

typdef struct point{
 
  float x;
  float y;
  float z;

} point; 

我有一個這些結構的數組,我想執行以下操作 -

std::vector<point> copyArray;

for(auto p : array_of_points){
   
    point newPoint;

    newPoint.x = p.x;
    newPoint.y = p.y;
    newPoint.z = p.z;

    copyArray.push_back(newPoint);
}

現在,如果我可以一次對多個結構進行操作,則可以使用向量操作來加速我代碼中的這一特定部分。

我有一個兩部分的問題

  • 如何使用 SIMD 內在函數完成此操作。 我不確定如何加載結構。
  • OpenMP 能否實現所需的矢量化。 我對組裝不太滿意,無法弄清楚它是否確實被有效地矢量化。

提前致謝。

我希望循環不能被矢量化為copyArray.push_back(newPoint); 正在訪問共享資源。

如果您想加快速度,您可能需要研究如何快速將數組轉換為向量。 您可以從這里開始搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM