Открытый ассемблер F2Asm впервые собирает NVIDIA SASS для Rubin SM107

Открытый ассемблер F2Asm впервые собирает NVIDIA SASS для Rubin SM107

Компания NVIDIA предоставляет разработчикам дизассемблер SASS, но не выпускает публичный ассемблер для своих новых дата-центровых GPU. Это ограничивает возможность контролируемого изменения машинного кода и создает барьер для низкоуровневых оптимизаций и исследований.

Группа исследователей представила инструмент F2Asm, который автоматически изучает точные 128-битные кодировки инструкций SASS, используя пары из дизассемблированного кода и исходных слов CUBIN. Это первый открытый ассемблер, способный работать с архитектурой Rubin SM107.

В основе алгоритма лежит метод Гаусса над полем F2. Система итеративно строит компактный базис, обнаруживает несоответствия и отклоняет входные данные, выходящие за пределы изученного пространства. Такой подход позволяет отделить управляющие биты, правила релокации и метаданные CUBIN от самого алгоритма обучения.

Обучение проводилось на 3,225 CUBIN-файлах, взятых из закреплённых библиотек NVIDIA и сторонних производителей, а также из пакетов CUDA 13.3 и CUDA 13.4 Developer Preview. Это обеспечило покрытие актуальных версий компилятора и реальных продакшн-сценариев использования.

В тестах на обратимость F2Asm восстанавливал дизассемблированный SASS для каждого CUBIN, и все исполняемые текстовые секции полностью совпадали с оригиналами. Это подтверждает точность кодирования на уровне отдельных бит.

Работа опубликована на arXiv под номером 2608.20532. Авторы позиционируют F2Asm как основу для дальнейших инструментов, связанных с модификацией машинного кода, безопасностью и низкоуровневым анализом GPU-программ.