Открытый ассемблер 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-программ.







