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