Мне интересно, как можно сравнивать векторизованный код с его не векторизованной версией?Например, у меня есть простой код на языке Fortran, и я компилирую его с -O2
, чтобы включить автоматическую векторизацию.После этого я вижу из отчета по оптимизации, что цикл был векторизован.Теперь, если я хочу сравнить этот векторизованный код с его не векторизованной версией, должен ли я скомпилировать тот же код с -O2 -no-vec
или -O1
или даже -O0
?Ну, исходя из моего опыта, и -O2 -no-vec
, и -O1
не дают существенных различий, хотя первое всегда немного лучше.Однако, если я сравниваю -O2
и -O0
, результаты значительно отличаются, что больше, чем число векторной ширины;поэтому я уверен, что не стоит сравнивать их, чтобы подчеркнуть преимущества векторизации.Итак, я хотел бы только знать, должен ли я сравнивать -O2
с -O2 -no-vec
или -O1
, так как я читал много журналов, которые никогда не объясняли этот вопрос подробно, а только указывали, например, "... по сравнению с его векторизованной версией, векторизованный код достигает ... "