Шаг 8.
Технология CUDA.
Спецификаторы доступа

    На этом шаге мы рассмотрим спецификаторы доступа.

    Вводимые в CUDA расширения языка С состоят из:

    В CUDA используются следующие спецификаторы функций (таблица 1):

Таблица 1. Спецификаторы доступа функций
Спецификатор Функция выполняется из Функция может вызываться из
__device__ device(GPU) device(GPU)
__global__ device(GPU) host(CPU)
__host__ host(CPU) host(CPU)

    Спецификаторы __host__ и __device__ могут быть использованы вместе (это значит, что соответствующая функция может выполняться как на GPU, так и на CPU - соответствующий код для обеих платформ будет автоматически сгенерирован компилятором). Спецификаторы __host__ и __global__ не могут быть использованы вместе.

    Спецификатор __global__ обозначает ядро, и соответствующая функция должна возвращать значение типа void.

    На функции, выполняемые на GPU (__device__ и __global__), накладываются следующие ограничения:

    Для задания размещения в памяти GPU переменных используются следующие спецификаторы:

    На использование спецификаторов размещения в памяти также накладывается ряд ограничений:

    На следующем шаге мы рассмотрим добавленные переменные.




Предыдущий шаг Содержание Следующий шаг