Количество тактовых циклов на одну инструкцию CUDA

#cuda

#cuda

Вопрос:

Я новичок в CUDA. Теперь я вычисляю количество тактовых циклов на одну инструкцию (например, сложение). В https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#arithmetic-instructions , это дает только пропускную способность команд для различных арифметических операций. Например, пропускная способность в 7.x равна 64 для 32-разрядного сложения с плавающей запятой. Итак, могу ли я принять 64/32 = 2 за количество тактовых циклов на одну инструкцию? Если нет, то как я могу это вычислить?

Ответ №1:

В общем случае документация CUDA не дает вам достаточной информации для вычисления количества тактовых циклов, требуемых конкретной инструкцией. Это было бы связано с глубиной конвейера для инструкции (т. Е. Для функционального блока, обслуживающего эту инструкцию), и это не задокументировано. Таблица пропускной способности в основном бесполезна для этого упражнения.

Это одна из причин, по которой вы найдете различные документы с микробеншмарками для CUDA. Вот один из таких примеров.

Это должно быть измерено эмпирически (и тщательно) для каждой интересующей архитектуры и для каждой интересующей инструкции SASS; это не документировано.