16.07.2026
В CUDA 13.3 появилась PTX-инструкция clmad для аппаратного умножения без переносов на GPU NVIDIA Ampere и новее. Этот примитив важен для GHASH в AES-GCM, кодов коррекции ошибок и протоколов доказательств с нулевым разглашением; в тестах NVIDIA он ускорил GHASH на B200 до 18,8 раза по сравнению с реализацией на побитовых операциях.
NVIDIA описала в CUDA 13.3 поддержку clmad — новой PTX-инструкции для умножения без переносов с накоплением. PTX ISA 9.3 определяет варианты clmad.lo.u64 и clmad.hi.u64: операция умножает два 64-битных операнда, выбирает младшие или старшие 64 бита 128-битного результата и добавляет накопитель через XOR; для аппаратного выполнения требуется GPU с sm_80 или выше.
Carryless-умножение используется в арифметике бинарных полей, от которой зависят GHASH в AES-GCM, коды CRC, Reed–Solomon и BCH, а также ряд схем постквантовой криптографии и протоколов доказательств с нулевым разглашением. Для GPU NVIDIA это закрывает разрыв с x86, где отдельная инструкция для такой операции давно применялась прежде всего в AES-GCM.
В тестах NVIDIA версия GHASH на clmad достигла около 1,3 ТБ/с на GeForce RTX 5090 и около 6,3 ТБ/с на B200; на B200 это до 18,8 раза быстрее bitsliced-реализации. Для протокола sum-check над GF(2^128) ускорение составило 3–4 раза на RTX 5090 и до 13 раз на B200.


Практически это важно для CUDA-ядeр, которые переносят криптографию, проверяемые вычисления или кодирование ошибок в GPU-конвейеры: базовый примитив теперь можно использовать через inline PTX на системах Ampere и новее.
Источник: developer.nvidia.com