Няшная / Говнокод #26780 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
The count is coded into a one-octet number using the following
formula:

   #define EXPBIAS 6
       count = ((Int32)16 + (c & 15)) << ((c >> 4) + EXPBIAS);

The above formula is in C, where "Int32" is a type for a 32-bit
integer, and the variable "c" is the coded count, Octet 10.

Стандарт PHGP, набайтоёблено где не ждали. Казалось бы, в чем сложность отвести один октет на базу, а другой на сдвиг? Но сишнику проще даже не объяснить происходящее в стандарте, а просто кинуть код, типа, и так понятно же.

https://tools.ietf.org/html/rfc4880#page-12

Запостил: Fike Fike, (Updated )

Комментарии (17) RSS

  • Если флоат - плавающий питух, то это - плавающий цыплёнок с 4 битами мантиссы и экспоненты.
    Ответить
    • В «Вике» есть статья про плавающего цыплёнка (правда, у него 10 битов мантиссы):
      https://ru.wikipedia.org/wiki/Число_половинной_точности
      https://en.wikipedia.org/wiki/Half-precision_floating-point_format

      Я не знаю, что им можно считать. Там же погрешность набегает шопипец.

      Это говно даже в «IEEE 754» внесли. Хорошо, что в 8087 его реализовывать не стали.
      Ответить
      • В видеокартах вроде поддерживается этот полуфлоат.
        Ответить
        • Цыплят, оказывается, ещё несколько:
          https://en.wikipedia.org/wiki/Bfloat16_floating-point_format

          Есть «IEEE half-precision 16-bit float» с 10-битной мантиссой, есть «bfloat16» с семибитной мантиссой.

          Помимо этого есть 18-битный «NVidia's TensorFloat» с 10-битной мантиссой, есть кодек «G.711» с 8-битным цыплёнком с четырёхбитной мантиссой, есть «Khronos» с 11-битным цыплёнком с 6-битной мантиссой и с 10-битным цыплёнком с 5-битной мантиссой...

          Вот тут ещё немного питушни:
          http://www.mrob.com/pub/math/floatformats.html
          Ответить
      • В мышином обучении, ЕМНИП, юзается. Там всё равно всем похуй на точность, а скорость у этого цыплёнка высокая.
        Ответить
        • Кстати, в системах с обратной связью высокая точность не требуется. Например, у зенитно-ракетных комплексов разрешающая способность канала связи между станцией наведения и ракетой очень низкая. Однако, там все ошибки корректируются «на следующей итерации»: если ракета полетела немного не туда, ей прилетает команда коррекции направления, чтобы уменьшить ошибку. Высокая разрешающая способность канала никаких преимуществ не даст: всё равно через какие-то промежутки времени траекторию нужно корректировать, потому что окружающая обстановка меняется непредсказуемо.

          В мышином обучении что-то подобное?
          Ответить
          • У дельта-сигма модулятора вообще однобитный поток. А результат не хуже чем у полноценных ЦАП/АЦП.
            Ответить
          • В мышином обучении просто не нужна особая точность, плюс обычно все параметры нормируются в [0; 1]. К тому же, урезание плавающих петухов в два раза позволяет делать (и умещать в оперативку видеокарты) ИНС с в два раза бо́льшим количеством нейронов/синапсов.
            Ответить
            • > все параметры нормируются в [0; 1]

              А зачем тогда флоаты?
              Ответить
              • Это диапазон из ℝ.
                UPD: А, понял тебя. Плавающие питухи там для весов, их-то нормировать не получится. Причём скатывание весов в NaN/Inf — распространённая проблема.
                Ответить
                • Да я понимаю, что из R. Вопрос скорее о том, почему флоаты с их нелинейной плотностью а не фикседы с равномерной. Для нейронок так важны сигналы слабее 0.000015?

                  UPD: Понятно.
                  Ответить
                  • Из-за нативной поддержки, наверное. Эмуляция фиксированных питухов будет слишком медленной, а нативно она разве что в каких-нибудь специализированных ASCII-ах есть.
                    Ну и бульмень стабильная относительная погрешность тоже наверняка играет роль, веса могут вылезать далеко-высоко.
                    Ответить
                    • Вот и настал тот день, когда флоаты работают быстрее царских интов...
                      Ответить
                      • Та ладно вам хоронить инты и поклоняться плавающему питуху.

                        Кроме FP16, там есть INT8 и даже INT4.

                        > Each T4 comes with 16GB of GPU memory, offers the widest precision support (FP32, FP16, INT8 and INT4), includes NVIDIA Tensor Core and RT

                        > когда флоаты работают быстрее царских интов...
                        А вот и хуй.

                        260 TOPs INT4 performance, 130 TOPs INT8, 65 TFLOPS FP16, 8.1 TFLOPS FP32

                        https://cloud.google.com/blog/products/ai-machine-learning/nvidia-tesla-t4-gpus-now-available-in-beta
                        Ответить
                        • > 260 для 4 бит
                          > 130 для 8 бит
                          > 65 для 16 бит

                          Хм, т.е. они все с одинаковой скоростью работают. Просто мелких чисел больше обрабатывается за раз.
                          Ответить
              • Сразу видно, что ты не математик
                Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8