Участие в разработке Ruda
English | 简体中文 | 日本語 | Deutsch | Русский
Область участия
Участие охватывает вычислительный программный стек: компиляторы, среды выполнения, ядра, вычислительные библиотеки, тензоры, интеграцию моделей, документацию и тесты.
Разделяйте обязанности библиотек, не дублируйте операции вычислительных библиотек в тензорном фреймворке. Рефакторинг не должен удалять функциональность или менять dtype, порядок операций, обработку ошибок и время жизни ресурсов. Точно сообщайте о неподдерживаемых путях, а не переключайтесь молча на CPU, другой бэкенд компилятора или меньшую точность.
Сообщения о проблемах
Укажите версию исходников, ОС, инструментарий Rust, версии GPU/драйвера/Toolkit, включённые feature, команды воспроизведения, минимальные входные данные, фактические и ожидаемые результаты. Перед приложением журналов удалите токены, персональные пути, а также модели и данные, не разрешённые к раскрытию. Не отправляйте веса моделей и кеши сборки.
Отправка изменений
- Перед редактированием проверьте обязанности компонентов и существующие тесты. Для межуровневых изменений объясните зависимости и контракты вызовов.
- Сохраняйте авторство, авторские права, лицензии и происхождение стороннего кода. Не заменяйте лицензионные декларации всех файлов одной лицензией.
- Добавляйте тесты поведения. Различайте исходный код тестов, проверку синтаксиса, успешную компиляцию и выполнение на реальных устройствах.
- Указывайте, какие проверки не запускались. Проверки метаданных Cargo и форматирования не являются тестами компиляции.
- Для изменений производительности сообщайте о корректности и измерениях до и после с одинаковыми входами, dtype, устройством и конфигурацией. Не заменяйте проверку целевого оборудования симулятором или уменьшенной конфигурацией.
Локальные проверки
Запускайте из корня рабочего пространства. Эти команды читают манифесты, не компилируя и не выполняя ядра:
cargo metadata --no-deps --format-version 1 --offline --locked
cargo tree -p ruda-driver-cuda --no-default-features --features direct-ptx --edges normal,build --offline --locked
Для --offline зависимости, необходимые для разрешения, должны быть закешированы локально.
Инструкции по сборке и демонстрации см. в разделе начала работы.
Участники должны иметь право отправлять свой код. Оригинальные вклады в Ruda используют Apache-2.0; сторонний код сохраняет исходную лицензию и применимые условия.