3.19.36 Параметры Nvidia PTX ¶
Эти параметры определены для Nvidia PTX:
-m64-
Игнорируется, но сохраняется для обратной совместимости. Поддерживается только 64-битный ABI.
-misa=ISA-string-
Генерировать код для указанной ISA PTX (например, ‘sm_35’). Строки ISA должны быть в нижнем регистре. Допустимые строки ISA включают ‘sm_30’ и ‘sm_35’. По умолчанию используется sm_35.
-mmainkernel-
Подключать код для ядра __main. Это для автономного, а не для удаленного выполнения.
-moptimize-
Применять оптимизации разделенного выполнения. Это значение по умолчанию, когда выбран любой уровень оптимизации.
-msoft-stack-
Генерировать код, который не использует память
.localнапрямую для хранения стека. Вместо этого явным образом поддерживается указатель стека на warp. Это позволяет изменять длину стека (с массивами переменной длины илиalloca), и при использовании глобальной памяти для базового хранения, делает возможным доступ к автоматическим переменным из других потоков или с атомарными инструкциями. Эта разновидность генерации кода используется для удаленного выполнения OpenMP, но параметр доступен для тестирования компилятора; для генерации кода, подходящего для связывания с программами, использующими удаленное выполнение OpenMP, используйте параметр -mgomp. -muniform-simt-
Переключается на вариант генерации кода, который позволяет выполнять все потоки в каждом warp, сохраняя состояние памяти и побочные эффекты так, как если бы активен был только один поток в каждом warp за пределами областей OpenMP SIMD. Все атомарные операции и вызовы времени выполнения (malloc, free, vprintf) выполняются условно (если текущий индекс потока равен индексу главного потока), и регистр, которому присваивается значение, копируется с помощью инструкции shuffle из главного потока. За пределами областей SIMD главный поток — это поток 0; внутри, каждый поток видит себя как главный. Массив памяти общего доступа
int __nvptx_uni[]хранит битовые маски всех нулей или всех единиц для каждого warp, указывая текущий режим (0 за пределами областей SIMD). Каждый поток может выполнить побитовое AND маски в позицииtid.yс текущим индексом потока для вычисления индекса главного потока. -mgomp-
Генерировать код для использования в удаленном выполнении OpenMP: включает параметры -msoft-stack и -muniform-simt, и выбирает соответствующий вариант многофайловой библиотеки.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Nvidia-PTX-Options.html