Публикации
Разработка критически важного программного обеспечения требует проверки программы на соответствие ряду свойств. Это часто делается с помощью проверки модели. Однако построение проверяемой модели программы и анализ контрпримеров – непростая задача. Это можно упростить с помощью парадигмы автоматного программирования.
Существуют случаи, когда необходимо верифицировать множество программ и невозможно построить достаточно точную конечную модель среды. Представлен подход к верификации программ автоматов в таких условиях. Наше исследование основано на 800 программах-автоматах, которые решают простую задачу планирования пути. В результате мы убедились, что как минимум 231 из них доказуемо верны.
Мы представляем универсальный программный пакет для корреляционного анализа пространственных геопривязанных данных с дополнительным набором инструментов. Программное обеспечение реализовано в виде веб-сервиса и содержит набор инструментов для выполнения преобразования географических координат, интерполяции данных, картографирования, пространственной корреляции, визуализации данных и других вспомогательных функций для анализа пространственных данных.
Мы представляем FORCtool, новый онлайн-сервис для FORC-анализа. Сервис имеет расширенный функционал с рядом дополнительных инструментов для детального анализа FORC и предлагает удобный интуитивно понятный интерфейс. Важно отметить, что эффективность и скорость анализа существенно возросли за счет оптимизации процесса вычислений и использования универсального графического процессора. Кроме того, FORCtool поддерживает расширенный список форматов данных и включает инструменты для анализа предварительной обработки, конвертера единиц измерения, визуализации результатов и других расширенных возможностей обработки.
Поговорим о современных платформах для GPGPU: CUDA, OpenCL, SYCL, oneAPI и других. Обсудим производителей и тенденции развития видеокарт. Разберемся, какие задачи стоит решать с помощью GPGPU, а какие нет. Поделимся историями из жизни и покажем, что GPGPU разработки не стоит бояться.
Тренды Data Engineering: SWE, Data Modeling и Storage.
Мы представляем два онлайн-инструмента для обработки и анализа различных данных по магнитным свойствам горных пород: FORCtool – онлайн-сервис для работы с частными петлями перемагничивания первого порядка (FORC), и HystOn – сервис обработки и анализа петель магнитного гистерезиса, кривых перемагничивания в обратном поле (backfield) и кривых изотермического намагничивания (IRM).
В докладе представлено краткое описание нашей команды и обзор технологии GPGPU. Рассмотрен низкоуровневый ассемблер для видеокарт AMD и Nvidia (PTX, SASS). Особое внимание уделено ветвлению: различиям между реализацией if/if-else на CPU и GPU, включая использование регистра ветвления (EXEC) на AMD и ветвящихся операций на Nvidia. Кроме того, рассматривается алгоритм распознавания ветвления, различные виды циклов (простые, распознаваемые и развёрнутые) и их отличия в реализации между CPU и GPU (AMD и Nvidia), включая алгоритмы распознавания развёрнутых циклов для GPU.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
Оптимизация производительности кода — главная задача GPU-программиста. Мы рассмотрим применение методов переупорядочивания инструкций для ускорения compute-bound задач на CUDA.
Рассмотрим методы и алгоритмы переупорядочивания инструкций в компиляторах, попробуем это сделать самостоятельно на ассемблере, а еще попробуем добиться от компилятора более качественного переупорядочивания, без ассемблерных вставок.
Для таких манипуляций нам потребуется качественный бенчмарк, поэтому обсудим и темы увеличения точности бенчмарков.
Цель доклада — выжать из устройства еще немного производительности, когда все алгоритмические и «стандартные» оптимизации уже применены, и в ход идут разные ухищрения.
В начале поговорим о том, как происходит проектирование таких объектов и обсуждается выбор между Python и C++ с точки зрения скорости разработки и вычислительной эффективности.
После этого рассмотрим две главных задачи в трассировке: построение графа по имеющимся данным и поиск путей на графах. Также расскажу проведённую оптимизацию производительности с использованием JIT-компиляции через numba и покажу графики с бенчмарками.
В начале поговорим о том, как происходит проектирование таких объектов и обсуждается выбор между Python и C++ с точки зрения скорости разработки и вычислительной эффективности.
После этого рассмотрим две главных задачи в трассировке: построение графа по имеющимся данным и поиск путей на графах. Также расскажу проведённую оптимизацию производительности с использованием JIT-компиляции через numba и покажу графики с бенчмарками.
В начале поговорим о том, как происходит проектирование таких объектов и обсуждается выбор между Python и C++ с точки зрения скорости разработки и вычислительной эффективности.
После этого рассмотрим две главных задачи в трассировке: построение графа по имеющимся данным и поиск путей на графах. Также расскажу проведённую оптимизацию производительности с использованием JIT-компиляции через numba и покажу графики с бенчмарками.
В начале поговорим о том, как происходит проектирование таких объектов и обсуждается выбор между Python и C++ с точки зрения скорости разработки и вычислительной эффективности.
После этого рассмотрим две главных задачи в трассировке: построение графа по имеющимся данным и поиск путей на графах. Также расскажу проведённую оптимизацию производительности с использованием JIT-компиляции через numba и покажу графики с бенчмарками.
Цель доклада: показать применение эволюционных алгоритмов в инженерном ПО. Поговорим о том, как мы в Судо применяем эволюционные алгоритмы в ПО для автоматического проектирования. Немного расскажу о самой задаче, классическом подходе к ее решению и о том, как мы его улучшаем при помощи машинного обучения.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.
Доклад посвящён использованию GPU для ускорения геометрических алгоритмов в САПР. GPU давно вышли за рамки игр и нейросетей — они успешно применяются в инженерных задачах, таких как проектирование городских и промышленных электросетей. Классические алгоритмы поиска путей по графам работают, но точные расчёты требуют огромных графов, и их построение становится узким местом. Построение графа по карте местности вызывает множество геометрических задач. Мы разберём некоторые из них и покажем, как GPU помогает решать их быстрее. Доклад будет полезен и новичкам, интересующимся GPU-программированием, и опытным разработчикам, ищущим пути ускорения инженерных расчётов через параллельные вычисления.