Точечный продукт не может одновременно выполнять распараллеливание и векторизацию - PullRequest
3 голосов
/ 03 мая 2019

Я хочу проверить скорость оптимизации компилятора, когда компилятор одновременно распараллеливает и векторизует мой код для скалярного точечного продукта, но по какой-то причине компилятор позволяет мне либо векторизовать мой код, либо распараллеливать, но не оба одновременно.

Ниже приведен мой код, который в настоящее время я не могу распараллелить (он дает мне код ошибки 1004)

float dot_product(float* a, float* b, int N) {
    float result = 0;
    #pragma loop(hint_parallel(0))
    for (int i = 0; i < N; i++) {
            result += (*(a+i) * *(b+i));
    }
    return result;
}
...