6.4.1.3 Атрибуты функций AMD GCN
Бэкенд AMD GCN поддерживает следующие атрибуты функций:
-
amdgpu_hsa_kernel -
Этот атрибут указывает, что соответствующую функцию следует компилировать как функцию ядра, то есть как точку входа, которую можно вызвать с хоста через библиотеку среды выполнения HSA. По умолчанию функции можно вызывать только из других функций GCN.
Этот атрибут неявно применяется к любой функции с именем
mainи параметрами по умолчанию.Функции ядра могут возвращать целочисленное значение, которое будет записано в предусмотренное для этого место в области «kernargs» HSA.
Параметры атрибута настраивают значения, передаваемые драйверами GPU функции ядра через исходное состояние регистров. Некоторые значения используются компилятором, поэтому их установка обязательна. Включение других параметров может нарушить предположения компилятора и/или библиотек времени выполнения.
private_segment_buffer-
Установить флаг
enable_sgpr_private_segment_buffer. Всегда включён (необходим для определения местоположения стека). dispatch_ptr-
Установить флаг
enable_sgpr_dispatch_ptr. Всегда включён (необходим для определения размеров запуска). queue_ptr-
Установить флаг
enable_sgpr_queue_ptr. Всегда включён (необходим для преобразования адресных пространств). kernarg_segment_ptr-
Установить флаг
enable_sgpr_kernarg_segment_ptr. Всегда включён (необходим для определения местоположения аргументов ядра, «kernargs»). dispatch_id-
Установить флаг
enable_sgpr_dispatch_id. flat_scratch_init-
Установить флаг
enable_sgpr_flat_scratch_init. private_segment_size-
Установить флаг
enable_sgpr_private_segment_size. grid_workgroup_count_X-
Установить флаг
enable_sgpr_grid_workgroup_count_x. Всегда включён (необходим для использования OpenACC/OpenMP). grid_workgroup_count_Y-
Установить флаг
enable_sgpr_grid_workgroup_count_y. grid_workgroup_count_Z-
Установить флаг
enable_sgpr_grid_workgroup_count_z. workgroup_id_X-
Установить флаг
enable_sgpr_workgroup_id_x. workgroup_id_Y-
Установить флаг
enable_sgpr_workgroup_id_y. workgroup_id_Z-
Установить флаг
enable_sgpr_workgroup_id_z. workgroup_info-
Установить флаг
enable_sgpr_workgroup_info. private_segment_wave_offset-
Установить флаг
enable_sgpr_private_segment_wave_byte_offset. Всегда включён (необходим для определения местоположения стека). work_item_id_X-
Установить параметр
enable_vgpr_workitem_id. Всегда включён (отключить нельзя). work_item_id_Y-
Установить параметр
enable_vgpr_workitem_id. Всегда включён (необходим для векторизации). work_item_id_Z-
Установить параметр
enable_vgpr_workitem_id. Всегда включён (необходим для использования OpenACC/OpenMP).
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/AMD-GCN-Function-Attributes.html