exponenta event banner

кодер. CuDNNConfig

Параметры для настройки генерации кода глубокого обучения с помощью библиотеки CUDA Deep Neural Network

Описание

coder.CuDNNConfig объект содержит специфичные для NVIDIA ® cuDNN параметры, codegen использует для генерации кода CUDA ® для глубоких нейронных сетей.

Использование coder.CuDNNConfig для создания кода присвойте его DeepLearningConfig свойство coder.gpuConfig объект, который вы передаете codegen.

Создание

Создайте объект конфигурации cuDNN с помощью coder.DeepLearningConfig функция с целевой библиотекой, установленной как 'cudnn'.

Свойства

развернуть все

Включение или отключение функции автоматической настройки. Включение автоматической настройки позволяет библиотеке cuDNN находить самые быстрые алгоритмы свертки. Это повышает производительность для крупных сетей, таких как SegNet и ResNet

Укажите точность вычислений вывода в поддерживаемых слоях. При выполнении вывода в 32-разрядных поплавках используйте 'fp32'. Для 8-разрядного целого числа используйте 'int8'. Значение по умолчанию: 'fp32'.

INT8 для точности требуется графический процессор CUDA с минимальной вычислительной способностью 6.1. Вычислительная способность 6.2 не поддерживает INT8 точность. Используйте ComputeCapability имущества GpuConfig объект для установки соответствующего значения вычислительной способности.

Примечание

При выполнении вывода в INT8 точность с использованием cuDNN версии 8.1.0, проблемы в библиотеке NVIDIA могут привести к значительному снижению производительности.

Местоположение MAT-файла, содержащего данные калибровки. Значение по умолчанию: ''. Этот параметр применим только в том случае, если DataType имеет значение 'int8'.

При выполнении квантования глубокой сверточной нейронной сети calibrate Функция (Deep Learning Toolbox) выполняет функции сети и собирает динамические диапазоны весов и смещений в свертке и полностью соединенных слоях сети, а также динамические диапазоны активизаций во всех слоях сети. Чтобы создать код для квантованной сети, сохраните результаты из calibrate в MAT-файл и укажите местоположение этого MAT-файла в генераторе кода с помощью этого свойства. Дополнительные сведения см. в разделе Создание кода для квантованных сетей глубокого обучения.

Доступное только для чтения значение, указывающее имя целевой библиотеки.

Примеры

свернуть все

Создание функции точки входа resnet_predict который использует coder.loadDeepLearningNetwork для загрузки resnet50 (инструментарий для глубокого обучения) SeriesNetwork объект.

function out = resnet_predict(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('resnet50', 'myresnet');
end

out = predict(mynet,in);

Создать coder.gpuConfig объект конфигурации для генерации кода MEX.

cfg = coder.gpuConfig('mex');

Установите целевой язык на C++.

cfg.TargetLang = 'C++';

Создать coder.CuDNNConfig глубокий объект конфигурации обучения и назначить его DeepLearningConfig имущества cfg объект конфигурации.

cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn');

Используйте -config вариант codegen для передачи функции cfg объект конфигурации. codegen функция должна определять размер, класс и сложность входов функции MATLAB ®. Используйте -args для указания размера входных данных функции точки входа.

codegen -args {ones(224,224,3,'single')} -config cfg resnet_predict;

codegen помещает все сгенерированные файлы в codegen папка. Папка содержит код CUDA для функции точки входа resnet_predict.cu, заголовки и исходные файлы, содержащие определения класса C++ для свернутых нейронных сетей (CNN), веса и файлов смещения.

Представлен в R2018b