CUDA 13.3 - это не просто очередной апдейт тулкита NVIDIA, а шаг к более высокоуровневому GPU-программированию.
Главное изменение - CUDA Tile теперь доступен в C++. Это модель, где разработчик описывает вычисления через тайлы, а низкоуровневые детали вроде параллелизма, перемещения данных, асинхронности и работы с памятью берёт на себя компилятор. Для C++-команд это важно: можно встраивать tile-подход в существующие CUDA-кодовые базы, не переписывая всё вокруг нового DSL.
Что ещё добавили:
- CUDA Tile C++ для более компактных и переносимых GPU-кернелов
- поддержку Hopper с Compute Capability 9.0
- CompileIQ - автонастройку компилятора под конкретные кернелы
- CUDA Python 1.0 как стабильную версию Python-интерфейса к CUDA
- обновления для checkpointing, IPC и работы с контекстами
- улучшения для tensor interoperability
Самое интересное здесь не «ещё немного быстрее», а смена уровня абстракции. NVIDIA постепенно двигает CUDA от ручного управления потоками, памятью и синхронизацией к модели, где разработчик описывает вычисления, а компилятор сам ищет эффективный путь к железу.
Для AI-инфраструктуры это особенно важно. Кастомные кернелы для attention, GEMM и инференса остаются узким местом, но писать их руками дорого и сложно. CUDA 13.3 делает этот слой доступнее для C++, Python и production-команд, которые хотят выжимать производительность без полного погружения в низкоуровневую CUDA-магию.
NVIDIA явно строит не просто GPU, а полный стек: язык, компилятор, runtime, Python-интерфейсы и инструменты автооптимизации.
https://developer.nvidia.com/blog/nvidia-cuda-13-3-enhances-gpu-development-with-tile-programming-in-c-compiler-autotuning-and-python-updates
Главное изменение - CUDA Tile теперь доступен в C++. Это модель, где разработчик описывает вычисления через тайлы, а низкоуровневые детали вроде параллелизма, перемещения данных, асинхронности и работы с памятью берёт на себя компилятор. Для C++-команд это важно: можно встраивать tile-подход в существующие CUDA-кодовые базы, не переписывая всё вокруг нового DSL.
Что ещё добавили:
- CUDA Tile C++ для более компактных и переносимых GPU-кернелов
- поддержку Hopper с Compute Capability 9.0
- CompileIQ - автонастройку компилятора под конкретные кернелы
- CUDA Python 1.0 как стабильную версию Python-интерфейса к CUDA
- обновления для checkpointing, IPC и работы с контекстами
- улучшения для tensor interoperability
Самое интересное здесь не «ещё немного быстрее», а смена уровня абстракции. NVIDIA постепенно двигает CUDA от ручного управления потоками, памятью и синхронизацией к модели, где разработчик описывает вычисления, а компилятор сам ищет эффективный путь к железу.
Для AI-инфраструктуры это особенно важно. Кастомные кернелы для attention, GEMM и инференса остаются узким местом, но писать их руками дорого и сложно. CUDA 13.3 делает этот слой доступнее для C++, Python и production-команд, которые хотят выжимать производительность без полного погружения в низкоуровневую CUDA-магию.
NVIDIA явно строит не просто GPU, а полный стек: язык, компилятор, runtime, Python-интерфейсы и инструменты автооптимизации.
https://developer.nvidia.com/blog/nvidia-cuda-13-3-enhances-gpu-development-with-tile-programming-in-c-compiler-autotuning-and-python-updates
❤4👍1🔥1
На UNIX
И из-за этого можно поймать очень неприятный эффект: если закрыть
То есть код вроде этого:
Может записать printf не в терминал, а прямо в output.txt.
Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.
Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.
stdout - это просто файловый дескриптор 1.И из-за этого можно поймать очень неприятный эффект: если закрыть
stdout, следующий открытый файл может получить тот же дескриптор 1.То есть код вроде этого:
close(1);
FILE *f = fopen("output.txt", "w");
printf("hello\n");
Может записать printf не в терминал, а прямо в output.txt.
Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.
Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.
👍17❤5🥰2
☕️ Latte: Ultra-Low Latency C++ Telemetry Framework
Latte — это заголовочная библиотека C++ для телеметрии, предназначенная для высокочастотной торговли и реального времени. Она измеряет циклы ЦП с помощью таймеров x86_64 и использует фиксированные кольцевые буферы для хранения данных, минимизируя накладные расходы.
🚀Основные моменты:
- Высокая точность измерений в наносекундах.
- Поддержка до 64 активных слотов на поток.
- Три режима измерений: Fast, Mid и Hard.
- Без динамических аллокаций во время работы.
- Статистический анализ и очистка данных от выбросов.
📌 GitHub: https://github.com/MoonFlowww/Latte
#cpp
Latte — это заголовочная библиотека C++ для телеметрии, предназначенная для высокочастотной торговли и реального времени. Она измеряет циклы ЦП с помощью таймеров x86_64 и использует фиксированные кольцевые буферы для хранения данных, минимизируя накладные расходы.
🚀Основные моменты:
- Высокая точность измерений в наносекундах.
- Поддержка до 64 активных слотов на поток.
- Три режима измерений: Fast, Mid и Hard.
- Без динамических аллокаций во время работы.
- Статистический анализ и очистка данных от выбросов.
📌 GitHub: https://github.com/MoonFlowww/Latte
#cpp
GitHub
GitHub - MoonFlowww/Latte: Latency Telemetry with ultra low overhead
Latency Telemetry with ultra low overhead. Contribute to MoonFlowww/Latte development by creating an account on GitHub.
❤🔥7👍4🔥2🎉1
🗺️ Полный роадмап C++ 2026 — от нуля до профессионала
Это не просто список тем, а пошаговый маршрут превращения новичка в профессионального C++-разработчика. Каждый уровень даёт не только перечень концепций, но и рабочие примеры кода с пояснениями «как правильно» и «как неправильно», чтобы вы сразу видели идиоматичный современный C++, а не устаревшие практики из учебников 2000-х годов.
Роадмап построен по принципу «теория рядом с практикой»: сначала вы изучаете концепцию на коде из соответствующего уровня, а затем углубляете понимание в разделе.
📚 Теория C++, где каждая тема разобрана от базовой интуиции до тонкостей, важных на собеседованиях и в продакшене. Такой подход экономит месяцы: вы не зубрите оторванные факты, а понимаете, почему язык устроен именно так.
Как пользоваться: идите по уровням сверху вниз, не перепрыгивая. Пишите каждый пример руками, ломайте его, смотрите на ошибки компилятора — именно так формируется интуиция. Параллельно решайте задачи на платформах из раздела ресурсов и читайте теорию по мере появления вопросов.
https://github.com/justxor/cpproadmap2026/tree/main
Это не просто список тем, а пошаговый маршрут превращения новичка в профессионального C++-разработчика. Каждый уровень даёт не только перечень концепций, но и рабочие примеры кода с пояснениями «как правильно» и «как неправильно», чтобы вы сразу видели идиоматичный современный C++, а не устаревшие практики из учебников 2000-х годов.
Роадмап построен по принципу «теория рядом с практикой»: сначала вы изучаете концепцию на коде из соответствующего уровня, а затем углубляете понимание в разделе.
📚 Теория C++, где каждая тема разобрана от базовой интуиции до тонкостей, важных на собеседованиях и в продакшене. Такой подход экономит месяцы: вы не зубрите оторванные факты, а понимаете, почему язык устроен именно так.
Как пользоваться: идите по уровням сверху вниз, не перепрыгивая. Пишите каждый пример руками, ломайте его, смотрите на ошибки компилятора — именно так формируется интуиция. Параллельно решайте задачи на платформах из раздела ресурсов и читайте теорию по мере появления вопросов.
https://github.com/justxor/cpproadmap2026/tree/main
👍20❤8😐2
🚀 CPrime: Новый язык программирования на основе C и C++
CPrime сочетает в себе скорость компиляции C и выразительность C++, минимизируя сложности последнего. Этот язык позволяет компилировать C-программы и многие C++ файлы, предлагая при этом удобные инструменты для структурирования кода.
🚀 Основные моменты:
- Высокая скорость компиляции, сопоставимая с C
- Поддержка объектно-ориентированного программирования
- Простота использования и совместимость с C
- Минимизация лишних сложностей C++
- Быстрая разработка и активное тестирование
📌 GitHub: https://github.com/LukeSchoen/CPrime
CPrime сочетает в себе скорость компиляции C и выразительность C++, минимизируя сложности последнего. Этот язык позволяет компилировать C-программы и многие C++ файлы, предлагая при этом удобные инструменты для структурирования кода.
🚀 Основные моменты:
- Высокая скорость компиляции, сопоставимая с C
- Поддержка объектно-ориентированного программирования
- Простота использования и совместимость с C
- Минимизация лишних сложностей C++
- Быстрая разработка и активное тестирование
📌 GitHub: https://github.com/LukeSchoen/CPrime
🤔15🤣11🍌2
This media is not supported in your browser
VIEW IN TELEGRAM
Quake сегодня исполнилось 30 лет. 🎉
Спустя три десятилетия всё ещё актуален интересен исходный код игры, которая помогла сформировать современные игровые движки, мультиплеерные сетевые технологии и культуру моддинга. 🎮
GitHub: github.com/id-software/quake
Спустя три десятилетия всё ещё актуален интересен исходный код игры, которая помогла сформировать современные игровые движки, мультиплеерные сетевые технологии и культуру моддинга. 🎮
GitHub: github.com/id-software/quake
🔥17❤5👍2🥰1
Теорема Ферма говорит: не существует целых чисел, для которых выполняется:
`a³ + b³ = c³`Её доказал Эндрю Уайлс в 1995 году - спустя 358 лет после формулировки.
Но затем Джон Регер показал забавный пример: цикл, скомпилированный через
gcc -O2, мог напечатать:Fermat's Last Theorem has been disprovedВ коде происходило signed integer overflow - переполнение знакового int. А в C это undefined behavior.
Для компилятора это значит: «такого не должно происходить». Поэтому оптимизатор имеет право строить предположения, которые человеку кажутся абсурдными.
В итоге: программа выглядит так, будто нашла контрпример к великой теореме, хотя на деле просто попала в UB.
C не опроверг Ферма.
C просто напомнил, что undefined behavior - это не ошибка выполнения, а разрешение компилятору делать почти всё что угодно.
Please open Telegram to view this post
VIEW IN TELEGRAM
😡10❤6👍6🗿2🥰1😁1
ИИ меняет не только разработку, но и дата-центры.
Когда говорят о развитии ИИ, обычно обсуждают новые модели и алгоритмы. Но по мере роста вычислительных нагрузок ограничения всё чаще возникают на уровне инфраструктуры. На infra.conf’26 Яндекс объявили, как перестраивает физическую и ML-инфраструктуру компании под новые требования.
Что меняется:
- компания переходит к концепции кампусов дата-центров мощностью до 180 МВт;
- внедряет жидкостное охлаждение для более эффективного отвода тепла и снижения энергопотребления;
- развивает внутренний сервис Dev Cluster, который ускоряет проведение ML-экспериментов и сокращает время разработки моделей.
Интересно здесь не только увеличение вычислительных мощностей. По мере развития ИИ инфраструктура всё сильнее становится частью продукта. Производительность моделей теперь зависит не только от качества алгоритмов, но и от того, насколько быстро можно предоставить вычислительные ресурсы, отвести тепло и масштабировать эксперименты.
Когда говорят о развитии ИИ, обычно обсуждают новые модели и алгоритмы. Но по мере роста вычислительных нагрузок ограничения всё чаще возникают на уровне инфраструктуры. На infra.conf’26 Яндекс объявили, как перестраивает физическую и ML-инфраструктуру компании под новые требования.
Что меняется:
- компания переходит к концепции кампусов дата-центров мощностью до 180 МВт;
- внедряет жидкостное охлаждение для более эффективного отвода тепла и снижения энергопотребления;
- развивает внутренний сервис Dev Cluster, который ускоряет проведение ML-экспериментов и сокращает время разработки моделей.
Интересно здесь не только увеличение вычислительных мощностей. По мере развития ИИ инфраструктура всё сильнее становится частью продукта. Производительность моделей теперь зависит не только от качества алгоритмов, но и от того, насколько быстро можно предоставить вычислительные ресурсы, отвести тепло и масштабировать эксперименты.
❤5👍1👏1
🚀 Библиотека ycetl для C++20: constexpr на первом месте
ycetl — это заголовочная библиотека, обеспечивающая контейнеры и умные указатели, работающие как во время компиляции, так и во время выполнения. Она предназначена для создания сложных структур данных с использованием механизма памяти, который поддерживает многотипные операции.
🚀 Основные моменты:
- Контейнеры, работающие в constexpr и на этапе выполнения.
- Умные указатели с поддержкой различных схем владения.
- Многотипная память для безопасного управления типами.
- Примеры использования, включая компиляцию простых чисел и вложенных деревьев.
- Совместимость с C++20 и современными компиляторами.
📌 GitHub: https://github.com/zokrezyl/ycetl
#cpp
ycetl — это заголовочная библиотека, обеспечивающая контейнеры и умные указатели, работающие как во время компиляции, так и во время выполнения. Она предназначена для создания сложных структур данных с использованием механизма памяти, который поддерживает многотипные операции.
🚀 Основные моменты:
- Контейнеры, работающие в constexpr и на этапе выполнения.
- Умные указатели с поддержкой различных схем владения.
- Многотипная память для безопасного управления типами.
- Примеры использования, включая компиляцию простых чисел и вложенных деревьев.
- Совместимость с C++20 и современными компиляторами.
📌 GitHub: https://github.com/zokrezyl/ycetl
#cpp
GitHub
GitHub - zokrezyl/ycetl: C++ STL like template library for constexpr
C++ STL like template library for constexpr. Contribute to zokrezyl/ycetl development by creating an account on GitHub.
👍6❤3🤔2🦄1
В C++20 у
Это удобная штука для случаев, когда поток должен просто дождаться изменения атомарного значения без
Раньше для такого обычно оборачивали OS-level примитивы вроде futex или
Теперь можно писать прямо так:
Что здесь происходит:
Другой поток делает
Главное отличие от обычного цикла проверки - поток не крутится впустую и не жрёт CPU.
Это не полная замена
Для сложных predicates, очередей и нескольких условий
Но для простого флага, состояния или lightweight-синхронизации
C++20 тихо добавил одну из самых полезных низкоуровневых фич для concurrent programming.
std::atomic появились wait() и notify_one().Это удобная штука для случаев, когда поток должен просто дождаться изменения атомарного значения без
mutex, condition_variable и ручного busy waiting.Раньше для такого обычно оборачивали OS-level примитивы вроде futex или
pthread_cond.Теперь можно писать прямо так:
#include <atomic>
#include <thread>
std::atomic<bool> ready{false};
void waiter() {
ready.wait(false, std::memory_order_acquire);
}
void notifier() {
ready.store(true, std::memory_order_release);
ready.notify_one();
}
Что здесь происходит:
wait(false) блокирует поток, пока ready остаётся false.Другой поток делает
store(true) и будит ожидающего через notify_one().Главное отличие от обычного цикла проверки - поток не крутится впустую и не жрёт CPU.
Это не полная замена
condition_variable.Для сложных predicates, очередей и нескольких условий
condition_variable всё ещё нужен.Но для простого флага, состояния или lightweight-синхронизации
std::atomic::wait часто даёт более чистый и быстрый код.C++20 тихо добавил одну из самых полезных низкоуровневых фич для concurrent programming.
🔥15👍4❤3
🎯 Продвинутое использование отладчика GDB
Приглашаем на открытый урок.
🗓 08 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Системное программирование».
Программа урока:
✔️Кратко вспомним базовое использование GDB;
✔️Написание сценариев GDB;
✔️Условные точки останова и точки наблюдения;
✔️Дампы памяти и отладка по сети.
После занятия вы будете знать:
• Как отлаживать программы на другой машине;
• Как использовать возможности автоматизации отладчика для поимки плавающих багов;
• Как отладчик работает "под капотом".;
🔗 Ссылка на регистрацию: https://otus.pw/vKKX/?erid=2W5zFJLXK5K
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Приглашаем на открытый урок.
🗓 08 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Системное программирование».
Программа урока:
✔️Кратко вспомним базовое использование GDB;
✔️Написание сценариев GDB;
✔️Условные точки останова и точки наблюдения;
✔️Дампы памяти и отладка по сети.
После занятия вы будете знать:
• Как отлаживать программы на другой машине;
• Как использовать возможности автоматизации отладчика для поимки плавающих багов;
• Как отладчик работает "под капотом".;
🔗 Ссылка на регистрацию: https://otus.pw/vKKX/?erid=2W5zFJLXK5K
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤2
В реализации RSA внутри OpenSSL почти не используется прямое модульное деление. Вместо этого там работает Montgomery reduction - алгоритм, который ещё в 1985 году предложил Питер Монтгомери.
Идея простая: в RSA постоянно нужны операции вида «умножили большие числа и взяли остаток по модулю». Обычное деление на больших числах дорогое, поэтому его стараются избегать.
Montgomery reduction переводит вычисления в специальную форму, где параметр R выбирают как степень двойки. После этого часть дорогих делений превращается в сдвиги битов и более дешёвую арифметику.
Для пользователя это незаметная деталь. Но без таких трюков современный RSA был бы намного медленнее.
Есть хороший шанс, что HTTPS-соединение, которым вы пользуетесь прямо сейчас, где-то внутри уже опиралось на эту технику.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥1