Comments 5
Простыми человеческими словами объясните что тут происходит? Прочитал все статьи по ссылкам, но всё равно мало что понял.
Чаще всего, производительность прямолинейно (точно не обратно пропорционально) зависит от эффективности векторизации. Речь идет о векторных 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.
Как-то так, если на пальцах.
Как-то так, если на пальцах.
Sign up to leave a comment.
Авто-векторизация и авто-распараллеливание c Guided Auto-parallelization(GAP)