Тензоры и фреймворки
English | 简体中文 | 日本語 | Deutsch | Русский
Документация · Вычислительные библиотеки · Руководство по программированию · 中文
1. Слои
| Слой | Компонент | Ответственность |
|---|---|---|
| Общие данные и контракты | руда-ядро | Типы, формы, устройства и контракты компиляции |
| Тензоры устройств | руда-ядро::тензор | Хранение, метаданные, размещение и макеты |
| Серверная часть устройства | руда-тензорное устройство | Отправляет тензорные операции в вычислительные библиотеки. |
| Тензор API | тензор руды | Универсальные тензорные интерфейсы бэкенда |
| Слияние | руда-слияние | Операция слияния |
| Автоматическое дифференцирование | руда-автодифференциал | Автоматическое дифференцирование |
| Модель и компоненты обучения | модель-руда, руда-нн, руда-оптим, руда-магазин, руда-набор данных | Модели, сетевые модули, оптимизаторы, хранилища и данные |
2. Тензоры устройств
RudaTensor<R> содержит клиент, дескриптор, метаданные, устройство, dtype и qparams. Дескрипторы хранения отделены от формы/шагов, а параметры квантования хранятся отдельно.
Операции низкого уровня должны проверять, что входные данные используют общее устройство, dtypes соответствуют вычислениям и квантованные данные содержат правильные параметры. Непрерывное хранилище, транспонированные представления и материализованные копии отличаются друг от друга.
См. тензорный модуль устройства для выделения, непрерывного преобразования, изменения формы, перестановки, передачи и обратного чтения.
3. NVIDIA Серверная часть
ruda-tensor-device/cuda включает ruda_tensor_device::cuda.
Без псевдонимов cuda-fusion, Cuda<F, I> DeviceBackend<CudaRuntime, F, I, u8>. Если эта функция включена, он использует оболочку Fusion. F по умолчанию — f32, а я — i32. См. cuda.rs.
Это тензорный бэкэнд, а не дескриптор драйвера CUDA API. При выборе бэкенда проверьте dtype каждой операции и требования к функциям.
4. Отправка вычислительной библиотеки
Матричные операции передаются ruBLAS, операции нейросетей — ruDNN, редукции и индексация — ruPRIM, FFT — ruFFT, генерация случайных чисел — ruRAND. См. модули диспетчеризации бэкенда устройства.
5. Разреженные тензоры, квантование и пакетное обратное чтение
ruda_tensor::api::CsrTensor<B> сочетает в себе разреженную структуру и тензоры значений с плавающей запятой посредством SparseOps. Он обеспечивает операции разреженного/плотного умножения, транспонирования, сложения, сбора, рассеяния-сложения и выборки. Он отличается от rusparse::tensor::CsrTensor<R>: первый является общим для Backend, второй — для Runtime. См. редкое руководство.
Квантование включает в себя многомерный блок scales, упаковку по неконечным осям и частичные пакеты, преобразования макета, выбранные операции индексации и объединенное квантованное обратное считывание. Логическая форма отличается от формы упакованного хранения; Кодировки FP8/FP4 не должны преобразовываться как целочисленные значения. См. квантование ядра, макеты квантованных тензоров и транзакции слияния. Покрытие операций различается по схеме.
Пакетное обратное чтение упорядочивает дескрипторы по фактическому устройству и потоку. См. тензорные транзакции.
6. Обучение и вывод модели
- Состояние обучения и сохранения: настройка бэкенда автодифференциации, обновление параметров, накопление градиентов, а также сохранение или восстановление состояния обучения.
- Загрузка и вывод модели: загрузка локальных весов, создание подсказок чата, генерация с выборкой и обработка входных изображений.
- Нативный PyTorch: autograd первого порядка на
ruda:0для нормализации, paged Attention и выбранных весов роутера; явные AdamW/GradScaler и упорядоченные градиенты истории. StaticGraph остаётся только для инференса.