我想實現我的內核的兩個版本,一個向量和一個標量版本。 現在我想知道是否讓double4類型在內存訪問方面類似於大小爲4的double的數組。
我想到的是對於我的兩個內核使用相同的數據類型,其中標量爲1我將像使用常規數組一樣單獨處理每個組件(.s0 .. .s3)。
在其他世界中,我只想在標量內核中使用OpenCl矢量類型進行存儲,並利用矢量內核中的矢量屬性。
我真的不想爲每個內核有不同的變量類型。
這對你們有意義嗎?
這裏有什麼提示嗎?
謝謝,OpenCl中的向量類型和一維數組
Éric。
謝謝你們,我現在對你的兩個回覆感到困惑。有人告訴我,NVIDIA GPU不能很好地使用矢量。所以我想有2個內核。我的k20的標量,以及我的Xeon Phi的矢量版本。那麼,在這裏我也困惑,因爲我得到'設備首選雙類型向量寬度:1'這個設備。 – Eric
@Eric可以看看下面的內存訪問以及合併了一些修正我的評論。關於1首選載體寬度,讓說你添加兩個個float4在NVIDIA GPU,變成4次浮點加法,因爲有在NVIDIA GPU的指令集不向量指令。然而,這些增加了4可以以任何順序執行,從而允許將被提取一些ILP,這對於當前的開普勒代GPU的事項。 Xeon Phi已經獲得了矢量操作,所以它應該報告一個優先的矢量寬度大於1。 – chippies