Поддержка массивов графического процессора

Можно использовать массивы графического процессора в качестве аргументов ввода и вывода к функции точки входа при генерации CUDA® MEX, исходный код, статические библиотеки, динамические библиотеки и исполняемые файлы. GPU Coder™ автоматически заботится о копиях CPU-GPU на основе входного типа и использования переменной в вашем MATLAB® проект. Функциональность графического процессора массивов полезна в минимизации копий CPU-GPU, когда вы пытаетесь:

  • Интегрируйте сгенерированный код с существующей реализацией, которая имеет ее выходные параметры на памяти графического процессора.

  • Передайте MATLAB gpuArray входные параметры к сгенерированной MEX-функции.

Чтобы отметить вход к функции точки входа как тип графического процессора, используйте один из следующих подходов:

  • Использование coder.typeof представлять gpuArray тип входного параметра функции точки входа. Например:

    coder.typeof(rand(20),'Gpu',true);
    

  • Используйте gpuArray функция. Например:

    in = gpuArray(rand(1,10)); 
    codegen -config cfg -args {in} test
    

Факторы

  • GPU Coder поддерживает весь тип данных, поддержанный gpuArray.

  • Для использования переменных массивов размерности только поддерживаются ограниченные типы.

  • Для 'lib', 'dll', и 'exe' цели, необходимо передать правильные указатели на функцию точки входа в примере основная функция. Например, если вход отмечен как 'Gpu', указатель графического процессора должен быть передан, когда точка входа называется от основной функции.

  • MemoryMode (режим выделения памяти), свойство объекта настройки кода должно быть установлено в 'discrete'. Например,

    cfg.GpuConfig.MallocMode = 'discrete';
    

  • Во время генерации кода, если один вход к функции точки входа имеет массив графического процессора, то GPU Coder пытается сделать все выходные переменные типами массива графического процессора, если они поддерживаются gpuArray. Например. если функция точки входа возвращает struct и потому что struct не поддерживается gpuArray, сгенерированный код возвращает CPU выход. Однако, если поддерживаемый матричный тип возвращен, то сгенерированный код возвращает GPU выход.

    Примечание

    Передача gpuArray входные параметры не гарантируют выходные параметры, чтобы также быть gpuArray.

Ограничения

  • GPU Coder не поддерживает следующие типы:

    • char

    • half

    • Скалярные массивы графического процессора

    • Структуры

    • Массивы ячеек

    • Классы

    • Перечислимые типы

    • Типы данных с фиксированной точкой

  • GPU Coder не поддерживает 'unified' режим memory для массивов графического процессора.

Смотрите также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте