1. Си / Говнокод #26780

    +2

    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, 30 Июня 2020

    Комментарии (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-ах есть.
                      Ну и бульмень стабильная относительная погрешность тоже наверняка играет роль, веса могут вылезать далеко-высоко.
                      Ответить
                      • Вот и настал тот день, когда флоаты работают быстрее царских интов...
                        Ответить
                        • не работают

                          fixed that for you
                          Ответить
                        • Та ладно вам хоронить инты и поклоняться плавающему питуху.

                          Кроме 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 бит

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

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