проверяется наличие AVX, и если есть, то реализация использует эти инструкции, иначе реализация совершенно другая. Хз как тестировать.
Через RuntimeInformation можно платформу узнавать. Либо забиндить в настройках проекта переменные окружения, зависящие от платформы. И потом через условную компиляцию разруливать.
короче, я сейчас делаю так: using System.Runtime.Intrinsics.X86; ... if (Avx.2IsSupported) { реализация с использованием AVX } else { обычная реализация } на Avx2.IsSupport повлиять я не могу - это константа. как протестировать обе реализации - хз. + нужно будет писать бенчмарки, там тоже нужны будут отдельные реализации: с AVX и без. вынести реализации в отдельные классы не получится, ведь эти реализации сильно привязаны к классу где они используются (так и должно быть!)
1 вариант. Запускать на разных платформах. Второй вариант через директивы условной компиляции делать
просто забей, и поменяй не константу а выражение чтобы проверить будет работать
Поддерживаю. Логичный вариант. Только на релизе поменять хорошо бы
Обсуждают сегодня