Документация / РусскийИсходный текст ↗

Тензоры и фреймворки

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. Обучение и вывод модели