cpp-ru / ideas

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

Float16 как builtin тип #470

Closed ilnurkh closed 1 year ago

ilnurkh commented 2 years ago

<Описание вашей идеи> Сделать поддержку этого типа в языке. Отдельно стоит прописать неоднозначность операций. (можно поднимать до fp32 и после операции опускать назад, а можно так не делеть. Можно делать так для цепочки операций, а можно делать усечение после каждой). В общем сложностей много, надо начать с этим как-то работать.

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

<Код c реализацией вашей идеи, если есть> https://github.com/catboost/catboost/tree/master/library/cpp/float16

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

incoder1 commented 2 years ago

До С++ 98, по моему, в Borland C++ 3.1 был тип small как раз half repression 16 битный и математическим со-процессором поддерживался. В стандарте имеем только float, double и long double, как я понимаю потому как десктопные и серверные CPU и GPU в массе своей такой тип не поддерживают. Но вот мобильные GPU как раз поддерживают такой тип.

ilnurkh commented 2 years ago

сейчас почти всё кажется поддерживает уже cat /proc/cpuinfo | grep f16

apolukhin commented 2 years ago

Работа уже идёт https://wg21.link/p1467

apolukhin commented 1 year ago

Добавили std::float16_t и std::bfloat16_t

ilnurkh commented 1 year ago

в каком стандарте оно появится?