DarkContact
@DarkContact
Программист C++

Как выбрать функцию в зависимости от возможностей процессора?

int sum_scalar() {/*...*/}
int sum_sse2() {/*...*/}
int sum_avx2() {/*...*/}


У меня есть 3 варианта функций и мне нужно вызывать в коде наиболее производительную в зависимости от наличия инструкций в процессоре. Как это можно сделать? Интересует не конретно как достать значение из CPUID и проверить наличие инструкции, а подход в целом. Ведь как я понимаю чтобы корректно определить какую из функций вызывать проверка должна быть в рантайме, т.к. у процессора может отсуствовать поддержка инструкций avx2 к примеру. И что будет если компиляция проходит на машине на которой нет avx2 инструкций?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы