Доклады

  • Программа предварительная, в ней возможны изменения.

  • Тип доклада: Доклад

    Миллион падающих тестов, или Как мы запустили известный опенсорс-продукт на RISC-V и исправили его

    Мы развиваем программную экосистему для RISC-V, и когда перед нами встала задача предоставить математический бэкенд для искусственного интеллекта под RISC-V, мы сравнили варианты и выбрали, кажется, лучший. Но и он был не без греха, поэтому исправили его, дописали новые тесты и выложили в open source.

  • Тип доклада: Доклад

    Аптечка производительности для C/C++ серверов

    Доклад представит набор простых рецептов по значительному улучшению производительности кода на C/C++ с минимальными усилиями. Предложенные решения будут наиболее полезны для кода с интенсивной многопоточностью и большим количеством сложных сетевых операций. Хотя часто для этого требуется всего несколько точечных изменений, предложения могут увеличить производительность в N раз. Целевые области включают конкуренцию потоков, использование кучи, операции ввода-вывода. Небольшие бенчмарки продемонстрируют суть каждого рецепта.

    Аудитория: программисты на C и C++ всех уровней.

  • Тип доклада: Доклад

    О денотации: разрешение имен и его пересмотр в C++23

    Этот доклад — попытка сделать темную и мрачную область разрешения имен в C++ простой и ясной для практикующего программиста.

  • Тип доклада: Доклад

    Грязные C++ трюки из userver и Boost

    Расскажу и покажу, как создать некоторые отлично работающие C++ решения «на грани фола»: получение stack trace из любого исключения без изменения кода сторонних библиотек; подмена части механизма исключений на лету, чтобы улучшить их производительность; код с выполнением функции по адресу 0x42, чтобы делать интересные штуки на compile-time; получение имен полей структуры на этапе компиляции без макросов и кодогенерации.

    Пожалуйста, не повторяйте это в проде, не проконсультировавшись с коллегами!

  • Тип доклада: Доклад

    Корутины для начинающих

    Обсудим точки кастомизации, достаточные для работы корутин в C++. Рассмотрим несколько библиотек, которые позволяют работать с корутинами без погружения в реализацию точек кастомизации.

  • Тип доклада: Доклад

    Контракты для С++

    Обсудим текущее состояние стандартизации контрактного программирования для C++, которое планируется для следующего стандарта C++26. Поговорим, как реализовать контрактное программирование на C++ сегодня, не дожидаясь выхода C++26, и как использовать этот подход в существующей кодовой базе для повышения ее безопасности и корректности.

  • Тип доклада: Доклад

    Нецелевое использование ONNX в качестве математической библиотеки

    Модели нейросетей в формате ONNX можно использовать не только для нейросетей, но и как формат для представления графа вычислений прикладных задач, не связанных с нейросетями.

  • Тип доклада: Доклад

    Опасность устарела, неопределенность недопустима: исследуем изменения в undefined behavior в С++20/23/26

    Рассмотрю, почему в С++ много неопределенного поведения и как это влияет на безопасность. Также объясню, как современные стандарты языка уменьшают количество кейсов с UB, благодаря чему С++ становится более безопасным (пусть и не быстро, но все же).

  • Тип доклада: Доклад

    Добавляем большую языковую модель (LLM) в приложение на С++ с помощью llama.cpp на реальном примере

    Покажу, как использовать инструменты для обработки текста на основе LLM (large language model) на простых компьютерах, будь то ноутбук, ПК или сервер без GPU.

  • Тип доклада: Доклад

    Как работает профилирование

    Опишу два подхода к профилированию: инструментирование на примере PGO и сэмплирование — на perf. Кратко опишу аппаратную поддержку профилирования в некоторых процессорах.

  • Тип доклада: Доклад

    JSON в C++: трюки, хаки и Unicode

    Обсудим (почти) всё, что касается JSON и что нужно для работы с ним в C++: спроектируем тип для работы с JSON-значениями с интерфейсом, который легко использовать правильно и сложно использовать неправильно; углубимся в спецификацию JSON, реализуем экранирование и сериализацию, увидим подводные камни на пересечении JSON и Unicode. И на закуску добавим поддержку C++ аллокаторов.

  • Тип доклада: Доклад

    Back Deep to Basics: Наследование и виртуальность в C++ (Часть 2)

    Мы рассмотрим, как внутри устроены объекты в C++. Какие сложности возникают у компилятора, чтобы поддержать разные виды наследования. И, конечно, как это сказывается на производительности.

  • Тип доклада: Доклад

    Динамические библиотеки и способы ускорения их работы

    В современных операционных системах активно используются динамические библиотеки. Во время доклада расскажу о принципах их реализации в различных операционных системах и способах ускорения их работы.

  • Тип доклада: Доклад

    Автоматизация программирования в СССР: заключительная часть

    Заключительная часть цикла докладов по автоматизации программирования в СССР.

    Речь пойдет о технологиях, которые и сегодня являются передовыми в области построения компиляторов. Это смешанные вычисления, суперкомпиляция и синтез программ. Акцент в докладе, как и ранее, не на истории вопроса, а на конкретных методах и алгоритмах.

  • Тип доклада: Доклад

    SYCL: Integrated Compiler Runtime for Accelerated Deep Learning

    With the advent of custom kernel accelerations for deep learning applications, such as cuBLAS from Nvidia, or hipBLAS from AMD, this talk aims to provide a view to design an integrated compiler backend for different low-end devices. SYCL (Khronos) is a middleware which can be used to abstract specific instruction sets for different devices — providing the flexibility to run native SYCL C++ code without relying on custom APIs. We will also be looking into DPCPP (Intel's own runtime translation tool) to migrate and translate CUDA to native SYCL and perform custom accelerations for DL workloads, such as Large Language Models. 

  • Тип доклада: Доклад

    constexpr-аллокатор для контейнеров стандартной библиотеки

    С++ сообщество ждало появления constexpr std::vector и std::string в С++20. Они появились, но немного не такие, как ожидалось. В докладе рассмотрим, как сделать constexpr-контейнеры, доступные не только в constexpr-контексте, используя только возможности C++23.

  • Тип доклада: Доклад

    Применение GPU для решения задачи N тел на примере моделирования Большого взрыва и движения вещества в галактиках

    Доклад о разработке универсальной программы для решения задачи N тел на GPU с использованием Vulkan и GLSL. Акцент на модификации алгоритмов PM и P3M для эффективных вычислений в астрофизике.

  • Тип доклада: Доклад

    Как впихнуть невпихуемое, или Давайте параллелить дружно!

    Как можно увеличить пропускную способность вычислительного кластера, одной ноды или даже одного единственного приложения и какие алгоритмы мы для этого придумали — достаточно правильно настроить использование многопоточности.

  • Тип доклада: Доклад

    Коротко о Scalar Evolution: как LLVM справляется с проверками диапазонов

    Доклад о том, как компилятор на основе LLVM оптимизирует код, в том числе борется с проверками диапазонов, при помощи движка символьных вычислений Scalar Evolution.

  • Тип доклада: Доклад

    Нельзя так просто взять и автовекторизовать, или Ускоряем цифровую обработку сигналов с набором стандартных инструкций AVX-512

    На примерах оптимизации алгоритмов из жизни продемонстрирую приемы ускорения DSP-специфичного кода на SIMD с набором инструкций класса AVX-512. 

  • Тип доклада: Доклад

    Агностическая скриптовая система для игрового движка Nau Engine

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

Скоро добавим еще больше докладов

Мы активно дополняем программу. Подписывайтесь на нашу рассылку, чтобы быть в курсе.

Подписаться