Closed ilnurkh closed 1 year ago
До С++ 98, по моему, в Borland C++ 3.1 был тип small как раз half repression 16 битный и математическим со-процессором поддерживался. В стандарте имеем только float, double и long double, как я понимаю потому как десктопные и серверные CPU и GPU в массе своей такой тип не поддерживают. Но вот мобильные GPU как раз поддерживают такой тип.
сейчас почти всё кажется поддерживает уже cat /proc/cpuinfo | grep f16
Работа уже идёт https://wg21.link/p1467
Добавили std::float16_t и std::bfloat16_t
в каком стандарте оно появится?
<Описание вашей идеи> Сделать поддержку этого типа в языке. Отдельно стоит прописать неоднозначность операций. (можно поднимать до fp32 и после операции опускать назад, а можно так не делеть. Можно делать так для цепочки операций, а можно делать усечение после каждой). В общем сложностей много, надо начать с этим как-то работать.
<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше> Весь нейроночный ml на нём. Пора уже и поддержать
<Код c реализацией вашей идеи, если есть> https://github.com/catboost/catboost/tree/master/library/cpp/float16
Полезные ссылки: