Разработка DSP-библиотеки / Низкоуровневые оптимизации / Программирование в 80-90-е

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 62

  • @andreinhotep8102
    @andreinhotep8102 หลายเดือนก่อน +1

    Это очень крутое интервью, большое спасибо! 😍

    • @ultimate_engineer
      @ultimate_engineer  หลายเดือนก่อน +1

      Рады, что понравился наш гость!

  • @ДмитрийТоропов-й6т
    @ДмитрийТоропов-й6т 4 หลายเดือนก่อน +1

    Чего только на ютубе не встретишь. Спасибо! Видео огонь!

  • @abyssjumper
    @abyssjumper 3 หลายเดือนก่อน +1

    Ах, как же было круто с Игорем работать!

  • @yettechnicalchannel
    @yettechnicalchannel 4 หลายเดือนก่อน +6

    Спасибо за интервью, помогает вспомнить что делал в университетское время... Если до сих пор работают такие люди - еще не все потеряно )

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน

      Спасибо вам! Нам тоже радостно работать бок о бок с такими профессионалами!

  • @Slesar.
    @Slesar. 4 หลายเดือนก่อน +6

    Елы палы, 30 лет в программировании, но только правда в основном прикладных задач, свое время от нечего делать наизусть учил книжку по процессорам Интел пятого поколения, правда в реальной жизни эти предметные знания так и не пригодилось, а сейчас даже половину сказанного плохо понимаю, о чем дядька говорит.
    Собственно, от программирования ПК давно ушел в область программирования МК, а теперь еще и ПЛИС, там интересней, по тому что в одиночку можешь делать и сопровождать готовые проекты под МК, считай все время делать свои собственные почти уникальные мини системы, это доставляет больше удовольствия. А программирование реальных приложений ПК, это в основном командная работа, что меня никак не привлекает.

  • @taraslitvinenko8651
    @taraslitvinenko8651 4 หลายเดือนก่อน +6

    Большое спасибо, за такие интервью, очень интересно 😊

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน

      Рады, что вам понравился выпуск!

  • @DAlexMaster
    @DAlexMaster 4 หลายเดือนก่อน

    Как правильно заметил Астахов про оптимизацию алгоритмов свёртки сигналов посредством перехода из времЕнной области в частотную (ДПФ) и обратно, существенно сокращается время вычислений прохождения сигнала через фильтр. Гениальный подход, придуманный много десятилетий назад, позволяющий строить менее требовательные к аппаратному обеспечению системы. Ещё будучи студентом восхищался такими фокусами с преобразованием Фурье, особенно при взятии "неберущихся" интегралов :)

  • @usergnusmas6879
    @usergnusmas6879 4 หลายเดือนก่อน +14

    Вот, это настоящий инженер. Интересно, чем занимаются такие люди.

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน +1

      Спасибо! Стремимся выбирать интересных гостей!

    • @MaruiInfantry
      @MaruiInfantry 4 หลายเดือนก่อน +2

      Ничем. Они кодили в те времена, когда ты приходишь и на Си + asm пишешь такой говнокод, что ужас. Всё в монолитах и экстернах. Пишет какое-то Фурье или FFT на массивчиках. Больше ничего. Скорее всего он не сможет написать SQL-запрос даже для простейшей СУБД. Не говоря уже о том, чо NoSQL или темболее NewSQL.
      Возможно он из головы напишет какой-то FFT на C + SIMD, но это уже не нужно.

    • @usergnusmas6879
      @usergnusmas6879 4 หลายเดือนก่อน +2

      @@MaruiInfantry на самом деле печально, что такие люди мнение востребованы на рынке труда, мне кажется, это несправедливым. Ведь они обладают уникальным опытом.

    • @z140140
      @z140140 4 หลายเดือนก่อน +4

      @@MaruiInfantry мы например пишем те самые sql-движки :) или те же FFT, которые улучшают качество твоих фоток. или библиотеки deep learning, которые используют для LLM

    • @z140140
      @z140140 4 หลายเดือนก่อน

      @@usergnusmas6879 они не востребованы в небольших компаниях. в янлексе или вк такие люди уже есть. в гугле или ms их сильно больше. плюс есть технологические стартапы, типа clickhouse

  • @evgeniybeschastnov4627
    @evgeniybeschastnov4627 3 หลายเดือนก่อน

    Я тоже вводил бинарный код переключателями в Политехе. И тоже дебажил на бумажке. Замечательное было время!

  • @nangelo0
    @nangelo0 4 หลายเดือนก่อน

    Очень крутой выпуск!!!

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน

      Спасибо! Рады, что было интересно!

  • @jackkatch3839
    @jackkatch3839 18 วันที่ผ่านมา

    Наш человек! Я не профессиональный программист, но тоже приверженец Швейцарской школы. Пишу в текстовом редакторе, использование отладчика считается "дурным тоном" (это конечно не аксиома).

  • @nikolaykozlov4888
    @nikolaykozlov4888 4 หลายเดือนก่อน +1

    Как же круто!

  • @z140140
    @z140140 4 หลายเดือนก่อน

    1. у dec были только 12, 16, 18, 32, 36 и 64-битные машинки. а 24-битным был, например, первый миник cdc
    2. первая реализация бейсика была компилирующей, многопользовательской, со встроенным многопользовательским редактором и требовала для работы двух компов с памятью тоже несколько десятков КБ
    3. у P4 был именно кеш декодированных инструкций (Trace cache), а декодирование шло по одной инструкции за такт

  • @kuqmua755
    @kuqmua755 4 หลายเดือนก่อน +1

    Интересно. Спасибо

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน +1

      Приятно! Спасибо вам!

  • @pchelnick
    @pchelnick 3 หลายเดือนก่อน

    Ida Pro - дизассемблер. Видимо путаете с SoftIce, который являлся системным debugger-ом

  • @sergeykirdyankin7027
    @sergeykirdyankin7027 4 หลายเดือนก่อน +2

    IIR без обратной связи это как? Хотелось бы посмотреть на блок схему, и чуть подробнее о перерасчёте коэффициентов. Статьи на эту тему не публиковали, где нибудь на IEEE?

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน +2

      Статью такую не готовили ещё, но спасибо за идею! Если опубликуем, то пришлем в эту ветку ссылку :)

  • @alexji4654
    @alexji4654 4 หลายเดือนก่อน

    Помню, когда телекоммуникационный доступ появился (примус), мой товарищ - он был старше на 3 года, посетовал, что терминалы развращают, мол, когда на перфокартах работали, программы вылизывали до последнего символа. Хотя на отдел нам давали 45 мин машинного времени...

  • @crash1504
    @crash1504 4 หลายเดือนก่อน

    Ничо не понял, но очень интересно! Выпуск кайф

  • @MauwTong
    @MauwTong 4 หลายเดือนก่อน

    The best video

  • @101picofarad
    @101picofarad 4 หลายเดือนก่อน +3

    Если ИИ помог генерализовать математику - значит математик был не очень сильным - кто-то генерализовал до него и дал почитать нейросети ;)

  • @fhtagnfhtagn
    @fhtagnfhtagn 4 หลายเดือนก่อน +2

    Народ, объясните, что за ботва с AVX2 и AVX512, они там совсем обленилсь?! Вот раньше был MMX, на нём были унпаки: bw, wd, dq. Потом MMX удвоился до SSE2, на него перенеслись те же унпаки с той же логикой. А последующие удвоения до AVX2 и затем до AVX512 старую логику не сохранили. Неужели так сложно было? Раньше как-то справлялись, а теперь почему-то нет. Теперь там работа идёт с отдельными 128-битными блоками. Одна половина не знает, что делает другая. Если на AVX2 логику унпаков можно починить, добавив парочку _mm256_permute2f128_si256(), то на AVX512 подобного, получается, вообще нету!

    • @karel.77
      @karel.77 4 หลายเดือนก่อน +1

      Тебе к мужику с видео надо...

    • @FULLTILTSWIFF
      @FULLTILTSWIFF 4 หลายเดือนก่อน +2

      Одной из ключевых особенностей AVX-512 является введение маскирования. Маскирование позволяет выполнять операции над выбранными элементами вектора, игнорируя остальные. Это даёт программистам больше контроля над тем, какие данные обрабатываются, и может помочь оптимизировать вычисления, избегая ненужных операций.
      Пример использования маскирования в AVX-512:
      __m512i a = _mm512_set1_epi32(10); // Вектор A заполнен числом 10
      __m512i b = _mm512_set1_epi32(20); // Вектор B заполнен числом 20
      __mmask16 mask = 0b1010101010101010; // Маска для выбора каждого второго элемента
      // Сложение с использованием маски: только элементы, соответствующие маске, будут сложены
      __m512i result = _mm512_mask_add_epi32(a, mask, a, b);
      В этом примере, только элементы вектора a, которые соответствуют маске mask, будут сложены с соответствующими элементами вектора b.
      Также AVX-512 вводит операции с разреженными данными и конфликтные инструкции обнаружения, которые могут быть полезны для оптимизации алгоритмов с непредсказуемым доступом к памяти.
      Использование векторизации для умножения двух матриц может быть реализовано следующим образом:
      void matrix_multiply_avx512(float* A, float* B, float* C, int N) {
      for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++) {
      __m512 sum = _mm512_setzero_ps();
      for (int k = 0; k < N; k += 16) {
      __m512 a = _mm512_load_ps(A + i * N + k);
      __m512 b = _mm512_load_ps(B + k * N + j);
      sum = _mm512_fmadd_ps(a, b, sum);
      }
      _mm512_store_ps(C + i * N + j, sum);
      }
      }
      }
      Маскирование в AVX-512 позволяет выполнять операции только над теми элементами данных, которые соответствуют определённому условию. Это может быть полезно, например, при обработке данных с пропусками или при выполнении операций, которые должны быть применены не ко всем элементам массива.
      __m512i data = _mm512_load_epi32(...); // Загрузка данных
      __mmask16 mask = _mm512_cmp_epi32_mask(data, _mm512_set1_epi32(0), _MM_CMPINT_NE); // Создание маски для ненулевых элементов
      __m512i result = _mm512_mask_add_epi32(_mm512_set1_epi32(1), mask, data, _mm512_set1_epi32(100)); Прибавление 100 только к ненулевым элементам
      AVX-512 вводит специальные инструкции для работы с разреженными данными, что может быть полезно в областях, где данные естественным образом разрежены, например, в графовых вычислениях или при обработке больших наборов данных с множеством пропусков.

    • @z140140
      @z140140 4 หลายเดือนก่อน

      1. avx2 был оптмизирован под реализацию на двух отдельных 128-битных EU, поэтому в нём такая ебанутая логика
      2. в avx512 вроде есть универсальный шафл, его недостаточно?

  • @michealmltefive5510
    @michealmltefive5510 4 หลายเดือนก่อน

    Я только Basic на MSX застал в 8х г. Ассемблер до сих пор не освоил.

  • @Kantor2209
    @Kantor2209 4 หลายเดือนก่อน

    PDP 11, сиречь Электроника 60.
    Писал в кодах, прикольно.
    Такие фокусы можно было творить.
    А что, полный доступ, делай что хошь.

  • @evgeniykorniloff9974
    @evgeniykorniloff9974 4 หลายเดือนก่อน

    arm архитектуру и оперативную память на тот же кристалл. И никаких конвейеров или кешей. Микропрограммы тоже в оперативку. Скорость +20х и немного отставание из за конвейеров. В целом - чуть лучше интела и дешевле и частоты тактовой хватит. А для PC программ - эмулятор.

  • @ВиталийЛазарев-х7у
    @ВиталийЛазарев-х7у 4 หลายเดือนก่อน

    кто в курсе? что за код на интенсиках,? что за интенсики?

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน

      Речь про интринсики (intrinsic). Вот здесь неплохо объясняют: ru.stackoverflow.com/questions/621215/Что-такое-интринсики-intrinsics/621239#621239

  • @101picofarad
    @101picofarad 4 หลายเดือนก่อน

    Векторизация - основной метод ускорения потому, что это фактически перестройка задачи под параллельную архитектуру. Такую задачу легко автоматически раскидать на множество исполнителей.

    • @MaruiInfantry
      @MaruiInfantry 4 หลายเดือนก่อน

      Уже нет. Щас всё на GPU считают уже лет 15+. CUDA вышла в 2007 году.

    • @101picofarad
      @101picofarad 4 หลายเดือนก่อน

      @@MaruiInfantry а на гпу не используется векторизация???

    • @VRchitecture
      @VRchitecture 4 หลายเดือนก่อน +1

      @@101picofarad О чём вы? Всем же известно, что если исполнять код на GPU, предварительно сдобрив CUDA, то получим топ перформанс. Оптимизаций не требуется от слова совсем, главное - верить в технологию - и она не подведёт👌🏻

    • @101picofarad
      @101picofarad 4 หลายเดือนก่อน

      @@VRchitecture матлаб мне сказал что мой кривой код на амд 7840hs выполняется быстрее чем на куде 3070 ;)
      (наверное матлаб не правильно верит)

    • @VRchitecture
      @VRchitecture 4 หลายเดือนก่อน

      @@101picofaradвсё зависит от задачи. Вполне реальная ситуация - CPU обсчитывает данные медленнее, но это компенсируется более быстрым их считыванием из памяти и записью результата обратно.
      В любом случае, NVIDIA + CUDA круче всех по определению (ну зачем маркетологам врать?)

  • @ДмитрийТоропов-й6т
    @ДмитрийТоропов-й6т 4 หลายเดือนก่อน

    "Учи ассемблер" - а типа вариант был вместо ручного заполнентя регистров через переключатели код на бейсике подкинуть? 🤣

  • @101picofarad
    @101picofarad 4 หลายเดือนก่อน +1

    Не эффективных математических алгоритмов не бывает - они все зависят от исполняющего это калькулятора. Т.е. всегда можно подобрать такую архитектуру, где "не эффективный" алгоритм будет быстрее чем другой.

  • @VRchitecture
    @VRchitecture 4 หลายเดือนก่อน +1

    Я понимаю, что это не намеренное, но из-за постоянных усмешек складывается впечатление, будто человека пригласили, чтобы над ним поугарать. Такое себе

    • @iamdozerq
      @iamdozerq 4 หลายเดือนก่อน +3

      Он рассказывает жесть, она звучит как настоящий анекдот, она вызывает сильный шок и удивление. В другой ситуации они бы плакали от того что он говорит, а тут снимают состояние смехом. И явно же не над ним, что за бред.

  • @наталиячурилова-е6й
    @наталиячурилова-е6й 4 หลายเดือนก่อน +2

    ведущим лучше молчать или кивать

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน +1

      Предвосхищаем следующие комменты: "Ведущие воды в рот набрали, нечего сказать?" ))

  • @Deletedeletedelete
    @Deletedeletedelete 4 หลายเดือนก่อน

    Тру

  • @nikolaykozlov4888
    @nikolaykozlov4888 4 หลายเดือนก่อน

    Хочу в Ядро!

    • @ultimate_engineer
      @ultimate_engineer  4 หลายเดือนก่อน

      Заглядывайте сюда: careers.yadro.com ;)

    • @nikolaykozlov4888
      @nikolaykozlov4888 4 หลายเดือนก่อน

      @@ultimate_engineer заглядывал, не взяли :-)