Mat*_*Mat 7 c++ compiler-construction simd
我在Visual Studio 2008中工作,在项目设置中,我看到"激活扩展指令集"的选项,我可以将其设置为None,SSE或SSE2
那么编译器会尝试将指令一起批处理以便使用SIMD指令吗?
是否有任何规则可以遵循如何优化代码,以便编译器可以使用这些扩展使高效的汇编程序?
例如,目前我正在研究光线跟踪器.着色器接受一些输入并从输入计算输出颜色,如下所示:
PixelData data = RayTracer::gatherPixelData(pixel.x, pixel.y);
Color col = shadePixel(data);
Run Code Online (Sandbox Code Playgroud)
例如,编写着色器代码是否有利于它会在一个指令调用中遮蔽4个不同的像素?这样的事情:
PixelData data1 = RayTracer::gatherPixelData(pixel1.x, pixel1.y);
...
shadePixels(data1, data2, data3, data4, &col1out, &col2out, &col3out, &col4out);
Run Code Online (Sandbox Code Playgroud)
一次处理多个数据单元.这有利于使编译器使用SSE指令吗?
谢谢!