Rust
Фотография
Переписал GPU-вычисления на Rust и ускорил обработку в десятки раз. Но часть работы не окупилась
Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide.
Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи.
По замерам автора на RTX 4090, после всех изменений:
- VoxConverse dev: 1236 → 38 секунд.
- Earnings-21: 2692 → 75 секунд.
- Ошибка диаризации, DER, осталась прежней.
Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма.
А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки.
Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше.
Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений.
Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам.
https://avencera.com/
46 · 3.6K ·