3.19.37 Параметры Nvidia PTX
Эти параметры определены для Nvidia PTX:
-m64-
Игнорируется, но сохраняется для обратной совместимости. Поддерживается только 64-битная ABI.
-march=architecture-string-
Генерировать код для указанной целевой архитектуры ISA PTX (например, ‘sm_35’). Допустимые строки архитектуры — ‘sm_30’, ‘sm_35’, ‘sm_53’, ‘sm_70’, ‘sm_75’ и ‘sm_80’. По умолчанию целевая архитектура — sm_30.
Этот параметр устанавливает значение препроцессорной макросы
__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-
Генерировать код для указанной версии ISA PTX (например, ‘7.0’). Допустимые строки версии включают ‘3.1’, ‘6.0’, ‘6.3’ и ‘7.0’. По умолчанию версия ISA PTX — 6.0, если для указанной целевой архитектуры ISA PTX через параметр -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 перенаправлении: включает параметры -msoft-stack и -muniform-simt, и выбирает соответствующий вариант многофункционального модуля.
Следующее: Параметры OpenRISC, Предыдущее: Параметры Nios II, Наверх: Параметры Подмоделей [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Nvidia-PTX-Options.html