Пишу сейчас математическую библиотеку. Планируется сделать при первом запуске будущей программы тест на совместимость процессора с теми или иными SIMD-инструкциями. В связи с этим возникают два небольших вопроса:
1. Как лучше организовать тест процессора. Т.е. нужно ли кидать результаты теста в отдельный файл и при каждом запуске считывать все данные с него и уже после этого использовать нужную SIMD-инструкцию? Или же при каждом запуске будет производиться тест и уже на основании этого теста будет использована наибыстрейшая инструкция?
2. Есть ли смысл писать библиотеку с поддержкой MMX? Поддержку SSE, SSE2, SSE3, 3dNow!, наверное, нужно обязательно. Просто кто-то (уже не помню) мне говорил, что на некоторых машинах MMX работает чуть-чуть быстрее, чем SSE.
3. Поддерживают ли процессоры AMD что-нибудь, кроме 3dNow!?
Про CPU-скиннинг - я знаю:) Это был вопрос к автору, так как для него (CPU-скиннинга) нужна быстрая математика. Да даже и для него не думаю, что надо замарачивацца.
>а если я пишу мат-либу как отдельную библиотеку, которая является по сути отдельным проектом?
Если так - то да. Но аффтар как я понял (см выше) не так собираеццо поступать.
Велосипеды рулят, и если тебе нужен опыт в низкоуровниевом прогинге - пажалста. Просто сейчас, как я понял, человек решил написать библу себе для проекта. Для среднего уровня проекта вовсе не нужна такая математика, тем более с нуля, имхо.