ROUGE-V — это открытый AOT-компилятор, который транслирует PTX-код, созданный с помощью nvcc 13.4, в LLVM IR. Проект разработан по принципу clean-room без использования проприетарных бинарных файлов или заголовков NVIDIA. Инструмент поддерживает сборку под архитектуры x86-64, AMD и RISC-V.
Процесс работы включает четыре этапа: компиляцию .cu в PTX через nvcc, перевод PTX в LLVM IR с помощью ptx2ir, сборку бинарника через clang и исполнение на целевом устройстве. Автор подтвердил работоспособность на видеокарте GeForce MX450, добившись побитовой точности вычислений в сравнении с хост-эталоном.
В ходе разработки автор устранил ошибки парсинга PTX, связанные с особенностями синтаксиса современного nvcc, а также исправил баги в работе с адресными пространствами, выявленные при тестировании на реальном GPU. Были реализованы корректные правила для инверсии предикатов и выполнения арифметических операций.
На данный момент ROUGE-V поддерживает семь канонических ядер, включая vadd и gemm_tile. Автор отмечает, что проект не связан с NVIDIA и не является их официальным продуктом. Код распространяется по лицензии Apache 2.0 с исключением LLVM, при этом замеры производительности в текущей версии не проводились.




