1
我在我的程序中有一個算法可以正常工作。我推測是否有可能加速思考一下:在C++ Array尋找短值快速SIMD版本
unsigned short c;
bool found = false;
unsigned short* arrIterator = arr;
while((c = *arrIterator & mask) != stopValue)
{
if(c == next)
{
found= true;
break;
}
arrIterator ++;
}
有可能將這樣的算法改寫成SIMD指令嗎?
您可以先將編譯器配置爲高優化級別嗎?然後您應該打印彙編語言以查看編譯器是否生成了SIMD指令。 – 2015-04-03 19:34:13
另外,嘗試使用數組符號而不是指針。通常,指針只指向一個值。一個數組表示有多個值並且這些值是連續的。 – 2015-04-03 19:35:25
您能保證包含停止值的對齊的16字節塊在停止值之後的值不等於'next' *嗎? – harold 2015-04-03 19:40:00