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

Руководство по совместимости

English | 简体中文 | 日本語 | Deutsch | Русский

Документация · Руководство по программированию · 中文

1. Концепции CUDA

Знакомая концепция CUDA Точка входа Ruda
Обязанности хоста и устройства Хостовый код Rust и DSL ядер
Grid/block RudaCount/RudaDim
Одномерная глобальная позиция потока ABSOLUTE_POS
Выделение памяти и передача данных Интерфейсы памяти и обратного чтения ComputeClient
Компиляция и запуск ядра ruda-kernel, ruda-compiler и среда выполнения устройства
Библиотеки BLAS, DNN, FFT и разреженных вычислений ruBLAS, ruDNN, ruFFT и ruSPARSE
Коллективные коммуникации ruCCL

Это сопоставление концепций, а не взаимозаменяемых функций. Соблюдайте контракты API Ruda для владения, аргументов, синхронизации и ошибок.

2. CUDA C++ и PTX

Ruda предоставляет путь CUDA C++/NVRTC и явно выбираемый путь прямой генерации PTX. Оба выполняются через драйвер NVIDIA.

Путь компиляции CUDA C++ не обеспечивает компиляцию произвольных CUDA-проектов без изменений, полную замену CUDA Runtime/Driver ABI или прямую перекомпоновку существующих бинарных библиотек. В этом руководстве нет команды для автоматического преобразования всех CUDA-приложений.

Прямой PTX обрабатывает Kernel IR, реализованный генератором, а не произвольные входные PTX-программы. Неподдерживаемые операции не вызывают автоматический переход к другому компилятору.

3. Бэкенды и типы данных

Бэкенды различаются скалярными типами, атомарными операциями, матричными инструкциями, раскладками памяти и синхронизацией. Запросите возможности устройства, затем проверьте требования каждой операции к типам и раскладке.

Тип из общего перечисления DType не обязательно доступен для каждой операции на каждом бэкенде. Один и тот же обобщённый интерфейс Rust не гарантирует одинакового округления или производительности.

HIP использует отдельный интерфейс выполнения; номера версий набора инструкций PTX к нему не применяются.

4. Cargo и имена

Отображаемые имена библиотек, имена пакетов Cargo и имена для импорта Rust могут различаться. См. каталог вычислительных библиотек. Feature управляют доступными сочетаниями; сборка по умолчанию не включает все пути.

Фронтенд ядер использует #[ruda], RudaCount и RudaDim.

5. Версии и численная проверка

Версия исходников, lock-файл, feature, бэкенд компилятора, PTX/SM, драйвер и GPU совместно определяют конфигурацию проверки.

При замене вызова вычислительной библиотеки согласуйте раскладку, транспонирование, базу индексов, типы входов и накопления, нормализацию, особые значения и синхронизацию. Например, ruFFT дополняет длины, не являющиеся степенями двойки; это не семантически эквивалентная замена FFT произвольной длины.