Комментарии 5
Простыми человеческими словами объясните что тут происходит? Прочитал все статьи по ссылкам, но всё равно мало что понял.
+1
Чаще всего, производительность прямолинейно (точно не обратно пропорционально) зависит от эффективности векторизации. Речь идет о векторных SSE инструкциях. Если абстрагироваться, то GAP это некая база знаний известных подходов для улучшения эффективности авто-векторизации и авто-распараллеливания. GAP проводит диагностику кода, смотрит свою базу известных ситуаций и советует, что и как изменить в коде для того чтобы помочь компилятору (e.g. завекторизовать). Существуют ключи (опции) компиляции /Qvec-report и /Qpar-report, которые сообщают об успешной(м)векторизации/распараллеливании цикла, либо сообщают, что цикл не удалось векторизовать/распараллелить. И еще кратко объясняют, почему не удалось. В примере, который я использовал ключ /Qvec-report сообщил, что нет кандидатов для векторизации (no vectorization candidates). Но при диагностике GAP-ом, я получил советы, которые позволили векторизовать цикл. О чем и сообщил /Qvec-report3: …\gaptestcase.cpp(27) (col. 3): remark: LOOP WAS VECTORIZED.
Как-то так, если на пальцах.
Как-то так, если на пальцах.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Авто-векторизация и авто-распараллеливание c Guided Auto-parallelization(GAP)