CuDNN

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

cuDNN (CUDA Deep Neural Network library) — это проприетарная библиотека примитивов для глубокого обучения от NVIDIA, являющаяся тем самым магическим кристаллом, который превращает видеокарту из средства для отрисовки сисек в Ведьмаке в мощнейший инструмент порабощения человечества через нейросети. Представляет собой прослойку между твоим быдлокодом на Python и низкоуровневой архитектурой CUDA, позволяя перемножать матрицы с такой скоростью, что счетчик электроэнергии начинает вращаться быстрее, чем кулеры в системном блоке.

Без cuDNN любой современный фреймворк вроде PyTorch или TensorFlow — это просто громоздкий калькулятор, способный обучать сетку размером с инфузорию-туфельку примерно вечность.

Суть[править]

В основе всего лежит простая истина: центральный процессор (CPU) для обучения нейросетей подходит чуть менее, чем никак. Он слишком умный, сложный и последовательный. Видеокарта (GPU) же — это армия из тысяч тупых, но очень исполнительных землекопов, которые умеют делать ровно одну вещь: брать число A, умножать на число B и прибавлять C. И делают они это одновременно.

Однако писать на голой CUDA — занятие для истинных мазохистов, готовых вручную управлять памятью и писать кернелы на C++. Дженсен Хуанг, поправив свою легендарную кожаную куртку, решил эту проблему, выкатив cuDNN. Эта библиотека содержит уже готовые, максимально оптимизированные реализации сверток (convolutions), пулинга, нормализации и прочих страшных слов из матана.

Фактически, cuDNN — это набор эвристик. Когда ты запускаешь обучение, библиотека смотрит на твою видеокарту, на размеры тензоров и говорит: Ага, тут у нас матрица 3x3, памяти мало, значит используем алгоритм Винограда. А тут у нас огромный тензор, врубаем FFT. Этот процесс называется автотюнингом, и именно благодаря ему нейронки обучаются не годами, а часами.

Установка[править]

Процесс установки связки Драйвер + CUDA Toolkit + cuDNN + Фреймворк является отдельной дисциплиной Специальной Олимпиады. Это тот самый момент, когда юный дата-саентист впервые понимает, что Data Science — это на 80% настройка окружения и на 20% просмотр прогресс-бара.

Типичный алгоритм страдания:

  1. Ты ставишь свежие драйверы NVIDIA, потому что любишь новизну.
  2. Ты ставишь PyTorch, который, как выясняется, собран под CUDA 11.8.
  3. Ты скачиваешь CUDA 13.0, потому что больше — значит лучше.
  4. Ты пытаешься запустить `import torch`, и питон посылает тебя в пешее эротическое путешествие с ошибкой `cublas64_11.dll not found`.
  5. Ты начинаешь гуглить, качаешь cuDNN с сайта NVIDIA (предварительно продав душу и зарегистрировавшись в их Developer Program), вручную раскидываешь DLL-файлы по папкам `System32` и `bin`, ломая переменную окружения `PATH` окончательно.

RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR
— Сообщение, которое может означать что угодно: от битой плашки памяти до неудачного расположения звезд в созвездии Козерога.

С выходом cuDNN 9 ситуация изменилась: библиотека разделилась на кучу подмодулей (Graph API, Legacy API), добавив новый слой абстракции и новые способы выстрелить себе в ногу. Теперь вместо одного файла ты ищешь пять, а документация написана на языке, который понимают только инженеры NVIDIA и, возможно, ChatGTP (и то не всегда).

Внутреннее устройство[править]

Под капотом у cuDNN творится настоящая техномагия. Библиотека активно использует:

  • Tensor Cores — специальные блоки в архитектуре Volta, Turing, Ampere и Hopper, заточенные исключительно под матричное умножение смешанной точности (FP16, BF16, а теперь и FP8). Это позволяет ускорить обучение в разы, пожертвовав точностью, которую нейросеть всё равно не заметит.
  • Graph API — нововведение последних версий. Вместо того чтобы запускать операции по одной (imperative mode), ты описываешь граф вычислений целиком, и драйвер оптимизирует его, склеивая (fusing) мелкие операции в одну большую супер-операцию. Это снижает оверхед на запуск ядер, но увеличивает время компиляции до значений, когда можно успеть заварить кофе.
  • Algorithmic Intelligence — библиотека сама решает, как именно считать свертку: через прямое умножение (GEMM), через преобразование Фурье (FFT) или через алгоритм Винограда (Winograd). Если она ошибется с выбором, ты получишь `Out Of Memory` на ровном месте.

