Рубрика «c++» - 8

Привет! Меня зовут Кирилл Колодяжный, я работаю в YADRO и продолжаю изучать машинное обучение на С++. Я уже писал, как реализовать модели для распознавания лиц на фото и для поиска объекта в пространстве с помощью computer vision. Ссылки на материалы ищите в конце статьи.

Сегодня затрону «математическую» тему и расскажу о реализации сверток: что это за операция и какие есть алгоритмы для вычисления. Приведу простые примеры с кодом, чтобы вы могли опробовать решения.

Читать полностью »

C++ шаблоны — мощный инструмент, но работать с ними бывает больно: многословные ошибки, путаница с типами и enable_if, который все усложняет. Concepts в C++20 появились, чтобы упростить жизнь разработчикам и сделать шаблонный код понятнее. В этой статье — разбор конкретного кейса: как с помощью концептов задать корректные ограничения на контейнеры, избежать ловушек с массивами и получить внятные ошибки от компилятора.


Введение

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

Также одним из условий будет, чтобы внешний вид полученных элементов можно было редактировать в QtCreator.

Все исходники в репозитории.

Критерии сравнения

Читать полностью »

Построение множества Мандельброта — классический пример чрезвычайно параллельной задачи (embarrassingly parallel problem).

Вначале мы разберем наивную реализацию, поиграемся с интринсиками (intrinsics) и, не теряя переносимости, заставим компилятор генерировать нам SIMD-инструкции. Далее добавим многопоточность и в заключение обесценим все наши старания несколькими строчками на CUDA.

Разгон Мандельброта: SIMD с бубнами, OpenMP и CUDA - 1

Читать полностью »

Воу-воу, Джонни, убери пушку! Я могу всё объяснить! В предыдущей статье про std::array мы подробно рассматривали, почему в production-ready коде он ведёт себя так же производительно, как и встроенный массив, а не медленнее, как иногда думают некоторые люди.

После написания такой статьи невольно появляется вопрос: а может ли наш добродушный сосед std::array быть даже быстрее своего дедушки времён C? Согласитесь, иногда приятно предаться вольнодумству и посмотреть, куда тебя это заведёт. Давайте сделаем это! Чем мы, в конце концов, рискуем? Не рейдом же плюсовой инквизиции!

Читать полностью »

20 лет работы над одним продуктом - 1


В феврале 2005 я выпустил первую версию своей программы PerfectTablePlan, предназначенной для планирования рассадки гостей за столами. В этом месяце ей стукнуло уже 20 лет. Тогда это был другой мир, мир Windows, условно-бесплатного ПО и CD-дисков. С тех пор очень многое изменилось, но PerfectTablePlan на сегодня уже достигла версии 7 и чувствует себя уверенно.Читать полностью »

MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 1

Добрый день, друзья!

Это моя первая статья на Хабр да и вообще где-либо поэтому жду от вас полезных комментариев для заполнения пробелов в своих навыках и знаниях. В этой статье попытаюсь подробно указать/рассказать, как я запустил MicroPython на микроконтроллере Читать полностью »

TL; DR в статье приведены алгоритмы обработки коротких битовых строк, обычно вмещающихся в машинное слово, в большей степени эти алгоритмы предназначены для обработки строк длины 32 или 64, но многие из них можно применять для SIMD инструкций или даже GPU.

Суть в двух словах

В общем то большинство рассматриваемых алгоритмов основаны на двух идеях:

  • Для строк длины 8, а иногда даже 16 можно просто подсчитать результат операций.

  • Читать полностью »

Пример паттерна Прототип в Unreal Engine - 1

В интернетах полно статей про паттерны. Но реальных примеров из живых проектов встречается немного. Понятно, что в случае с Прототипом, есть довольно популярный проектик Java Script или Lua. Но я хочу еще! Поэтому в этом посте приведу пример паттерна из Unreal Engine.

Общая информация для приличия

Прототип - шаблон проектирования, описывающий создание объектов, путем клонированияЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js