Spec-Zone.ru › GCC 13

3.19.35 Параметры Nvidia PTX

Эти параметры определены для Nvidia PTX:

-m64

Игнорируется, но сохраняется для обратной совместимости. Поддерживается только 64-битный ABI.

-march=architecture-string

Генерирует код для указанной архитектуры целевой PTX ISA (например, ‘sm_35’). Допустимые строки архитектуры — ‘sm_30’, ‘sm_35’, ‘sm_53’, ‘sm_70’, ‘sm_75’ и ‘sm_80’. Значение по умолчанию зависит от конфигурации компилятора, см. --with-arch.

Этот параметр устанавливает значение препроцессорной макросы __PTX_SM__; например, для ‘sm_35’ значение равно ‘350’.

-misa=architecture-string

Псевдоним для -march=.

-march-map=architecture-string

Выбирает ближайшее доступное значение -march=, которое не обладает большей производительностью. Например, для -march-map=sm_50 выбирается -march=sm_35, а для -march-map=sm_53 выбирается -march=sm_53.

-mptx=version-string

Генерирует код для указанной версии PTX ISA (например, ‘7.0’). Допустимые строки версии включают ‘3.1’, ‘6.0’, ‘6.3’ и ‘7.0’. Значение версии PTX ISA по умолчанию — 6.0, если не требуется более высокая версия для указанной архитектуры PTX ISA через параметр -march=.

Этот параметр устанавливает значения препроцессорных макрос __PTX_ISA_VERSION_MAJOR__ и __PTX_ISA_VERSION_MINOR__; например, для ‘3.1’ макросы имеют значения ‘3’ и ‘1’ соответственно.

-mmainkernel

Подключает код для ядра __main. Это необходимо для автономного, а не для выполнения с отгрузкой.

-moptimize

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

-msoft-stack

Генерирует код, который не использует .local память напрямую для хранения стека. Вместо этого, явный указатель стека поддерживается на уровне варпа. Это позволяет изменять длину стека (с массивами переменной длины или alloca), а когда глобальная память используется для базового хранения, делает возможным доступ к автоматическим переменным из других потоков или с атомарными инструкциями. Этот вариант генерации кода используется для отгрузки OpenMP, но параметр выведен отдельно для тестирования компилятора. Чтобы сгенерировать код, подходящий для подключения к программам с использованием отгрузки OpenMP, используйте параметр -mgomp.

-muniform-simt

Переключается на вариант генерации кода, который позволяет выполнить все потоки в каждом варпе, сохраняя состояние памяти и побочные эффекты так, как если бы активным был только один поток в каждом варпе за пределами областей OpenMP SIMD. Все атомарные операции и вызовы времени выполнения (malloc, free, vprintf) выполняются условно (если текущий индекс лейны равен индексу главной лейны), и регистр, которому присваивается значение, копируется через инструкцию перестановки из главной лейны. За пределами областей SIMD лейна 0 является главной; внутри, каждый поток видит себя как главную. Массив общей памяти int __nvptx_uni[] хранит маски все-нули или все-единицы для каждого варпа, указывающие текущий режим (0 за пределами областей SIMD). Каждый поток может побитово-и умножить маску в позиции tid.y с текущим индексом лейны, чтобы вычислить индекс главной лейны.

-mgomp

Генерирует код для использования в OpenMP offloading: включает параметры -msoft-stack и -muniform-simt, а также выбирает соответствующий вариант multilib.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Nvidia-PTX-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API