2
我正在轉換算法以利用C++ AMP提供的大量加速。我所在的階段是將for循環放入已知的parallel_for_each循環中。C++ AMP,用於循環到parallel_for_each循環
通常這應該是一個簡單的任務,但它似乎更復雜,然後我第一次想到。這是一個嵌套的循環,我增加量迭代使用步驟4:
for(int j = 0; j < height; j += 4, data += width * 4 * 4)
{
for(int i = 0; i < width; i += 4)
{
我有麻煩的是使用索引的。我似乎無法找到一種方法將其正確地適用於parallel_for_each循環。使用等級2的索引是要走的路,但通過分支來操縱它將會損害性能增益。
我發現了一個類似的帖子:Controlling the index variables in C++ AMP。它也處理索引操作,但增量方面不包括我的問題。
隨着親切的問候,
Forcecast
也許你可以使用[磚](http://msdn.microsoft.com/en-us/library/hh873135%28v=vs.110 %29.aspx)將數據分區爲4x4的磁貼。 –
瓷磚+1。 AMP的parallel_for_each實際上只是它:它遍歷範圍中的每個元素。沒有跳躍,沒有跳躍。每當你需要更多的時候,你可能會想要使用'tiled_extent'。 – ComicSansMS
謝謝你的回覆。當我仔細觀察它時,確實可以使用這種情況下的瓷磚。我只是想確保我沒有放棄任何我可能錯過的其他原因。感謝您的提醒。 – Forcecast