cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Поддержка run-time-cpu-dispatch #469

Open ilnurkh opened 2 years ago

ilnurkh commented 2 years ago

<Описание вашей идеи> Есть проблема - что сложно делать несколько реализаций (напирмер под sse-vs-avx) одной и той же функции. Было бы здорово уметь сказать комплияторо-линковщику:

  1. есть определяемая на старте функция
  2. вот список реализаций
  3. вот эта функция на старте (либо лениво?) выберет конечную реализацию

Главное что хочется - чтобы вызывающий код вызывал фиксированный символ, а указатель туда бы подставился прозрачно. Цель - минимизация расходов на runtim-cpu-dispatching

Заодно это поднимает вопрос чтобы в стандарте появились какие-нибудь std::cpu::have_avx512() а так constexpr варианты, а также функции или макросы std::cpu::can_have_avx512() (означает что запуск возможен на платформе с этим флагом), при std::cpu::can_have_avx512() == false гарантируется что ни один translation-unit не будет собран с -mavx512

<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше> Везде будет полезна

<Код c реализацией вашей идеи, если есть>

Полезные ссылки: