cpp-ru / ideas

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

Добавить std::prefetch() функцию #574

Open klappdev opened 10 months ago

klappdev commented 10 months ago

В последние стандарты активно добавлялись вещи для оптимизации кода. Например, в C++20 были добавлены атрибуты [[likely]], [[unlikely]]. В C++23 было добавлено атрибут [[assume]], функция std::unreachable().

Одним из таких техник оптимизации является префектичинг кеша процессора.

Во многих компиляторах, это доступно в виде интринсиков. https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fprefetch https://clang.llvm.org/docs/LanguageExtensions.html#builtin-prefetch

В boost.context есть уже такая функция. https://www.boost.org/doc/libs/1_81_0/boost/context/detail/prefetch.hpp

Планируется также добавить в boost.core. https://github.com/boostorg/core/issues/136

Предлагается добавить в С++ переносимую std::prefetch() функцию.