Параметры конфигурации для генерации кода CUDA из кода MATLAB при помощи GPU Coder
coder.gpuConfig
объект содержит параметры конфигурации что codegen
использование для генерации CUDA® MEX, статической библиотеки, динамически подключаемой библиотеки или исполняемой программы с GPU Coder™. Передайте объект codegen
функция при помощи -config
опция.
cfg = coder.gpuConfig(
создает объект настройки генерации кода для заданного типа сборки, который может быть MEX CUDA, статической библиотекой, динамически подключаемой библиотекой или исполняемой программой. Если продукт Embedded Coder® установлен, он создает build_type
)coder.EmbeddedCodeConfig
объект для статической библиотеки, динамической библиотеки или исполняемого файла создает типы.
cfg = coder.gpuConfig(
создает объект настройки генерации кода сгенерировать build_type
,'ecoder',false)'lib'
CUDA,
'dll'
, или 'exe'
выведите, даже если продукт Embedded Coder установлен.
cfg = coder.gpuConfig(
создает build_type
,'ecoder',true)coder.EmbeddedCodeConfig
объект настройки, даже если продукт Embedded Coder не установлен. Однако генерация кода, использующая coder.EmbeddedCodeConfig
объект требует лицензии Embedded Coder.
build_type
— Выведите, чтобы создать из сгенерированного кода C/C++ CUDA'MEX'
| 'LIB'
| 'DLL'
| 'EXE'
Выведите, чтобы создать из сгенерированного кода C/C++ CUDA в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
'MEX' | MEX CUDA |
'LIB' | Статическая библиотека |
'DLL' | Динамически подключаемая библиотека |
'EXE' | Исполняемая программа |
coder.GpuConfig
содержит только графический процессор определенные параметры конфигурации объекта настройки кода. Чтобы видеть все свойства объекта настройки кода, смотрите coder.CodeConfig
и coder.EmbeddedCodeConfig
.
Enabled
— Управляйте генерацией кода графического процессораtrue
(значение по умолчанию) | false
Управляйте генерацией CUDA (*.cu) файлы при помощи одного из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Включает генерацию кода CUDA. |
false | Отключает генерацию кода CUDA. |
Пример: cfg.GpuConfig.Enabled = true
MallocMode
— Выделение памяти графического процессора'discrete'
(значение по умолчанию) | 'unified'
Выделение памяти (malloc
) режим, который будет использоваться в сгенерированном коде CUDA в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
'discrete' | Это значение является значением по умолчанию. Сгенерированный код использует |
'unified' | Сгенерированный код использует |
Для получения дополнительной информации смотрите Дискретные и Режимы автоматического управления.
Пример: cfg.GpuConfig.MallocMode = 'discrete'
KernelNamePrefix
— Пользовательские префиксы имени ядраЗадайте пользовательский префикс имени для всех ядер в сгенерированном коде. Например, с помощью значения 'CUDA_'
создает ядра с именами CUDA_kernel1
, CUDA_kernel2
, и так далее. Если никакое имя не обеспечивается, GPU Coder предварительно ожидает имя ядра с именем функции точки входа. Имена ядра могут содержать прописные буквы, строчные буквы, цифры 0-9 и символ подчеркивания _. GPU Coder удаляет неподдерживаемые символы из имен ядра и добавляет alpha
к префиксам, которые не начинаются с алфавитной буквы.
Пример: cfg.GpuConfig.KernelNamePrefix = 'myKernel'
EnableCUBLAS
— Используйте cuBLAS
библиотекаtrue
(значение по умолчанию) | false
Замена математической функции вызывает с NVIDIA®
cuBLAS
библиотека вызывает в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующие вызовы математической функции на вызовы |
false | Отключите использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUBLAS = true
EnableCUSOLVER
— Используйте cuSOLVER
библиотекаtrue
(значение по умолчанию) | false
Замена математической функции вызывает с NVIDIA cuSOLVER
библиотека вызывает в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующие вызовы математической функции на вызовы |
false | Отключите использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUSOLVER = true
EnableCUFFT
— Используйте cuFFT
библиотекаtrue
(значение по умолчанию) | false
Замена fft
вызовы функции с NVIDIA cuFFT
библиотека вызывает в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующий |
false | Отключает использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUFFT = true
Benchmarking
— Добавьте сравнительное тестирование в сгенерированный кодfalse
(значение по умолчанию) | true
Управляйте сложением сравнительного тестирования кода к сгенерированному коду CUDA при помощи одного из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Сгенерированный код CUDA не содержит функциональность сравнительного тестирования. |
true | Генерирует код CUDA со сравнительным тестированием функциональности. Эта опция использует API CUDA, такие как |
Пример: cfg.GpuConfig.Benchmarking = true
SafeBuild
— Проверка ошибок в сгенерированном кодеfalse
(значение по умолчанию) | true
Добавьте функциональность проверки ошибок в сгенерированный код CUDA при помощи одного из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Сгенерированный код CUDA не содержит функциональность проверки ошибок. |
true | Генерирует код с проверкой ошибок на вызовы API CUDA и вызовы ядра. |
Пример: cfg.GpuConfig.SafeBuild = true
ComputeCapability
— Минимум вычисляет возможность генерации кода
(значение по умолчанию) | '3.2'
| '3.7'
| '5.0'
| '5.2'
| '5.3'
| '6.0'
| '6.1'
| '6.2'
| '7.0'
| '7.1'
| '7.2'
Выбор минимум вычисляет возможность генерации кода. Вычислить возможность идентифицирует функции, поддерживавшие оборудованием графического процессора. Это используется приложениями во время выполнения, чтобы определить, который показывает оборудование, инструкции доступны на существующем графическом процессоре. Если вы задаете пользовательский, вычисляют возможность, GPU Coder игнорирует эту установку.
Пример: cfg.GpuConfig.ComputeCapability = '6.1'
CustomComputeCapability
— Управляйте генерацией кода графического процессора''
(значение по умолчанию) | вектор символовЗадайте имя NVIDIA виртуальная архитектура графического процессора, для которой должны быть скомпилированы файлы входа CUDA.
Например, чтобы задать виртуальный тип архитектуры -arch=compute_50
. Можно задать действительную архитектуру с помощью -arch=sm_50
. Для получения дополнительной информации см. Опции для Регулирования темы Генерации кода графического процессора в документации инструментария CUDA.
Пример: cfg.GpuConfig.CustomComputeCapability = '-arch=compute_50'
CompilerFlags
— Дополнительные флаги к компилятору графического процессора''
(значение по умолчанию) | character vector
Передайте дополнительные флаги компилятору графического процессора. Например, --fmad=false
сообщает nvcc
компилятор, чтобы отключить сокращение с плавающей точкой умножается и добавляет к синглу, С плавающей точкой, Умножаются - Добавляет инструкция (FMAD).
Для подобных параметров компилятора NVIDIA смотрите тему на Опциях Команды NVCC в документации инструментария CUDA.
Пример: cfg.GpuConfig.CompilerFlags = '--fmad=false'
StackLimitPerThread
— Сложите предел на поток графического процессора
(значение по умолчанию) | integer
Задайте максимальный предел стека на поток графического процессора как целочисленное значение.
Пример: cfg.GpuConfig.StackLimitPerThread = 1024
MallocThreshold
— Порог Malloc
(значение по умолчанию) | integer
Задайте размер, выше которого частные переменные выделяются на куче вместо стека как целочисленное значение.
Пример: cfg.GpuConfig.MallocThreshold = 256
SelectCudaDevice
— Выбор устройства CUDA
(значение по умолчанию) | deviceID
Во много среде графического процессора, такой как платформы Диска NVIDIA, задайте устройство CUDA, чтобы предназначаться.
Пример: cfg.GpuConfig.SelectCudaDevice = <DeviceID>
Сгенерируйте MEX-функцию CUDA от функции MATLAB, которая подходит для генерации кода графического процессора. Кроме того, включите отчет генерации кода.
Запишите функции MATLAB VecAdd
, это выполняет векторное сложение входных параметров A
и B
.
function [C] = VecAdd(A,B) %#codegen C = coder.nullcopy(zeros(size(A))); coder.gpu.kernelfun(); C = A + B; end
Чтобы сгенерировать MEX-функцию, создайте объект настройки генерации кода.
cfg = coder.gpuConfig('mex');
Включите отчет генерации кода.
cfg.GpuConfig.EnableCUBLAS = true; cfg.GenerateReport = true;
Сгенерируйте MEX-функцию в текущей папке, задающей объект настройки использование -config
опция.
% Generate a MEX function and code generation report codegen -config cfg -args {zeros(512,512,'double'),zeros(512,512,'double')} VecAdd
GPU Coder всегда устанавливает PassStructByReference
свойство настройки кода возражает против истины.
codegen
| coder.CodeConfig
| coder.EmbeddedCodeConfig
| coder.MexCodeConfig
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.