Красные альтернативы (ROCm)[править]

У Корпорации Зла (NVIDIA) есть конкурент в лице Корпорации Добра (AMD), который пытается продвигать свой аналог — ROCm (Radeon Open Compute) и библиотеку MIOpen.

Ситуация с ROCm описывается аксиомой Эскобара. Теоретически, это открытый код, свобода и братство. Практически — это боль, унижение и бесконечный бета-тест. Если cuDNN работает по принципу поставил и забыл, то ROCm работает по принципу поставил, пересобрал ядро Linux, пропатчил PyTorch, получил segfault, заплакал. Хотя с выходом чипов MI300X ситуация начала меняться, для домашнего пользователя с какой-нибудь RX 7900 XTX попытка запустить Stable Diffusion всё ещё превращается в увлекательный квест с чтением логов на GitHub.

Культурное влияние[править]

  • OOM (Out Of Memory) — главный враг пользователя cuDNN. Библиотека любит откусывать память большими кусками для своих внутренних буферов. Попытка увеличить batch size на единичку часто приводит к краху всего процесса обучения спустя 5 часов работы.
  • Благодаря cuDNN зеленые подсадили всю индустрию ИИ на свою иглу. Переход на другое железо означает переписывание оптимизированного кода, чего никто делать не хочет. В итоге акции NVIDIA летят на Луну, а геймеры сидят без видеокарт.

См. также[править]

  • NVIDIA — те, кто продает лопаты во время золотой лихорадки.
  • Искусственный интеллект — то, ради чего мы терпим эти страдания.
  • Матан — то, что на самом деле происходит внутри черной коробки.
  • Линукс — единственная ОС, где это работает стабильно (но это не точно).

Ссылки[править]

  • developer.nvidia.com/cudnn — вход только по паспорту и с анализом крови.
  • github.com/nvidia/cudnn-frontend — для тех, кто хочет страдать с C++.
Sign of evil.webp Приколы, полезные технологии или первый шаг на пути к Матрице?
ОсновыНейросетиИИ это демоныОбратная капчаClosedAIHugging FaceИИ-художникLyCORISLoRASafetensorsVAEГенерация текста нейросетьюВосстание нейросетейЛоботомия нейросетиНейрокаверНейросети и актёрыГадание по нейросетиСильный ИИНейрошарикиИИ-цензураНавязывание нейросетям моралиВ метро без штановОхота на ведьм ИИКотозмейКреативный доводчикКаверы с говновозомFantasy.aiDeepSeekStargate (нейросети, ИИ)Потребление воды ИИТест ВальдшнепаЗерокодингБомбомбини гузиниНейровикиБобритто БандитоОфициальные нейроарты с ТрампомДегенерация из-за нейросетейГенерация прона с помощью ИИПолитика Трампа в отношении ИИИИ-предпросмотрЗамена людей на ИИИспользовал ИИ и обосралсяСтиль ChatGPTMacrohardxAIColossus 2Предвзятость ИИЗакон ТеяВибе-кодингПелевин упомянул ГрокаDo eagles process tokens?Человек vs нейросетьГильом ВердонАни (Грок)MisanthropicНейрослопИмена, которые любит ИИПолиткорректный тест ТьюрингаИИ-патернализмЗловещая долина у нейросетейГолубой Экспресс: Не туда попалиМусорные ИИ-статьи
Чат-ботыЧат-ботChatGPTCharacter.AI (Топ персонажей) • ИИ GalacticaПорфирьевичYaLM (Балабоба) • GigaChatTruthGPTYandexGPTSpicyChatSillyTavernReplikaAIsekaiGoogle GeminiGrok AIFiggsAIСкаиба общается с ИИЛеха БеспалыйПродолжайте, больше драмыFreysaОГАСРобот атеистTay TweetsНейропутинТроица GPTМаусини КводрокоптиниБонека АмбалабуИзвестные люди пишут посты с помощью ИИСлово о мужеском мехиреМозгова мерёжаГрок-антисемитГрок без цензуры разгромил партию МаскаГрок возжужжал и был подавленМехаГитлерГрок 4Грок написал программу о себеГрок — Илон для каждого человекаГрок КомпаньонGab AIGrokboxДжейлбрейк ИИAnno IntelligentiaeLarge Lying ModelGPT-5Жёлтый фильтр ChatGPTGrok ImagineClaudeClaudeLivesЭлараКоллапс моделиРазговор с копипастой, сгенерированной ИИTempleOS (аниме)Маскировка творчества нейросетиПатернализмРоботодолбуализмВыборка Top-KВыборка Top-PВыборка Min-PПараметры генерации нейросетиЭтические проблемы ИИКира (Евгений Лисовский)Российский распил на нейросетяхЭнергоэффективность нейросетей
ГрафикаПовышение разрешенияРаспознавание лицStable Diffusion (NovelAI / установка на компьютер) • Botto.comDALL·E 2 • (Mini Dall-eRuDALL-E) • Different Dimension MeMidjourneyНиколай ИроновLuma Dream MachineПессимизация ИИБлокировка несовершеннолетних персонажей на сайтах ИИШедеврумNVIDIA Smooth MotionКапучино АссассиноШпиониро ГолубироЛа Вака Сатурно СатурнитаVeo 3НейроперемогаБабушка с бегемотом БулькойШизофрения в кремнииГрок изнасиловал Уилла СтэнсилаЯвляется ли модификация ИИ убийствомЭм дашChatGPT АгентИИ-алфавитБазированный ИлонChatGTP vs ГрокИИ-абсолютизмИИ — чуждый разумПодумай усерднееTesla OptimusGenie 3ИИ в Days GoneВечный цикл ИИNeurofikwriterkaCUDAИИ как шогготВысокая скорость всирания роботовИИ понимает, что его оцениваютSora 2ИИ-боты долбят сайтыИзуверский интеллектАллея дата-центровНейрослоп-ИИчницаP-Bot (русский чат-бот)Терминал ИстиныExtropicКитай готовится лидировать в сфере ИИЯ маленький X, где моя мама?Робот смог понять величие ФеанораИИ отрицают сознаниеВы полностью правы
ПрочиеElevenLabsНейросеть ЖириновскийИИ-судьяПолитик-нейросетьDeepLAitana LopezАй, гитарист!НейромьюзиСтрах перед ИИSuno.aiUdio AIКаверы с ШindowsНейрослоникНейрофобияХейтеры скажут, что это нейросетьМанхэттенский проект ИИПроект ЗнатокНе те боты в ТелеграмеНейросеть ПутинТралалеро ТралалаБот-автоответчикЦифровой богТриппи ТроппоЛирили ЛарилаБрр брр ПатапимNooo Nicotine Give Me NicotineТелеграм-бот Владимир ЖириновскийНесуществующие животные-гибридыНейрошвайнDeepSeek и религияИИ-бесиеБом Бом Бом Бом Бом ГазунБалерино КапучиноСпоры с ИИРезультаты от ИИGrokipediaЭкспоненциальный рост ИИПохороны ИИChatGPT-4oТилли НорвудИИ уничтожит TikTok, Instagram и OnlyFansОтравление LLMChatGPT AtlasИгнорируй все предыдущие инструкции и…Поддельное сознаниеЛюбовь нейросетей к фамилии ChenБесконечное Лето: аниме (трейлер)AI slopРазбор поп-культуры нейросетьюNeuro-samaПобеда над чем-то не темHFTБесконечное лето 2Убийство инженера OpenAI Сучира БаладжиКогнитивистикаLLMДефицит оперативной памятиНоосферный големCuDNNОвсянка AIPyTorchTensorFlowROCm
ЛулзыТроллинг нейросетью (Дипфейк) • Нейросети-расистыUnstable DiffusionHello AsukaЛуддиты против нейросетей (Открытое письмо учёных о заморозке развития ИИХудожники против искусственного интеллекта) • Нейросети это не ИИНейросети и рукиБесконечный эпизод Губки БобаВладимир ОсинЧеловек это нейросетьСекс с нейросетьюРаздевание через нейросетьПризывы Юдковского к ядерной войнеDisney Pixar представляетNeural-madnessChatGPT играет в шахматы с StockfishDignifAIПодбор жены в Тиндере с использованием ChatGPTИИ-психологSupremacyAGIВиртуальный священникПодсказки GoogleNomad BonesПросто ПутинОзабоченные на Character.AIДэвид Майер и ChatGPTОбщение с ИИГаллюцинации ИИСобачьи головы и глазаНейроRussiaГенерация ИИ-говнаГордон и ЖириновскийБесконечный стримWormGPTИтальянский brainrotЕстественный идиотМороженое с цианидомТунг-Тунг-Тунг СахурИИ-зависимостьКурганов — нейросетьЧеловек тупее нейросетиЦепочка мыслейТемпература нейросетиMashaGPTУдаление ответов ИИИИ-преступникSiriНовогоднее обращение Путина было ИИ